diff --git a/.github/workflows/lint-and-analyse-php.yml b/.github/workflows/lint-and-analyse-php.yml index 6e4c8573d..78439b811 100644 --- a/.github/workflows/lint-and-analyse-php.yml +++ b/.github/workflows/lint-and-analyse-php.yml @@ -1,63 +1,57 @@ -name: Lint and analyse php files +name: Lint and analyse PHP files + +permissions: + contents: read on: push: pull_request: - types: [opened, synchronize, reopened] + types: [ opened, synchronize, reopened ] jobs: - lint-php: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Use php 7.2 - uses: shivammathur/setup-php@v2 - with: - php-version: 7.2 - tools: composer:v2 - - name: Validate composer.json and composer.lock - run: composer validate - - name: Cache module - uses: actions/cache@v3 - with: - path: ~/.composer/cache/ - key: composer-cache - - name: Install dependencies - run: composer install - - name: Lint files - run: composer run phpcs - - analyse-php: - runs-on: ubuntu-latest - strategy: - matrix: - php-version: ["7.4"] - steps: - - uses: actions/checkout@v3 - - name: Use PHP ${{ matrix.php-version }} - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - tools: composer:v2 - - - name: Get Composer cache directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v3 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }} - restore-keys: | - composer-${{ runner.os }}-${{ matrix.php-version }}- - - - name: Install dependencies - run: composer install - - name: Analyse files with PHPStan - run: composer run phpstan - - name: Analyse files with Psalm - # Allow the previous check to fail but not abort - if: always() - run: composer run psalm -- --shepherd + lint-php: + runs-on: ubuntu-latest + strategy: + matrix: + php-version: [ '8.2' ] + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set up PHP ${{ matrix.php-version }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + + - name: Install Composer dependencies + uses: ramsey/composer-install@v4 + + - name: Check coding-standard + run: composer run phpcs + + - name: Validate composer.json and composer.lock + run: composer validate --strict + + analyse-php: + runs-on: ubuntu-latest + strategy: + matrix: + php-version: [ '8.2' ] + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set up PHP ${{ matrix.php-version }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + + - name: Install Composer dependencies + uses: ramsey/composer-install@v4 + + - name: Analyse files with PHPStan + run: composer run phpstan + + - name: Analyse files with Psalm + if: always() + run: composer run psalm -- --shepherd diff --git a/.github/workflows/lint-docs.yml b/.github/workflows/lint-docs.yml index 66201cfd1..83955e4dd 100644 --- a/.github/workflows/lint-docs.yml +++ b/.github/workflows/lint-docs.yml @@ -1,18 +1,23 @@ -name: lint php documentation +name: Lint PHP documentation + +permissions: + contents: read on: push: pull_request: - types: [opened, synchronize, reopened] + types: [ opened, synchronize, reopened ] jobs: - lint-docs: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: lint php documentation - uses: sudo-bot/action-doctum@v5 - with: - config-file: tools/doctum-config.php - method: "parse" - cli-args: "--output-format=github --no-ansi --no-progress -v --ignore-parse-errors" + lint-docs: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: lint php documentation + uses: sudo-bot/action-doctum@v5 + with: + config-file: tools/doctum-config.php + method: "parse" + cli-args: "--output-format=github --no-ansi --no-progress -v --ignore-parse-errors" diff --git a/.github/workflows/mutation-tests.yml b/.github/workflows/mutation-tests.yml index 1fc95b942..730aa0fb4 100644 --- a/.github/workflows/mutation-tests.yml +++ b/.github/workflows/mutation-tests.yml @@ -1,55 +1,45 @@ name: Mutation tests +permissions: + contents: read + on: push: - branches: [master] + branches: + - master + - 6.0.x pull_request: - branches: [master] + branches: + - master + - 6.0.x jobs: tests: name: Mutation tests with PHP ${{ matrix.php-version }} - runs-on: ${{ matrix.operating-system }} - strategy: matrix: - php-version: ["8.1"] - operating-system: [ubuntu-latest] - + php-version: [ '8.2' ] + operating-system: [ ubuntu-latest ] steps: - - name: Checkout - uses: actions/checkout@v3 + - name: Checkout code + uses: actions/checkout@v6 - name: Fetch github.base_ref (for diffing) if: ${{ github.base_ref != '' }} run: | git fetch --depth=1 origin +refs/heads/${{ github.base_ref }}:refs/remotes/origin/${{ github.base_ref }} - - name: Install PHP ${{ matrix.php-version }} + - name: Set up PHP ${{ matrix.php-version }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: pcov ini-values: memory_limit=-1 - tools: composer:v2, infection + tools: infection - - name: Get Composer cache directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v3 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }} - restore-keys: | - composer-${{ runner.os }}-${{ matrix.php-version }}- - - - name: Install dependencies - run: | - composer update --no-interaction --no-progress + - name: Install Composer dependencies + uses: ramsey/composer-install@v4 - name: Collect coverage report run: composer run phpunit -- --stop-on-failure diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6b860b53c..ecf253e6e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,109 +1,117 @@ name: Run tests +permissions: + contents: read + on: push: pull_request: - types: [opened, synchronize, reopened] + types: [ opened, synchronize, reopened ] jobs: - test-php: - name: Test on PHP ${{ matrix.php-version }} and ${{ matrix.os }} - runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.experimental }} - strategy: - matrix: - php-version: ["7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3"] - os: [ubuntu-latest] - experimental: [false] - composer-options: [''] - include: - - { php-version: 'nightly', experimental: true, os: ubuntu-latest, composer-options: '--ignore-platform-reqs' } - steps: - - uses: actions/checkout@v3 - with: - # Fetch some commits for Scrutinizer coverage upload - fetch-depth: 15 - - name: Use PHP ${{ matrix.php-version }} - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - # phar, json and curl are used by composer - # json is used by testing code - # dom, json, mbstring, libxml, xml, xmlwriter are used by phpunit - # tokenizer, xmlwriter and simplexml are used by phpcs - # ctype is used by Psalm - extensions: none, mbstring, phar, json, curl, tokenizer, xml, xmlwriter, simplexml, libxml, dom, ctype - coverage: xdebug - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - name: Restore cache - uses: actions/cache@v3 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Install dependencies - run: composer install --no-interaction ${{ matrix.composer-options }} - - name: Install motranslator - if: ${{ matrix.php-version == '7.2' }} - run: composer require phpmyadmin/motranslator:^3.0 --with-all-dependencies --no-interaction - - name: Run php tests - run: composer run phpunit - - name: Send coverage - uses: codecov/codecov-action@v3 - - name: Send coverage to Scrutinizer - uses: sudo-bot/action-scrutinizer@latest - # Do not run this step on forked versions of the main repository (example: contributor forks) - if: github.repository == 'phpmyadmin/sql-parser' - with: - cli-args: "--format=php-clover build/logs/clover.xml --revision=${{ github.event.pull_request.head.sha || github.sha }}" + test-php: + name: Test on PHP ${{ matrix.php-version }} and ${{ matrix.os }} + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} + strategy: + matrix: + php-version: [ '8.2', '8.3', '8.4' ] + os: [ ubuntu-latest ] + experimental: [ false ] + composer-options: [ '' ] + include: + - { php-version: '8.5', experimental: true, os: ubuntu-latest, composer-options: '--ignore-platform-req=php+' } + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + # Fetch some commits for Scrutinizer coverage upload + fetch-depth: 15 + + - name: Set up PHP ${{ matrix.php-version }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + # phar, json and curl are used by composer + # json is used by testing code + # dom, json, mbstring, libxml, xml, xmlwriter are used by phpunit + # tokenizer, xmlwriter and simplexml are used by phpcs + # ctype is used by Psalm + extensions: none, mbstring, phar, json, curl, tokenizer, xml, xmlwriter, simplexml, libxml, dom, ctype + coverage: xdebug + + - name: Install Composer dependencies + uses: ramsey/composer-install@v4 + with: + composer-options: ${{ matrix.composer-options }} + + - name: Run PHP tests + run: composer run phpunit + + - name: Send coverage + uses: codecov/codecov-action@v6 + # Do not run this step on forked versions of the main repository (example: contributor forks) + if: github.repository == 'phpmyadmin/sql-parser' + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} + flags: unit-${{ matrix.php-version }}-${{ matrix.os }} + name: phpunit-${{ matrix.php-version }}-${{ matrix.os }} + report_type: coverage + + - name: Upload test results + uses: codecov/codecov-action@v6 + # Do not run this step on forked versions of the main repository (example: contributor forks) + if: ${{ github.repository == 'phpmyadmin/sql-parser' && !cancelled() }} + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} + flags: unit-${{ matrix.php-version }}-${{ matrix.os }} + name: phpunit-${{ matrix.php-version }}-${{ matrix.os }} + report_type: test_results + + - name: Send coverage to Scrutinizer + uses: sudo-bot/action-scrutinizer@latest + # Do not run this step on forked versions of the main repository (example: contributor forks) + if: github.repository == 'phpmyadmin/sql-parser' + with: + cli-args: "--format=php-clover build/logs/clover.xml --revision=${{ github.event.pull_request.head.sha || github.sha }}" + + php-benchmark: + name: Benchmark on PHP ${{ matrix.php-version }} and ${{ matrix.os }} + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} + strategy: + matrix: + php-version: [ '8.2', '8.3', '8.4' ] + os: [ ubuntu-latest ] + experimental: [ false ] + composer-options: [ '' ] + include: + - { php-version: '8.5', experimental: true, os: ubuntu-latest, composer-options: '--ignore-platform-req=php+' } + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + # Fetch some commits for Scrutinizer coverage upload + fetch-depth: 15 + + - name: Set up PHP ${{ matrix.php-version }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + # phar, json and curl are used by composer + # json is used by testing code + # dom, json, mbstring, libxml, xml, xmlwriter are used by phpunit + # tokenizer, xmlwriter and simplexml are used by phpcs + # ctype is used by Psalm + extensions: none, mbstring, phar, json, curl, tokenizer, xml, xmlwriter, simplexml, libxml, dom, ctype + coverage: xdebug + + - name: Install Composer dependencies + uses: ramsey/composer-install@v4 + with: + composer-options: ${{ matrix.composer-options }} - php-benchmark: - name: Benchmark on PHP ${{ matrix.php-version }} and ${{ matrix.os }} - runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.experimental }} - strategy: - matrix: - php-version: ["7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3"] - os: [ubuntu-latest] - experimental: [false] - composer-options: [''] - include: - - { php-version: 'nightly', experimental: true, os: ubuntu-latest, composer-options: '--ignore-platform-reqs' } - steps: - - uses: actions/checkout@v3 - with: - # Fetch some commits for Scrutinizer coverage upload - fetch-depth: 15 - - name: Use PHP ${{ matrix.php-version }} - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - # phar, json and curl are used by composer - # json is used by testing code - # dom, json, mbstring, libxml, xml, xmlwriter are used by phpunit - # tokenizer, xmlwriter and simplexml are used by phpcs - # ctype is used by Psalm - extensions: none, mbstring, phar, json, curl, tokenizer, xml, xmlwriter, simplexml, libxml, dom, ctype - coverage: xdebug - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - name: Restore cache - uses: actions/cache@v3 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Install dependencies - run: composer install --no-interaction ${{ matrix.composer-options }} - - name: Install motranslator - if: ${{ matrix.php-version == '7.2' }} - run: composer require phpmyadmin/motranslator:^3.0 --with-all-dependencies --no-interaction - - name: Run benchmarks - run: composer run phpbench + - name: Run benchmarks + run: composer run phpbench diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 9c1cf8527..28e944110 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -11,15 +11,19 @@ checks: php: true tools: external_code_coverage: - runs: 4 # php 7.x versions + runs: 2 # php 8.x versions timeout: 480 # 8 min build: + image: default-bionic # Needed to make PHP 8.2 compile nodes: analysis: environment: - php: 7.2 + php: + version: 8.2.29 # vimeo/psalm needs a newer version dependencies: before: + - sudo /home/scrutinizer/.phpenv/shims/php -f /usr/bin/composer.phar self-update --2 + - composer --version - composer install tests: override: diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b7d6133c..2efc188b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,56 @@ # Change Log -## [5.10.4] - YYYY-MM-DD +## [6.0.0] - 2025-10-31 + +### Added + +* [#550](https://github.com/phpmyadmin/sql-parser/pull/550): Create the `StatementInfo` class +* [#549](https://github.com/phpmyadmin/sql-parser/pull/549): Add `leftOperand`, `operator` and `rightOperand` properties to the `Condition` component + +### Changed + +* Add native type declarations +* [#365](https://github.com/phpmyadmin/sql-parser/pull/365): Change `Component` abstract class to an interface +* [#368](https://github.com/phpmyadmin/sql-parser/pull/368): Rename class members to use camel case format +* [#384](https://github.com/phpmyadmin/sql-parser/pull/384): Change `Context::load()` error handling from throwing an exception to returning a boolean value +* [#454](https://github.com/phpmyadmin/sql-parser/pull/454): Move `Misc::getAliases()` into `SelectStatement::getAliases()` +* [#480](https://github.com/phpmyadmin/sql-parser/pull/480): Split up Context::escape() +* [#470](https://github.com/phpmyadmin/sql-parser/pull/470): Restrict parameter type of `OptionsArray::merge` +* [#483](https://github.com/phpmyadmin/sql-parser/pull/483): Split build into buildAll +* [#505](https://github.com/phpmyadmin/sql-parser/pull/505): Change some static properties into class constants +* [#504](https://github.com/phpmyadmin/sql-parser/pull/504): Change `TokensList` class to add the `buildFromArray` method +* [#507](https://github.com/phpmyadmin/sql-parser/pull/507): Replace the `Token::TYPE_*` constants with the `TokenType` enum +* [#543](https://github.com/phpmyadmin/sql-parser/pull/543): Extract `parse` method from components into Parsers + +### Removed + +* Drop support for PHP 7.2, 7.3, 7.4, 8.0 and 8.1 +* [#471](https://github.com/phpmyadmin/sql-parser/pull/471): Drop `USE_UTF_STRINGS` constant +* [#482](https://github.com/phpmyadmin/sql-parser/pull/482): Drop `$options` parameter from `Component::build` +* [#585](https://github.com/phpmyadmin/sql-parser/pull/585): Drop `Utils\Routine` class +* [#594](https://github.com/phpmyadmin/sql-parser/pull/594): Remove alternative executable files + +## [5.11.1] - 2025-07-20 + +### Added + +- Add context files for MySQL 9.2, MySQL 9.3 and MariaDB 12.1 (#628) +- Add context files for MariaDB 11.8 and MariaDB 12.0 (#620) + +### Fixed + +- Fix Window function handling that failed because of "OVER" keyword case-sensitive comparison (#623) + +## [5.11.0] - 2025-02-22 + +### Added + +- Add Translator::setLocale() method (#599) + +### Fixed + +- Fix FORCE INDEX not been parsed correctly (#614) +- Fix parsing of ADD UNIQUE and ADD UNIQUE KEY for ALTER TABLE statements (#611) ## [5.10.3] - 2025-01-18 @@ -109,6 +159,7 @@ * Support table structure with `COMPRESSED` columns (#351) * Add `#[\AllowDynamicProperties]` on `Statement` and `Expression` classes for PHP 8.2 support * Support `ALTER` queries of `PARTITIONS` (#329) +* Change `Context::load()` error handling to returning a boolean value instead of throwing a `LoaderException` (#384) * Fixed differentiating between `ANALYZE` and `EXPLAIN` statements (#386) * Added "NOT" to the select options (#374) * Implement the `EXPLAIN` Parser (#389) @@ -606,6 +657,9 @@ __Breaking changes:__ * First release of this library. +[6.0.0]: https://github.com/phpmyadmin/sql-parser/compare/5.11.1...6.0.0 +[5.11.1]: https://github.com/phpmyadmin/sql-parser/compare/5.11.0...5.11.1 +[5.11.0]: https://github.com/phpmyadmin/sql-parser/compare/5.10.3...5.11.0 [5.10.3]: https://github.com/phpmyadmin/sql-parser/compare/5.10.2...5.10.3 [5.10.2]: https://github.com/phpmyadmin/sql-parser/compare/5.10.1...5.10.2 [5.10.1]: https://github.com/phpmyadmin/sql-parser/compare/5.10.0...5.10.1 diff --git a/README.md b/README.md index 46c6cbb5e..f61f70d90 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A validating SQL lexer and parser with a focus on MySQL dialect. ## Code status -![Tests](https://github.com/phpmyadmin/sql-parser/workflows/Run%20tests/badge.svg?branch=master) +[![Tests](https://github.com/phpmyadmin/sql-parser/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/phpmyadmin/sql-parser/actions/workflows/tests.yml?query=branch%3Amaster) [![Code Coverage](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/?branch=master) [![codecov.io](https://codecov.io/github/phpmyadmin/sql-parser/coverage.svg?branch=master)](https://codecov.io/github/phpmyadmin/sql-parser?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/?branch=master) @@ -34,26 +34,26 @@ The API documentation is available at Command line utility to syntax highlight SQL query: ```sh -./vendor/bin/highlight-query --query "SELECT 1" +./vendor/bin/sql-parser --highlight --query "SELECT 1" ``` Command line utility to lint SQL query: ```sh -./vendor/bin/lint-query --query "SELECT 1" +./vendor/bin/sql-parser --lint --query "SELECT 1" ``` Command line utility to tokenize SQL query: ```sh -./vendor/bin/tokenize-query --query "SELECT 1" +./vendor/bin/sql-parser --tokenize --query "SELECT 1" ``` All commands are able to parse input from stdin (standard in), such as: ```sh -echo "SELECT 1" | ./vendor/bin/highlight-query -cat example.sql | ./vendor/bin/lint-query +echo "SELECT 1" | ./vendor/bin/sql-parser --highlight +cat example.sql | ./vendor/bin/sql-parser --lint ``` ### Formatting SQL query @@ -72,7 +72,7 @@ $query = 'OPTIMIZE TABLE tbl'; $parser = new Parser($query); $flags = Query::getFlags($parser->statements[0]); -echo $flags['querytype']; +echo $flags->queryType?->value; ``` ### Parsing and building SQL query @@ -116,7 +116,7 @@ The locale is automatically detected from your environment, you can also set a d **From cli**: ```sh -LC_ALL=pl ./vendor/bin/lint-query --query "SELECT 1" +LC_ALL=pl ./vendor/bin/sql-parser --lint --query "SELECT 1" ``` **From php**: @@ -124,7 +124,7 @@ LC_ALL=pl ./vendor/bin/lint-query --query "SELECT 1" ```php require __DIR__ . '/vendor/autoload.php'; -$GLOBALS['lang'] = 'pl'; +PhpMyAdmin\SqlParser\Translator::setLocale('pl'); $query1 = 'select * from a'; $parser = new PhpMyAdmin\SqlParser\Parser($query1); diff --git a/bin/highlight-query b/bin/highlight-query deleted file mode 100755 index 53d380f2b..000000000 --- a/bin/highlight-query +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env php -runHighlight()); diff --git a/bin/lint-query b/bin/lint-query deleted file mode 100755 index 1fe12f2fb..000000000 --- a/bin/lint-query +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env php -runLint()); diff --git a/bin/tokenize-query b/bin/tokenize-query deleted file mode 100755 index e1a55f6b0..000000000 --- a/bin/tokenize-query +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env php -runTokenize()); diff --git a/composer.json b/composer.json index 36ccdb91a..df2604e22 100644 --- a/composer.json +++ b/composer.json @@ -22,34 +22,32 @@ } ], "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.16" + "php": "^8.2", + "symfony/polyfill-mbstring": "^1.24" }, "require-dev": { - "phpbench/phpbench": "^1.1", - "phpmyadmin/coding-standard": "^3.0", - "phpmyadmin/motranslator": "^4.0 || ^5.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.9.12", - "phpstan/phpstan-phpunit": "^1.3.3", - "phpunit/phpunit": "^8.5 || ^9.6", - "psalm/plugin-phpunit": "^0.16.1", - "vimeo/psalm": "^4.11", - "zumba/json-serializer": "~3.0.2" + "phpbench/phpbench": "^1.6", + "phpmyadmin/coding-standard": "^4.1", + "phpmyadmin/motranslator": "^5.4", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.46", + "phpstan/phpstan-deprecation-rules": "^2.0.4", + "phpstan/phpstan-phpunit": "^2.0.16", + "phpstan/phpstan-strict-rules": "^2.0.10", + "phpunit/phpunit": "^11.5", + "psalm/plugin-phpunit": "^0.19.6", + "vimeo/psalm": "^6.16.1", + "zumba/json-serializer": "^3.2" }, "conflict": { - "phpmyadmin/motranslator": "<3.0" + "phpmyadmin/motranslator": "<5.2" }, "suggest": { "ext-mbstring": "For best performance", "phpmyadmin/motranslator": "Translate messages to your favorite locale" }, "bin": [ - "bin/highlight-query", - "bin/lint-query", - "bin/sql-parser", - "bin/tokenize-query" + "bin/sql-parser" ], "autoload": { "psr-4": { @@ -92,5 +90,10 @@ "/tests", "/phpunit.xml.dist" ] + }, + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } } } diff --git a/locale/ar/LC_MESSAGES/sqlparser.mo b/locale/ar/LC_MESSAGES/sqlparser.mo index fa3a19f0b..b29af2017 100644 Binary files a/locale/ar/LC_MESSAGES/sqlparser.mo and b/locale/ar/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/ar/LC_MESSAGES/sqlparser.po b/locale/ar/LC_MESSAGES/sqlparser.po index 34a9c65a5..6ed03eafd 100644 --- a/locale/ar/LC_MESSAGES/sqlparser.po +++ b/locale/ar/LC_MESSAGES/sqlparser.po @@ -4,17 +4,17 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" -"Language-Team: Arabic \n" +"PO-Revision-Date: 2024-02-01 15:02+0000\n" +"Last-Translator: Mohammed Al Otaibi \n" +"Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.4-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -36,7 +36,7 @@ msgstr "عملية تغيير غير معروفة." #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "تم توقع قيم %1$d ، ولكن تم العثور على %2$d." +msgstr "%1$d كانت القيم متوقعة، ولكن تم العثور على %2$d." #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." @@ -65,7 +65,7 @@ msgstr "كلمة رئيسية غير متوقعة." #: src/Components/CaseExpression.php:192 msgid "Unexpected end of CASE expression" -msgstr "نهاية غير متوقعة من التعبير" +msgstr "نهاية غير متوقعة من تعبير CASE" #: src/Components/CaseExpression.php:212 msgid "Potential duplicate alias of CASE expression." @@ -247,28 +247,20 @@ msgid "Unexpected keyword" msgstr "كلمة أساسية غير متوقعة" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "نتوفع منك ادراج اسم الكيان ." +msgstr "نتوفع منك ادراج اسم CTE." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "كانت الكلمة الرئيسية \"رجوع\" متوقعة." +msgstr "كانت الكلمة الرئيسية AS متوقعة." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "نتوفع منك ادراج اسم الكيان ." +msgstr "الاستعلام الفرعي لCTE كان متوقعا." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected end of LOCK statement." msgid "Unexpected end of the WITH CTE." -msgstr "نهاية غير متوقعة لبيان LOCK." +msgstr "نهاية غير متوقعة لWITH CTE." #~ msgid "Unexpected end of Lock expression." #~ msgstr "نهاية غير متوقعة لتعبير LOCK." diff --git a/locale/be/LC_MESSAGES/sqlparser.mo b/locale/be/LC_MESSAGES/sqlparser.mo index 7bc34a3d6..5f1f1ca7d 100644 Binary files a/locale/be/LC_MESSAGES/sqlparser.mo and b/locale/be/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/be/LC_MESSAGES/sqlparser.po b/locale/be/LC_MESSAGES/sqlparser.po index 3b082aebd..99a60ac4c 100644 --- a/locale/be/LC_MESSAGES/sqlparser.po +++ b/locale/be/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2023-12-07 16:30+0000\n" +"Last-Translator: kopatych \n" "Language-Team: Belarusian \n" "Language: be\n" @@ -14,7 +14,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.3-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -74,7 +74,7 @@ msgstr "Патэнцыйны дублікат псеўданіма ў CASE-вы #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "Псеўданім чакаецца пасля AS, але атрыманы " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 @@ -82,10 +82,8 @@ msgid "An alias was previously found." msgstr "Псеўданім быў знайдзены раней." #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "An alias was expected." msgid "An alias was expected after AS." -msgstr "Чакаўся псеўданім." +msgstr "Чакаўся псеўданім пасля AS." #: src/Components/CreateDefinition.php:255 msgid "" @@ -242,38 +240,28 @@ msgid "This type of clause is not valid in Multi-table queries." msgstr "Гэты тып выразу не правільны для мультытаблічных запытаў." #: src/Statements/LockStatement.php:120 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of LOCK statement." -msgstr "Нечаканы пачатак сцвярджэння." +msgstr "Нечаканы канец аператара LOCK." #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" msgstr "Нечаканае ключавое слова" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "Чакалася назва сутнасці." +msgstr "Чакалася назва CTE." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "Чакалася ключавое слова «RETURNS»." +msgstr "Чакалася ключавое слова \"AS\"." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "Чакалася назва сутнасці." +msgstr "Чакаўся падзапыт CTE." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of the WITH CTE." -msgstr "Нечаканы пачатак сцвярджэння." +msgstr "Нечаканы канец WITH CTE." #~ msgid "Unexpected end of Lock expression." #~ msgstr "Нечаканы канец LOCK-выразу." diff --git a/locale/ckb/LC_MESSAGES/sqlparser.mo b/locale/ckb/LC_MESSAGES/sqlparser.mo index 953be3cc4..df3cc43c4 100644 Binary files a/locale/ckb/LC_MESSAGES/sqlparser.mo and b/locale/ckb/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/ckb/LC_MESSAGES/sqlparser.po b/locale/ckb/LC_MESSAGES/sqlparser.po index 5fc7122e1..4faa718d8 100644 --- a/locale/ckb/LC_MESSAGES/sqlparser.po +++ b/locale/ckb/LC_MESSAGES/sqlparser.po @@ -8,46 +8,48 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2015-11-20 15:47+0000\n" -"Last-Translator: Dana Akram \n" -"Language-Team: Kurdish Sorani \n" +"PO-Revision-Date: 2024-05-02 16:08+0000\n" +"Last-Translator: Ahmed kurdish \n" +"Language-Team: Kurdish (Central) \n" "Language: ckb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.5-dev\n" +"X-Generator: Weblate 5.5.3-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." -msgstr "" +msgstr "هێشتا جێبەجێ نەکراوە." #: src/Components/AlterOperation.php:415 src/Statement.php:359 msgid "" "A new statement was found, but no delimiter between it and the previous one." msgstr "" +"بەیاننامەیەکی نوێ دۆزرایەوە، بەڵام هیچ سنووردارکەرێک لە نێوان ئەو و " +"لێدوانەکەی پێشوودا نەبوو." #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "کۆما ونبوو پێش دەستپێکردنی ئۆپەراسیۆنی گۆڕینی نوێ." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." -msgstr "" +msgstr "کارکردنی گۆڕینی نەناسراو." #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "" +msgstr "بەهاکانی %1$d چاوەڕوان دەکران، بەڵام %2$d دۆزرایەوە." #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." -msgstr "" +msgstr "چاوەڕوان دەکرا کە بڕاکێتێکی کردنەوەی کە کۆمەڵێک بەها بەدوایدا هاتبێت." #: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 msgid "An opening bracket was expected." -msgstr "" +msgstr "چاوەڕوان دەکرا بڕاکێتێکی کردنەوەی یارییەکە بێت." #: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 #: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 @@ -64,72 +66,64 @@ msgstr "" #: src/Statements/LockStatement.php:85 src/Statements/ReplaceStatement.php:149 #: src/Statements/ReplaceStatement.php:178 msgid "Unexpected keyword." -msgstr "" +msgstr "وشەی سەرەکی چاوەڕواننەکراو." #: src/Components/CaseExpression.php:192 msgid "Unexpected end of CASE expression" -msgstr "" +msgstr "کۆتایی چاوەڕواننەکراوی دەربڕینی کەیس" #: src/Components/CaseExpression.php:212 msgid "Potential duplicate alias of CASE expression." -msgstr "" +msgstr "ناوی نادیاری دووبارەبوونەوەی پۆتانسێلی دەربڕینی کەیس." #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "ناوی نادیارێک کە چاوەڕوان دەکرا دوای AS بەڵام بەدەستی هێنا " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 msgid "An alias was previously found." -msgstr "" +msgstr "پێشتر ناوێکی نادیار دۆزرایەوە." #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "No tables selected." msgid "An alias was expected after AS." -msgstr "هیچ خشتەیەک هەڵنەبژێردراوە." +msgstr "چاوەڕوان دەکرا ناوی نادیار لە دوای AS." #: src/Components/CreateDefinition.php:255 msgid "" "A symbol name was expected! A reserved keyword can not be used as a column " "name without backquotes." msgstr "" +"ناوێکی هێما چاوەڕوان دەکرا! وشەی سەرەکی یەدەگ ناتوانرێت وەک ناوی ستوونی " +"بەکاربهێنرێت بەبێ پاشکۆ." #: src/Components/CreateDefinition.php:268 -#, fuzzy -#| msgid "No tables selected." msgid "A symbol name was expected!" -msgstr "هیچ خشتەیەک هەڵنەبژێردراوە." +msgstr "ناوێکی هێما چاوەڕوان دەکرا!" #: src/Components/CreateDefinition.php:300 -#, fuzzy -#| msgid "No tables selected." msgid "A comma or a closing bracket was expected." -msgstr "هیچ خشتەیەک هەڵنەبژێردراوە." +msgstr "کۆما یان بڕاکێتی داخستنی چاوەڕوان دەکرا." #: src/Components/CreateDefinition.php:313 src/Statements/WithStatement.php:328 msgid "A closing bracket was expected." -msgstr "" +msgstr "چاوەڕوان دەکرا کە بڕاکێتی داخستنی کۆتایی بێت." #: src/Components/DataType.php:130 msgid "Unrecognized data type." -msgstr "" +msgstr "جۆری داتا نەناسراو." #: src/Components/ExpressionArray.php:106 src/Statements/WithStatement.php:197 -#, fuzzy -#| msgid "No rows selected" msgid "An expression was expected." -msgstr "هیچ ڕیزێک هەڵنەبژێراوە" +msgstr "دەربڕینێک چاوەڕوان دەکرا." #: src/Components/Expression.php:257 src/Components/Expression.php:435 -#, fuzzy -#| msgid "No tables selected." msgid "An alias was expected." -msgstr "هیچ خشتەیەک هەڵنەبژێردراوە." +msgstr "چاوەڕوان دەکرا ناوی نادیارێک بێت." #: src/Components/Expression.php:403 msgid "Unexpected dot." -msgstr "" +msgstr "خاڵێکی چاوەڕواننەکراو." #: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 #: src/Components/Key.php:259 src/Components/LockExpression.php:161 @@ -145,159 +139,133 @@ msgstr "" #: src/Statements/PurgeStatement.php:140 #: src/Statements/ReplaceStatement.php:163 src/Statements/WithStatement.php:132 msgid "Unexpected token." -msgstr "" +msgstr "نیشانەیەکی چاوەڕواننەکراو." #: src/Components/Limit.php:78 src/Components/Limit.php:105 msgid "An offset was expected." -msgstr "" +msgstr "چاوەڕوان دەکرا ئۆفسێتێک بێت." #: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 -#, fuzzy -#| msgid "Number of rows" msgid "Unexpected end of LOCK expression." -msgstr "ژمارەی ڕیزەکان" +msgstr "کۆتایی چاوەڕواننەکراوی دەربڕینی قوفڵ." #: src/Components/OptionsArray.php:146 #, php-format msgid "This option conflicts with \"%1$s\"." -msgstr "" +msgstr "ئەم هەڵبژاردنە لەگەڵ \"%1$s\" ناکۆکە." #: src/Components/RenameOperation.php:103 msgid "The old name of the table was expected." -msgstr "" +msgstr "ناوی کۆنی خشتەکە چاوەڕوان دەکرا." #: src/Components/RenameOperation.php:109 msgid "Keyword \"TO\" was expected." -msgstr "" +msgstr "وشەی سەرەکی \"TO\" چاوەڕوان دەکرا." #: src/Components/RenameOperation.php:124 msgid "The new name of the table was expected." -msgstr "" +msgstr "ناوی نوێی خشتەکە چاوەڕوان دەکرا." #: src/Components/RenameOperation.php:140 -#, fuzzy -#| msgid "The row has been deleted." msgid "A rename operation was expected." -msgstr "ڕیزەکە سڕایەوە" +msgstr "چاوەڕوان دەکرا ئۆپەراسیۆنی گۆڕینی ناوەکە ئەنجام بدرێت." #: src/Components/SetOperation.php:121 -#, fuzzy -#| msgid "Versions" msgid "Missing expression." -msgstr "وەشانەکان" +msgstr "دەربڕینی ونبوون." #: src/Lexer.php:274 msgid "Unexpected character." -msgstr "" +msgstr "کارەکتەری چاوەڕوان نەکراو." #: src/Lexer.php:313 msgid "Expected whitespace(s) before delimiter." -msgstr "" +msgstr "بۆشایی سپی چاوەڕوانکراو پێش سنووردارکەر." #: src/Lexer.php:329 src/Lexer.php:348 msgid "Expected delimiter." -msgstr "" +msgstr "سنووردارکەری چاوەڕوانکراو." #: src/Lexer.php:1004 #, php-format msgid "Ending quote %1$s was expected." -msgstr "" +msgstr "کۆتایی هاتنی کۆتی %1$s چاوەڕوان دەکرا." #: src/Lexer.php:1056 msgid "Variable name was expected." -msgstr "" +msgstr "ناوی گۆڕاو چاوەڕوان دەکرا." #: src/Parser.php:456 -#, fuzzy -#| msgid "Number of rows" msgid "Unexpected beginning of statement." -msgstr "ژمارەی ڕیزەکان" +msgstr "سەرەتای چاوەڕواننەکراوی لێدوان." #: src/Parser.php:499 msgid "Unrecognized statement type." -msgstr "" +msgstr "جۆری ڕستەی نەناسراو." #: src/Parser.php:587 msgid "No transaction was previously started." -msgstr "" +msgstr "پێشتر هیچ مامەڵەیەک دەستی پێنەکردبوو." #: src/Statement.php:327 msgid "This type of clause was previously parsed." -msgstr "" +msgstr "ئەم جۆرە بڕگەیە پێشتر شیکرابووەوە." #: src/Statement.php:398 msgid "Unrecognized keyword." -msgstr "" +msgstr "وشەی سەرەکی نەناسراو." #: src/Statement.php:409 -#, fuzzy -#| msgid "Number of rows" msgid "Keyword at end of statement." -msgstr "ژمارەی ڕیزەکان" +msgstr "وشەی سەرەکی لە کۆتایی بەیاننامەکەدا." #: src/Statement.php:555 -#, fuzzy -#| msgid "Number of rows" msgid "Unexpected ordering of clauses." -msgstr "ژمارەی ڕیزەکان" +msgstr "ڕێکوپێکی چاوەڕواننەکراوی بڕگەکان." #: src/Statements/CreateStatement.php:549 msgid "The name of the entity was expected." -msgstr "" +msgstr "ناوی قەوارەکە چاوەڕوان دەکرا." #: src/Statements/CreateStatement.php:598 -#, fuzzy -#| msgid "No tables selected." msgid "A table name was expected." -msgstr "هیچ خشتەیەک هەڵنەبژێردراوە." +msgstr "ناوی خشتەیەک چاوەڕوان دەکرا." #: src/Statements/CreateStatement.php:603 -#, fuzzy -#| msgid "The row has been deleted." msgid "At least one column definition was expected." -msgstr "ڕیزەکە سڕایەوە" +msgstr "بەلایەنی کەمەوە یەک پێناسەی ستوونی چاوەڕوان دەکرا." #: src/Statements/CreateStatement.php:707 msgid "A \"RETURNS\" keyword was expected." -msgstr "" +msgstr "وشەیەکی سەرەکی \"RETURNS\" چاوەڕوان دەکرا." #: src/Statements/DeleteStatement.php:329 msgid "This type of clause is not valid in Multi-table queries." -msgstr "" +msgstr "ئەم جۆرە بڕگەیە لە پرسیارەکانی Multi-tableدا کاریگەر نییە." #: src/Statements/LockStatement.php:120 -#, fuzzy -#| msgid "Number of rows" msgid "Unexpected end of LOCK statement." -msgstr "ژمارەی ڕیزەکان" +msgstr "بەیاننامەی کۆتایی چاوەڕواننەکراوی قوفڵ." #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" -msgstr "" +msgstr "وشەی سەرەکی چاوەڕواننەکراو" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "No tables selected." msgid "The name of the CTE was expected." -msgstr "هیچ خشتەیەک هەڵنەبژێردراوە." +msgstr "ناوی CTE چاوەڕوان دەکرا." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "No rows selected" msgid "AS keyword was expected." -msgstr "هیچ ڕیزێک هەڵنەبژێراوە" +msgstr "وشەی سەرەکی AS چاوەڕوان دەکرا." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "No tables selected." msgid "Subquery of the CTE was expected." -msgstr "هیچ خشتەیەک هەڵنەبژێردراوە." +msgstr "چاوەڕوان دەکرا پرسیاری لاوەکی لە CTE بکرێت." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Number of rows" msgid "Unexpected end of the WITH CTE." -msgstr "ژمارەی ڕیزەکان" +msgstr "کۆتایی چاوەڕواننەکراوی لەگەڵ CTE." #, fuzzy #~| msgid "Number of rows" diff --git a/locale/el/LC_MESSAGES/sqlparser.mo b/locale/el/LC_MESSAGES/sqlparser.mo index baafdd93e..e2e42bafb 100644 Binary files a/locale/el/LC_MESSAGES/sqlparser.mo and b/locale/el/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/el/LC_MESSAGES/sqlparser.po b/locale/el/LC_MESSAGES/sqlparser.po index c285b1075..54883a680 100644 --- a/locale/el/LC_MESSAGES/sqlparser.po +++ b/locale/el/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2026-05-07 10:11+0000\n" +"Last-Translator: Sergio Granadoz \n" "Language-Team: Greek \n" "Language: el\n" @@ -13,22 +13,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.17.1\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." msgstr "Δεν εφαρμόστηκε ακόμα." #: src/Components/AlterOperation.php:415 src/Statement.php:359 +#, fuzzy msgid "" "A new statement was found, but no delimiter between it and the previous one." msgstr "" -"Βρέθηκε μια νέα δήλωση, αλλά χωρίς διαχωριστικό μεταξύ της και της " -"προηγούμενης." +"A new statement was found, but no delimiter between it and the previous one." #: src/Components/AlterOperation.php:427 +#, fuzzy msgid "Missing comma before start of a new alter operation." -msgstr "Λείπει κόμμα πριν από την έναρξη μιας νέας λειτουργίας αλλαγής." +msgstr "Missing comma before start of a new alter operation." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." @@ -248,28 +249,20 @@ msgid "Unexpected keyword" msgstr "Μη αναμενόμενη λέξη-κλειδί" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "Αναμενόταν το όνομα της οντότητας." +msgstr "Αναμενόταν το όνομα της ΚΕΠ." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "Αναμενόταν μια λέξη-κλειδί «RETURNS»." +msgstr "Αναμενόταν λέξη-κλειδί «AS»." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "Αναμενόταν το όνομα της οντότητας." +msgstr "Αναμενόταν υποερώτημα της ΚΕΠ." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected end of LOCK statement." msgid "Unexpected end of the WITH CTE." -msgstr "Μη αναμενόμενο τέλος της δήλωσης LOCK." +msgstr "Μη αναμενόμενο τέλος της δήλωσης WITH ΚΕΠ." #~ msgid "Unexpected end of Lock expression." #~ msgstr "Μη αναμενόμενο τέλος της έκφρασης LOCK." diff --git a/locale/enm/LC_MESSAGES/sqlparser.mo b/locale/enm/LC_MESSAGES/sqlparser.mo new file mode 100644 index 000000000..9c624f6f2 Binary files /dev/null and b/locale/enm/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/enm/LC_MESSAGES/sqlparser.po b/locale/enm/LC_MESSAGES/sqlparser.po new file mode 100644 index 000000000..8d78d0444 --- /dev/null +++ b/locale/enm/LC_MESSAGES/sqlparser.po @@ -0,0 +1,262 @@ +# phpMyAdmin SQL parser translation. +# Copyright (C) 2015 - 2023 phpMyAdmin devel team +# This file is distributed under the same license as the SQL parser package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: SQL parser 5\n" +"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" +"POT-Creation-Date: 2023-02-26 22:46+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: enm\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: src/Component.php:39 src/Component.php:59 +msgid "Not implemented yet." +msgstr "" + +#: src/Components/AlterOperation.php:415 src/Statement.php:359 +msgid "" +"A new statement was found, but no delimiter between it and the previous one." +msgstr "" + +#: src/Components/AlterOperation.php:427 +msgid "Missing comma before start of a new alter operation." +msgstr "" + +#: src/Components/AlterOperation.php:472 +msgid "Unrecognized alter operation." +msgstr "" + +#: src/Components/Array2d.php:88 +#, php-format +msgid "%1$d values were expected, but found %2$d." +msgstr "" + +#: src/Components/Array2d.php:108 +msgid "An opening bracket followed by a set of values was expected." +msgstr "" + +#: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 +msgid "An opening bracket was expected." +msgstr "" + +#: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 +#: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 +#: src/Components/IndexHint.php:134 src/Components/IndexHint.php:164 +#: src/Components/LockExpression.php:173 src/Components/LockExpression.php:180 +#: src/Components/LockExpression.php:188 src/Statements/DeleteStatement.php:249 +#: src/Statements/DeleteStatement.php:268 +#: src/Statements/DeleteStatement.php:308 +#: src/Statements/DeleteStatement.php:320 +#: src/Statements/DeleteStatement.php:346 +#: src/Statements/DeleteStatement.php:353 +#: src/Statements/InsertStatement.php:189 +#: src/Statements/InsertStatement.php:220 src/Statements/LoadStatement.php:265 +#: src/Statements/LockStatement.php:85 src/Statements/ReplaceStatement.php:149 +#: src/Statements/ReplaceStatement.php:178 +msgid "Unexpected keyword." +msgstr "" + +#: src/Components/CaseExpression.php:192 +msgid "Unexpected end of CASE expression" +msgstr "" + +#: src/Components/CaseExpression.php:212 +msgid "Potential duplicate alias of CASE expression." +msgstr "" + +#: src/Components/CaseExpression.php:225 +msgid "An alias expected after AS but got " +msgstr "" + +#: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 +#: src/Components/Expression.php:372 src/Components/Expression.php:424 +msgid "An alias was previously found." +msgstr "" + +#: src/Components/CaseExpression.php:252 +msgid "An alias was expected after AS." +msgstr "" + +#: src/Components/CreateDefinition.php:255 +msgid "" +"A symbol name was expected! A reserved keyword can not be used as a column " +"name without backquotes." +msgstr "" + +#: src/Components/CreateDefinition.php:268 +msgid "A symbol name was expected!" +msgstr "" + +#: src/Components/CreateDefinition.php:300 +msgid "A comma or a closing bracket was expected." +msgstr "" + +#: src/Components/CreateDefinition.php:313 src/Statements/WithStatement.php:328 +msgid "A closing bracket was expected." +msgstr "" + +#: src/Components/DataType.php:130 +msgid "Unrecognized data type." +msgstr "" + +#: src/Components/ExpressionArray.php:106 src/Statements/WithStatement.php:197 +msgid "An expression was expected." +msgstr "" + +#: src/Components/Expression.php:257 src/Components/Expression.php:435 +msgid "An alias was expected." +msgstr "" + +#: src/Components/Expression.php:403 +msgid "Unexpected dot." +msgstr "" + +#: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 +#: src/Components/Key.php:259 src/Components/LockExpression.php:161 +#: src/Components/SetOperation.php:138 src/Statement.php:258 +#: src/Statements/DeleteStatement.php:263 +#: src/Statements/DeleteStatement.php:315 +#: src/Statements/ExplainStatement.php:161 +#: src/Statements/InsertStatement.php:203 +#: src/Statements/InsertStatement.php:240 src/Statements/LoadStatement.php:270 +#: src/Statements/LoadStatement.php:291 src/Statements/LoadStatement.php:310 +#: src/Statements/LockStatement.php:93 src/Statements/LockStatement.php:100 +#: src/Statements/PurgeStatement.php:106 src/Statements/PurgeStatement.php:119 +#: src/Statements/PurgeStatement.php:140 +#: src/Statements/ReplaceStatement.php:163 src/Statements/WithStatement.php:132 +msgid "Unexpected token." +msgstr "" + +#: src/Components/Limit.php:78 src/Components/Limit.php:105 +msgid "An offset was expected." +msgstr "" + +#: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 +msgid "Unexpected end of LOCK expression." +msgstr "" + +#: src/Components/OptionsArray.php:146 +#, php-format +msgid "This option conflicts with \"%1$s\"." +msgstr "" + +#: src/Components/RenameOperation.php:103 +msgid "The old name of the table was expected." +msgstr "" + +#: src/Components/RenameOperation.php:109 +msgid "Keyword \"TO\" was expected." +msgstr "" + +#: src/Components/RenameOperation.php:124 +msgid "The new name of the table was expected." +msgstr "" + +#: src/Components/RenameOperation.php:140 +msgid "A rename operation was expected." +msgstr "" + +#: src/Components/SetOperation.php:121 +msgid "Missing expression." +msgstr "" + +#: src/Lexer.php:274 +msgid "Unexpected character." +msgstr "" + +#: src/Lexer.php:313 +msgid "Expected whitespace(s) before delimiter." +msgstr "" + +#: src/Lexer.php:329 src/Lexer.php:348 +msgid "Expected delimiter." +msgstr "" + +#: src/Lexer.php:1004 +#, php-format +msgid "Ending quote %1$s was expected." +msgstr "" + +#: src/Lexer.php:1056 +msgid "Variable name was expected." +msgstr "" + +#: src/Parser.php:456 +msgid "Unexpected beginning of statement." +msgstr "" + +#: src/Parser.php:499 +msgid "Unrecognized statement type." +msgstr "" + +#: src/Parser.php:587 +msgid "No transaction was previously started." +msgstr "" + +#: src/Statement.php:327 +msgid "This type of clause was previously parsed." +msgstr "" + +#: src/Statement.php:398 +msgid "Unrecognized keyword." +msgstr "" + +#: src/Statement.php:409 +msgid "Keyword at end of statement." +msgstr "" + +#: src/Statement.php:555 +msgid "Unexpected ordering of clauses." +msgstr "" + +#: src/Statements/CreateStatement.php:549 +msgid "The name of the entity was expected." +msgstr "" + +#: src/Statements/CreateStatement.php:598 +msgid "A table name was expected." +msgstr "" + +#: src/Statements/CreateStatement.php:603 +msgid "At least one column definition was expected." +msgstr "" + +#: src/Statements/CreateStatement.php:707 +msgid "A \"RETURNS\" keyword was expected." +msgstr "" + +#: src/Statements/DeleteStatement.php:329 +msgid "This type of clause is not valid in Multi-table queries." +msgstr "" + +#: src/Statements/LockStatement.php:120 +msgid "Unexpected end of LOCK statement." +msgstr "" + +#: src/Statements/PurgeStatement.php:138 +msgid "Unexpected keyword" +msgstr "" + +#: src/Statements/WithStatement.php:118 +msgid "The name of the CTE was expected." +msgstr "" + +#: src/Statements/WithStatement.php:137 +msgid "AS keyword was expected." +msgstr "" + +#: src/Statements/WithStatement.php:149 +msgid "Subquery of the CTE was expected." +msgstr "" + +#: src/Statements/WithStatement.php:266 +msgid "Unexpected end of the WITH CTE." +msgstr "" diff --git a/locale/fi/LC_MESSAGES/sqlparser.mo b/locale/fi/LC_MESSAGES/sqlparser.mo index 6e8e32b5f..71cf08b08 100644 Binary files a/locale/fi/LC_MESSAGES/sqlparser.mo and b/locale/fi/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/fi/LC_MESSAGES/sqlparser.po b/locale/fi/LC_MESSAGES/sqlparser.po index e1418f41c..562ea964e 100644 --- a/locale/fi/LC_MESSAGES/sqlparser.po +++ b/locale/fi/LC_MESSAGES/sqlparser.po @@ -4,16 +4,16 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" -"Language-Team: Finnish \n" +"PO-Revision-Date: 2025-08-17 14:01+0000\n" +"Last-Translator: VortexP \n" +"Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.13\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -27,7 +27,7 @@ msgstr "" #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "Pilkku puuttuu ennen uuden muutostoiminnon aloittamista." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." @@ -39,13 +39,12 @@ msgid "%1$d values were expected, but found %2$d." msgstr "Odotettiin arvoa %1$d , mutta löydettiin %2$d." #: src/Components/Array2d.php:108 -#, fuzzy msgid "An opening bracket followed by a set of values was expected." -msgstr "Odotettiin avausmerkki ja sitä odotettiin seuraavan arvoja." +msgstr "Odotettiin aloitussulkua, jota seuraa joukko arvoja." #: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 msgid "An opening bracket was expected." -msgstr "Odotettiin avausmerkkiä." +msgstr "Odotettiin ensimmäistä hakasulkua." #: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 #: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 @@ -69,34 +68,29 @@ msgid "Unexpected end of CASE expression" msgstr "Odottamaton loppu CASE-ilmaisulle" #: src/Components/CaseExpression.php:212 -#, fuzzy -#| msgid "Unexpected end of CASE expression" msgid "Potential duplicate alias of CASE expression." -msgstr "Odottamaton loppu CASE-ilmaisulle" +msgstr "CASE-lausekkeen mahdollinen kaksoisalias." #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "Alias odotettiin AS:n jälkeen, mutta sai " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 msgid "An alias was previously found." -msgstr "" +msgstr "Alias löydettiin aiemmmin." #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "An alias was expected." msgid "An alias was expected after AS." -msgstr "Odotettiin aliasta." +msgstr "AS:n jälkeen odotettiin alias." #: src/Components/CreateDefinition.php:255 -#, fuzzy msgid "" "A symbol name was expected! A reserved keyword can not be used as a column " "name without backquotes." msgstr "" -"Odotettiin symbolin nimeä! Varattua avainsanaa ei voida käyttää palstan " -"nimenä ilman lainausmerkkejä." +"Symbolinimeä odotettiin! Varattua avainsanaa ei voi käyttää sarakkeen nimenä " +"ilman lainausmerkkejä." #: src/Components/CreateDefinition.php:268 msgid "A symbol name was expected!" @@ -153,7 +147,7 @@ msgstr "Odottamaton loppu LOCK-ilmaisulle." #: src/Components/OptionsArray.php:146 #, php-format msgid "This option conflicts with \"%1$s\"." -msgstr "" +msgstr "Tämä vaihtoehto on ristiriidassa \"%1$s\":n kanssa." #: src/Components/RenameOperation.php:103 msgid "The old name of the table was expected." @@ -161,7 +155,7 @@ msgstr "Odotettiin vanhaa taulunimeä." #: src/Components/RenameOperation.php:109 msgid "Keyword \"TO\" was expected." -msgstr "" +msgstr "Avainsanaa \"TO\" odotettiin." #: src/Components/RenameOperation.php:124 msgid "The new name of the table was expected." @@ -172,10 +166,8 @@ msgid "A rename operation was expected." msgstr "Odotettiin uudelleennimeämistoimintoa." #: src/Components/SetOperation.php:121 -#, fuzzy -#| msgid "as regular expression" msgid "Missing expression." -msgstr "regexp-haku" +msgstr "Puuttuva lauseke." #: src/Lexer.php:274 msgid "Unexpected character." @@ -183,11 +175,11 @@ msgstr "Odottamatton merkki." #: src/Lexer.php:313 msgid "Expected whitespace(s) before delimiter." -msgstr "" +msgstr "Odotettu välilyöntejä ennen erotinta." #: src/Lexer.php:329 src/Lexer.php:348 msgid "Expected delimiter." -msgstr "" +msgstr "Odotettu erotin." #: src/Lexer.php:1004 #, php-format @@ -204,91 +196,71 @@ msgstr "Odottamaton ilmaisun alku." #: src/Parser.php:499 msgid "Unrecognized statement type." -msgstr "" +msgstr "Tuntematon lausuntotyyppi." #: src/Parser.php:587 msgid "No transaction was previously started." -msgstr "" +msgstr "Tapahtumaa ei ole aloitettu aiemmin." #: src/Statement.php:327 msgid "This type of clause was previously parsed." -msgstr "" +msgstr "Tämän tyyppinen lauseke jäsennettiin aiemmin." #: src/Statement.php:398 msgid "Unrecognized keyword." -msgstr "" +msgstr "Tuntematon avainsana." #: src/Statement.php:409 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Keyword at end of statement." -msgstr "Odottamaton ilmaisun alku." +msgstr "Avainsana lausunnon lopussa." #: src/Statement.php:555 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected ordering of clauses." -msgstr "Taulun alkuun" +msgstr "Lausekkeiden odottamaton järjestys." #: src/Statements/CreateStatement.php:549 -#, fuzzy -#| msgid "The number of tables that are open." msgid "The name of the entity was expected." -msgstr "Avoinna olevien taulujen määrä." +msgstr "Entiteetin nimeä odotettiin." #: src/Statements/CreateStatement.php:598 -#, fuzzy -#| msgid "Table name template" msgid "A table name was expected." -msgstr "Taulunimen pohja" +msgstr "Taulukon nimeä odotettiin." #: src/Statements/CreateStatement.php:603 -#, fuzzy -#| msgid "The row has been deleted." msgid "At least one column definition was expected." -msgstr "Rivi on nyt poistettu." +msgstr "Ainakin yksi sarakemäärittely odotettiin." #: src/Statements/CreateStatement.php:707 msgid "A \"RETURNS\" keyword was expected." -msgstr "" +msgstr "Avainsanaa \"RETURNS\" odotettiin." #: src/Statements/DeleteStatement.php:329 msgid "This type of clause is not valid in Multi-table queries." -msgstr "" +msgstr "Tämäntyyppinen lauseke ei kelpaa usean taulukon kyselyissä." #: src/Statements/LockStatement.php:120 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of LOCK statement." -msgstr "Odottamaton ilmaisun alku." +msgstr "LOCK-lausekkeen odottamaton loppu." #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" msgstr "Odottamaton avainsana" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The number of tables that are open." msgid "The name of the CTE was expected." -msgstr "Avoinna olevien taulujen määrä." +msgstr "CTE:n nimeä odotettiin." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "An expression was expected." msgid "AS keyword was expected." -msgstr "Odotettiin ilmaisua." +msgstr "AS-avainsana odotettiin." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The number of tables that are open." msgid "Subquery of the CTE was expected." -msgstr "Avoinna olevien taulujen määrä." +msgstr "CTE:n alikyselyä odotettiin." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of the WITH CTE." -msgstr "Odottamaton ilmaisun alku." +msgstr "WITH CTE:n odottamaton loppu." #~ msgid "Unexpected end of Lock expression." #~ msgstr "Odottamaton loppu LOCK-ilmaisulle." diff --git a/locale/fil/LC_MESSAGES/sqlparser.mo b/locale/fil/LC_MESSAGES/sqlparser.mo new file mode 100644 index 000000000..b3356af74 Binary files /dev/null and b/locale/fil/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/fil/LC_MESSAGES/sqlparser.po b/locale/fil/LC_MESSAGES/sqlparser.po new file mode 100644 index 000000000..bd54fd254 --- /dev/null +++ b/locale/fil/LC_MESSAGES/sqlparser.po @@ -0,0 +1,270 @@ +# phpMyAdmin SQL parser translation. +# Copyright (C) 2015 - 2023 phpMyAdmin devel team +# This file is distributed under the same license as the SQL parser package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: SQL parser 5\n" +"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" +"POT-Creation-Date: 2023-02-26 22:46+0100\n" +"PO-Revision-Date: 2025-12-30 09:00+0000\n" +"Last-Translator: liviuconcioiu \n" +"Language-Team: Filipino \n" +"Language: fil\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " +"|| n % 10 == 6 || n % 10 == 9);\n" +"X-Generator: Weblate 5.15.1\n" + +#: src/Component.php:39 src/Component.php:59 +msgid "Not implemented yet." +msgstr "Hindi pa ipinatutupad." + +#: src/Components/AlterOperation.php:415 src/Statement.php:359 +msgid "" +"A new statement was found, but no delimiter between it and the previous one." +msgstr "" +"May nakitang bagong pahayag, ngunit walang delimiter sa pagitan nito at ng " +"nauna." + +#: src/Components/AlterOperation.php:427 +msgid "Missing comma before start of a new alter operation." +msgstr "Nawawalang comma bago mag start ang bagong alter operation." + +#: src/Components/AlterOperation.php:472 +msgid "Unrecognized alter operation." +msgstr "Hindi narerecognized na alter operation." + +#: src/Components/Array2d.php:88 +#, php-format +msgid "%1$d values were expected, but found %2$d." +msgstr "%1$d values ay expected, subalit nahanap ay %2$d." + +#: src/Components/Array2d.php:108 +msgid "An opening bracket followed by a set of values was expected." +msgstr "Ang pagbubukas ng bracket sumunod ang set of values ay expected." + +#: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 +msgid "An opening bracket was expected." +msgstr "Ang opening bracket ay expected." + +#: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 +#: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 +#: src/Components/IndexHint.php:134 src/Components/IndexHint.php:164 +#: src/Components/LockExpression.php:173 src/Components/LockExpression.php:180 +#: src/Components/LockExpression.php:188 src/Statements/DeleteStatement.php:249 +#: src/Statements/DeleteStatement.php:268 +#: src/Statements/DeleteStatement.php:308 +#: src/Statements/DeleteStatement.php:320 +#: src/Statements/DeleteStatement.php:346 +#: src/Statements/DeleteStatement.php:353 +#: src/Statements/InsertStatement.php:189 +#: src/Statements/InsertStatement.php:220 src/Statements/LoadStatement.php:265 +#: src/Statements/LockStatement.php:85 src/Statements/ReplaceStatement.php:149 +#: src/Statements/ReplaceStatement.php:178 +msgid "Unexpected keyword." +msgstr "Hindi expected na keyword." + +#: src/Components/CaseExpression.php:192 +msgid "Unexpected end of CASE expression" +msgstr "Hindi expected end ng CASE expression" + +#: src/Components/CaseExpression.php:212 +msgid "Potential duplicate alias of CASE expression." +msgstr "Potential na duplicate alias ng CASE expression." + +#: src/Components/CaseExpression.php:225 +msgid "An alias expected after AS but got " +msgstr "Ang alias ay expected pagkatapos ng AS subalit ang nakuha ay. " + +#: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 +#: src/Components/Expression.php:372 src/Components/Expression.php:424 +#, fuzzy +msgid "An alias was previously found." +msgstr "Ang alias na previously found." + +#: src/Components/CaseExpression.php:252 +msgid "An alias was expected after AS." +msgstr "Ang alias na expected pagkatapos ng AS." + +#: src/Components/CreateDefinition.php:255 +msgid "" +"A symbol name was expected! A reserved keyword can not be used as a column " +"name without backquotes." +msgstr "" +"Ang symbol name ay expected! Ang reserved keyword ay hindi pweding gamitin " +"as a column na pangalan ng walang backquotes." + +#: src/Components/CreateDefinition.php:268 +msgid "A symbol name was expected!" +msgstr "Ang symbol name ay expected!" + +#: src/Components/CreateDefinition.php:300 +msgid "A comma or a closing bracket was expected." +msgstr "Ang comma o ang closing bracket ay expected." + +#: src/Components/CreateDefinition.php:313 src/Statements/WithStatement.php:328 +msgid "A closing bracket was expected." +msgstr "Ang closing bracket ay expected." + +#: src/Components/DataType.php:130 +msgid "Unrecognized data type." +msgstr "Unrecognized na uri ng data." + +#: src/Components/ExpressionArray.php:106 src/Statements/WithStatement.php:197 +msgid "An expression was expected." +msgstr "Ang expression ay expected." + +#: src/Components/Expression.php:257 src/Components/Expression.php:435 +msgid "An alias was expected." +msgstr "Ang alias ay expected." + +#: src/Components/Expression.php:403 +msgid "Unexpected dot." +msgstr "Unexpected ang dot." + +#: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 +#: src/Components/Key.php:259 src/Components/LockExpression.php:161 +#: src/Components/SetOperation.php:138 src/Statement.php:258 +#: src/Statements/DeleteStatement.php:263 +#: src/Statements/DeleteStatement.php:315 +#: src/Statements/ExplainStatement.php:161 +#: src/Statements/InsertStatement.php:203 +#: src/Statements/InsertStatement.php:240 src/Statements/LoadStatement.php:270 +#: src/Statements/LoadStatement.php:291 src/Statements/LoadStatement.php:310 +#: src/Statements/LockStatement.php:93 src/Statements/LockStatement.php:100 +#: src/Statements/PurgeStatement.php:106 src/Statements/PurgeStatement.php:119 +#: src/Statements/PurgeStatement.php:140 +#: src/Statements/ReplaceStatement.php:163 src/Statements/WithStatement.php:132 +msgid "Unexpected token." +msgstr "Unexpected na token." + +#: src/Components/Limit.php:78 src/Components/Limit.php:105 +msgid "An offset was expected." +msgstr "Ang offset ay expected." + +#: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 +msgid "Unexpected end of LOCK expression." +msgstr "Unexpected end ng LOCK expression." + +#: src/Components/OptionsArray.php:146 +#, php-format +msgid "This option conflicts with \"%1$s\"." +msgstr "Itong option ay nag kaka conflict sa \"%1$s\"." + +#: src/Components/RenameOperation.php:103 +msgid "The old name of the table was expected." +msgstr "Ang lumang pangalan ng table ay expected." + +#: src/Components/RenameOperation.php:109 +msgid "Keyword \"TO\" was expected." +msgstr "Keyword \"TO\" ay expected." + +#: src/Components/RenameOperation.php:124 +msgid "The new name of the table was expected." +msgstr "Ang bagong pangalan ng table ay expected." + +#: src/Components/RenameOperation.php:140 +msgid "A rename operation was expected." +msgstr "Ang pagpalit ng pangalan ay expected." + +#: src/Components/SetOperation.php:121 +msgid "Missing expression." +msgstr "Nawawala ang expression." + +#: src/Lexer.php:274 +msgid "Unexpected character." +msgstr "Unexpected na character." + +#: src/Lexer.php:313 +msgid "Expected whitespace(s) before delimiter." +msgstr "Expected ang whitespace(s) bago ang delimiter." + +#: src/Lexer.php:329 src/Lexer.php:348 +msgid "Expected delimiter." +msgstr "Expected ang delimiter." + +#: src/Lexer.php:1004 +#, php-format +msgid "Ending quote %1$s was expected." +msgstr "Ending quote %1$s ay expected." + +#: src/Lexer.php:1056 +msgid "Variable name was expected." +msgstr "Variable name ay expected." + +#: src/Parser.php:456 +msgid "Unexpected beginning of statement." +msgstr "Unexpected na beginning ng statement." + +#: src/Parser.php:499 +msgid "Unrecognized statement type." +msgstr "Unrecognized ang statement type." + +#: src/Parser.php:587 +msgid "No transaction was previously started." +msgstr "Walang transaction na sinumulan previously." + +#: src/Statement.php:327 +msgid "This type of clause was previously parsed." +msgstr "Itong type clause na ito was previously parsed." + +#: src/Statement.php:398 +msgid "Unrecognized keyword." +msgstr "Unrecognized na keyword." + +#: src/Statement.php:409 +msgid "Keyword at end of statement." +msgstr "Keyword sa dulo ng statemenet." + +#: src/Statement.php:555 +msgid "Unexpected ordering of clauses." +msgstr "Unexpected ordering ng mga clauses." + +#: src/Statements/CreateStatement.php:549 +msgid "The name of the entity was expected." +msgstr "The name ng entity ay expected." + +#: src/Statements/CreateStatement.php:598 +msgid "A table name was expected." +msgstr "Ang table name ay expected." + +#: src/Statements/CreateStatement.php:603 +msgid "At least one column definition was expected." +msgstr "At least isang column definition ay expected." + +#: src/Statements/CreateStatement.php:707 +msgid "A \"RETURNS\" keyword was expected." +msgstr "A \"RETURNS\" keyword ay expected." + +#: src/Statements/DeleteStatement.php:329 +msgid "This type of clause is not valid in Multi-table queries." +msgstr "Itong uri ng clause ay hindi valid sa Multi-table queries." + +#: src/Statements/LockStatement.php:120 +msgid "Unexpected end of LOCK statement." +msgstr "Unexpected end sa LOCK statement." + +#: src/Statements/PurgeStatement.php:138 +msgid "Unexpected keyword" +msgstr "Unexpected ang keyword" + +#: src/Statements/WithStatement.php:118 +msgid "The name of the CTE was expected." +msgstr "Ang pangalan ng CTE ay expected." + +#: src/Statements/WithStatement.php:137 +msgid "AS keyword was expected." +msgstr "AS keyword ay expected." + +#: src/Statements/WithStatement.php:149 +msgid "Subquery of the CTE was expected." +msgstr "Subquery ng CTE ay expected." + +#: src/Statements/WithStatement.php:266 +msgid "Unexpected end of the WITH CTE." +msgstr "Unexpected end sa WITH CTE." diff --git a/locale/gl/LC_MESSAGES/sqlparser.mo b/locale/gl/LC_MESSAGES/sqlparser.mo index 514bb51a3..124765229 100644 Binary files a/locale/gl/LC_MESSAGES/sqlparser.mo and b/locale/gl/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/gl/LC_MESSAGES/sqlparser.po b/locale/gl/LC_MESSAGES/sqlparser.po index b507e56f5..c73d1d220 100644 --- a/locale/gl/LC_MESSAGES/sqlparser.po +++ b/locale/gl/LC_MESSAGES/sqlparser.po @@ -4,40 +4,40 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2016-01-17 22:02+0000\n" -"Last-Translator: Xosé Calvo \n" -"Language-Team: Galician \n" +"PO-Revision-Date: 2026-02-24 13:09+0000\n" +"Last-Translator: HackingAll \n" +"Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.5-dev\n" +"X-Generator: Weblate 5.16.1-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." -msgstr "" +msgstr "Non implementado polo momento." #: src/Components/AlterOperation.php:415 src/Statement.php:359 msgid "" "A new statement was found, but no delimiter between it and the previous one." msgstr "" +"Atopouse unha nova declaración, pero non hai ningún delimitador entre ela e " +"a anterior." #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "Falta a coma antes do inicio dunha nova operación de modificación." #: src/Components/AlterOperation.php:472 -#, fuzzy -#| msgid "Iconic table operations" msgid "Unrecognized alter operation." -msgstr "Operacións de táboas con iconas" +msgstr "Operación de modificación non recoñecida." #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "" +msgstr "Esperábanse %1$d valores, pero atopáronse %2$d." #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." diff --git a/locale/hu/LC_MESSAGES/sqlparser.mo b/locale/hu/LC_MESSAGES/sqlparser.mo index db3ba8c64..18e94d745 100644 Binary files a/locale/hu/LC_MESSAGES/sqlparser.mo and b/locale/hu/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/hu/LC_MESSAGES/sqlparser.po b/locale/hu/LC_MESSAGES/sqlparser.po index e96a7cd0b..52ffaecc1 100644 --- a/locale/hu/LC_MESSAGES/sqlparser.po +++ b/locale/hu/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2016-12-21 15:58+0000\n" -"Last-Translator: Michal Čihař \n" +"PO-Revision-Date: 2026-03-16 15:09+0000\n" +"Last-Translator: Andras Varro \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.10\n" +"X-Generator: Weblate 5.17-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -27,7 +27,7 @@ msgstr "" #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "Hiányzó vessző egy új módosítási művelet elején." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." diff --git a/locale/ka/LC_MESSAGES/sqlparser.mo b/locale/ka/LC_MESSAGES/sqlparser.mo index 2539c0ac4..4929a4f8a 100644 Binary files a/locale/ka/LC_MESSAGES/sqlparser.mo and b/locale/ka/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/ka/LC_MESSAGES/sqlparser.po b/locale/ka/LC_MESSAGES/sqlparser.po index 358322c86..0233bd64c 100644 --- a/locale/ka/LC_MESSAGES/sqlparser.po +++ b/locale/ka/LC_MESSAGES/sqlparser.po @@ -4,16 +4,16 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2015-10-15 11:03+0200\n" -"Last-Translator: Michal Čihař \n" +"PO-Revision-Date: 2023-04-16 13:48+0000\n" +"Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" +"sql-parser/ka/>\n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.5-dev\n" +"X-Generator: Weblate 4.17-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -60,7 +60,7 @@ msgstr "" #: src/Statements/LockStatement.php:85 src/Statements/ReplaceStatement.php:149 #: src/Statements/ReplaceStatement.php:178 msgid "Unexpected keyword." -msgstr "" +msgstr "მოულოდნელი საკვანძო სიტყვა." #: src/Components/CaseExpression.php:192 msgid "Unexpected end of CASE expression" @@ -80,10 +80,8 @@ msgid "An alias was previously found." msgstr "" #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "Remove selected users" msgid "An alias was expected after AS." -msgstr "Remove selected users" +msgstr "AS-ის შემდეგ მეტსახელს მოველოდი." #: src/Components/CreateDefinition.php:255 msgid "" @@ -92,16 +90,12 @@ msgid "" msgstr "" #: src/Components/CreateDefinition.php:268 -#, fuzzy -#| msgid "Remove selected users" msgid "A symbol name was expected!" -msgstr "Remove selected users" +msgstr "მოველოდი სიმბოლოს სახელს!" #: src/Components/CreateDefinition.php:300 -#, fuzzy -#| msgid "Remove selected users" msgid "A comma or a closing bracket was expected." -msgstr "Remove selected users" +msgstr "მოველოდი მძიმეს ან დამხურავ ფრჩხილს." #: src/Components/CreateDefinition.php:313 src/Statements/WithStatement.php:328 msgid "A closing bracket was expected." @@ -112,20 +106,16 @@ msgid "Unrecognized data type." msgstr "" #: src/Components/ExpressionArray.php:106 src/Statements/WithStatement.php:197 -#, fuzzy -#| msgid "Remove selected users" msgid "An expression was expected." -msgstr "Remove selected users" +msgstr "მოველოდი გამოსახულებას." #: src/Components/Expression.php:257 src/Components/Expression.php:435 -#, fuzzy -#| msgid "Remove selected users" msgid "An alias was expected." -msgstr "Remove selected users" +msgstr "მოველოდი მეტსახელს." #: src/Components/Expression.php:403 msgid "Unexpected dot." -msgstr "" +msgstr "მოულოდნელი წერტილი." #: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 #: src/Components/Key.php:259 src/Components/LockExpression.php:161 @@ -141,17 +131,15 @@ msgstr "" #: src/Statements/PurgeStatement.php:140 #: src/Statements/ReplaceStatement.php:163 src/Statements/WithStatement.php:132 msgid "Unexpected token." -msgstr "" +msgstr "მოულოდნელი კოდი." #: src/Components/Limit.php:78 src/Components/Limit.php:105 msgid "An offset was expected." msgstr "" #: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected end of LOCK expression." -msgstr "ცხრილის დასაწყისში" +msgstr "LOCK გამოსახულების მოულოდნელი დასასრული." #: src/Components/OptionsArray.php:146 #, php-format @@ -171,20 +159,16 @@ msgid "The new name of the table was expected." msgstr "" #: src/Components/RenameOperation.php:140 -#, fuzzy -#| msgid "The row has been deleted." msgid "A rename operation was expected." -msgstr "სტრიქონი წაიშალა" +msgstr "მოველოდი გადარქმევის ოპერატორს." #: src/Components/SetOperation.php:121 -#, fuzzy -#| msgid "as regular expression" msgid "Missing expression." -msgstr "რეგულარული გამოსახულება" +msgstr "ნაკლული გამოსახულება." #: src/Lexer.php:274 msgid "Unexpected character." -msgstr "" +msgstr "მოულოდნელი სიმბოლო." #: src/Lexer.php:313 msgid "Expected whitespace(s) before delimiter." @@ -192,23 +176,20 @@ msgstr "" #: src/Lexer.php:329 src/Lexer.php:348 msgid "Expected delimiter." -msgstr "" +msgstr "მოსალოდნელი გამყოფი." #: src/Lexer.php:1004 -#, fuzzy, php-format -#| msgid "Table %1$s has been created." +#, php-format msgid "Ending quote %1$s was expected." -msgstr "Table %1$s has been created." +msgstr "მოველოდი დამასრულებელ ბრჭყალს %1$s." #: src/Lexer.php:1056 msgid "Variable name was expected." msgstr "" #: src/Parser.php:456 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected beginning of statement." -msgstr "ცხრილის დასაწყისში" +msgstr "გამოსახულების მოულოდნელი დასაწყისი." #: src/Parser.php:499 msgid "Unrecognized statement type." @@ -224,35 +205,27 @@ msgstr "" #: src/Statement.php:398 msgid "Unrecognized keyword." -msgstr "" +msgstr "უცნობი საკვანძო სიტყვა." #: src/Statement.php:409 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Keyword at end of statement." -msgstr "ცხრილის დასაწყისში" +msgstr "საკვანძო სიტყვა გამოსახულების ბოლოში." #: src/Statement.php:555 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected ordering of clauses." -msgstr "ცხრილის დასაწყისში" +msgstr "წინადადებების მოულოდნელი მიმდევრობა." #: src/Statements/CreateStatement.php:549 msgid "The name of the entity was expected." msgstr "" #: src/Statements/CreateStatement.php:598 -#, fuzzy -#| msgid "Remove selected users" msgid "A table name was expected." -msgstr "Remove selected users" +msgstr "მოველოდი ცხრილის სახელს." #: src/Statements/CreateStatement.php:603 -#, fuzzy -#| msgid "The row has been deleted." msgid "At least one column definition was expected." -msgstr "სტრიქონი წაიშალა" +msgstr "მოველოდი სულ ცოტა ერთი სვეტის აღწერას." #: src/Statements/CreateStatement.php:707 msgid "A \"RETURNS\" keyword was expected." @@ -263,38 +236,28 @@ msgid "This type of clause is not valid in Multi-table queries." msgstr "" #: src/Statements/LockStatement.php:120 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected end of LOCK statement." -msgstr "ცხრილის დასაწყისში" +msgstr "LOCK გამოსახულების მოულოდნელი დასასრული." #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" msgstr "" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "Remove selected users" msgid "The name of the CTE was expected." -msgstr "Remove selected users" +msgstr "მოველოდი CTE-ის სახელს." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "Remove selected users" msgid "AS keyword was expected." -msgstr "Remove selected users" +msgstr "მოველოდი AS საკვანძო სიტყვას." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "Table %1$s has been created." msgid "Subquery of the CTE was expected." -msgstr "Table %1$s has been created." +msgstr "მოველოდი CTE-ის ქვემოთხოვნას." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected end of the WITH CTE." -msgstr "ცხრილის დასაწყისში" +msgstr "WITH CTE-ის მოულოდნელი დასასრული." #, fuzzy #~| msgid "At Beginning of Table" diff --git a/locale/km/LC_MESSAGES/sqlparser.mo b/locale/km/LC_MESSAGES/sqlparser.mo index 021e39916..a3ddd7c25 100644 Binary files a/locale/km/LC_MESSAGES/sqlparser.mo and b/locale/km/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/km/LC_MESSAGES/sqlparser.po b/locale/km/LC_MESSAGES/sqlparser.po index 25257a881..3217393c6 100644 --- a/locale/km/LC_MESSAGES/sqlparser.po +++ b/locale/km/LC_MESSAGES/sqlparser.po @@ -8,46 +8,50 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2017-08-12 15:08+0000\n" -"Last-Translator: ប៉ុកណូ រ៉ូយ៉ាល់ \n" -"Language-Team: Central Khmer \n" +"PO-Revision-Date: 2025-05-23 11:01+0000\n" +"Last-Translator: Chou Chamnan \n" +"Language-Team: Khmer (Central) \n" "Language: km\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.16\n" +"X-Generator: Weblate 5.12-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." -msgstr "" +msgstr "មិនទាន់បានអនុវត្តទេ។" #: src/Components/AlterOperation.php:415 src/Statement.php:359 +#, fuzzy msgid "" "A new statement was found, but no delimiter between it and the previous one." msgstr "" +"សេចក្តីថ្លែងការណ៍ថ្មីមួយត្រូវបានរកឃើញ ប៉ុន្តែមិនមានការកំណត់ព្រំដែនរវាងវា " +"និងអត្ថបទមុនទេ។" #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "បាត់សញ្ញាក្បៀស មុនពេលចាប់ផ្តើមប្រតិបត្តិការផ្លាស់ប្តូរថ្មី។" #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." -msgstr "" +msgstr "ប្រតិបត្តិការផ្លាស់ប្តូរមិនស្គាល់។" #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "" +msgstr "%1$d តម្លៃត្រូវបានរំពឹងទុក ប៉ុន្តែបានរកឃើញ %2$d" #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." -msgstr "" +msgstr "តង្កៀបបើកដែលបន្តដោយសំណុំនៃតម្លៃត្រូវបានរំពឹងទុក។" #: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 +#, fuzzy msgid "An opening bracket was expected." -msgstr "" +msgstr "តង្កៀបបើកត្រូវបានរំពឹងទុក។" #: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 #: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 @@ -63,20 +67,21 @@ msgstr "" #: src/Statements/InsertStatement.php:220 src/Statements/LoadStatement.php:265 #: src/Statements/LockStatement.php:85 src/Statements/ReplaceStatement.php:149 #: src/Statements/ReplaceStatement.php:178 +#, fuzzy msgid "Unexpected keyword." -msgstr "" +msgstr "ពាក្យគន្លឹះដែលមិនបានរំពឹងទុក។" #: src/Components/CaseExpression.php:192 msgid "Unexpected end of CASE expression" -msgstr "" +msgstr "ការបញ្ចប់នៃការបញ្ចេញមតិ CASE ដែលមិនបានរំពឹងទុក" #: src/Components/CaseExpression.php:212 msgid "Potential duplicate alias of CASE expression." -msgstr "" +msgstr "ឈ្មោះក្លែងក្លាយស្ទួនសក្តានុពលនៃកន្សោម CASE ។" #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "ឈ្មោះក្លែងក្លាយដែលរំពឹងទុកបន្ទាប់ពី AS ប៉ុន្តែទទួលបាន។ " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 diff --git a/locale/ko/LC_MESSAGES/sqlparser.mo b/locale/ko/LC_MESSAGES/sqlparser.mo index 00c6afb00..6d3971d19 100644 Binary files a/locale/ko/LC_MESSAGES/sqlparser.mo and b/locale/ko/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/ko/LC_MESSAGES/sqlparser.po b/locale/ko/LC_MESSAGES/sqlparser.po index 471a4e501..a811d19a2 100644 --- a/locale/ko/LC_MESSAGES/sqlparser.po +++ b/locale/ko/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2026-03-16 15:09+0000\n" +"Last-Translator: kim8ccf3a4116ec4691 \n" "Language-Team: Korean \n" "Language: ko\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.17-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -26,24 +26,24 @@ msgstr "새로운 문장이 발견되었지만, 이전 문장과의 구분기호 #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "새 alter operation 시작 전에 쉼표가 누락되었습니다." +msgstr "새로운 alter 작업의 시작 앞에 쉼표가 빠졌습니다." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." -msgstr "인식되지 않은 alter 작업입니다." +msgstr "인식할 수 없는 alter 작업입니다." #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "값 %1$d 이 예상되었지만, %2$d 가 발견되었습니다." +msgstr "값 %1$d이 필요하지만, %2$d 가 있습니다." #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." -msgstr "일련의 값들에 의해 여는 괄호('(')가 예상됩니다." +msgstr "왼쪽 괄호 뒤에 여러 값들이 필요합니다." #: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 msgid "An opening bracket was expected." -msgstr "여는 괄호가 예상됩니다." +msgstr "왼쪽 괄호가 필요합니다." #: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 #: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 @@ -60,40 +60,39 @@ msgstr "여는 괄호가 예상됩니다." #: src/Statements/LockStatement.php:85 src/Statements/ReplaceStatement.php:149 #: src/Statements/ReplaceStatement.php:178 msgid "Unexpected keyword." -msgstr "예상되지 않은 키워드입니다." +msgstr "예기치 않은 키워드입니다." #: src/Components/CaseExpression.php:192 msgid "Unexpected end of CASE expression" -msgstr "예기치 못한 CASE 표현식의 끝" +msgstr "예기치 않은 CASE 문의 끝입니다" #: src/Components/CaseExpression.php:212 msgid "Potential duplicate alias of CASE expression." -msgstr "CASE 표현식의 잠재적 중복 별명입니다." +msgstr "CASE 문의 별칭이 중복되었을 수 있습니다." #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "AS뒤에 별명이 필요합니다. : " +msgstr "AS 다음에 별칭이 필요하지만, 다음 내용이 있습니다 " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 msgid "An alias was previously found." -msgstr "이미 사용중인 별명입니다." +msgstr "이미 사용 중인 별칭입니다." #: src/Components/CaseExpression.php:252 msgid "An alias was expected after AS." -msgstr "AS뒤에 별명이 필요합니다." +msgstr "AS뒤에 별칭이 필요합니다." #: src/Components/CreateDefinition.php:255 msgid "" "A symbol name was expected! A reserved keyword can not be used as a column " "name without backquotes." -msgstr "" -"심볼 이름이 필요합니다! 예약어는 역따옴표 없이 열 이름으로 사용될 수 없습니" -"다." +msgstr "식별할 수 있는 이름이 필요합니다! 예약어는 역따옴표 없이 열 이름으로 사용될 " +"수 없습니다." #: src/Components/CreateDefinition.php:268 msgid "A symbol name was expected!" -msgstr "심볼 이름이 필요합니다!" +msgstr "식별할 수 있는 이름이 필요합니다!" #: src/Components/CreateDefinition.php:300 msgid "A comma or a closing bracket was expected." @@ -113,11 +112,11 @@ msgstr "식이 필요합니다." #: src/Components/Expression.php:257 src/Components/Expression.php:435 msgid "An alias was expected." -msgstr "별명이 필요합니다." +msgstr "별칭이 필요합니다." #: src/Components/Expression.php:403 msgid "Unexpected dot." -msgstr "예기치 못한 점(.)입니다." +msgstr "예기치 못한 마침표(.)입니다." #: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 #: src/Components/Key.php:259 src/Components/LockExpression.php:161 @@ -141,24 +140,24 @@ msgstr "오프셋이 필요합니다." #: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 msgid "Unexpected end of LOCK expression." -msgstr "LOCK 표현식이 예기치 않게 끝났습니다." +msgstr "예기치 않은 LOCK 표현식 종료입니다." #: src/Components/OptionsArray.php:146 #, php-format msgid "This option conflicts with \"%1$s\"." -msgstr "이 옵션은 \"%1$s\"와(과) 충돌합니다." +msgstr "이 옵션은 \"%1$s\" 옵션과 충돌합니다." #: src/Components/RenameOperation.php:103 msgid "The old name of the table was expected." -msgstr "테이블의 이전 이름이 팔요합니다." +msgstr "테이블의 이전 이름이 필요합니다." #: src/Components/RenameOperation.php:109 msgid "Keyword \"TO\" was expected." -msgstr "키워드 \"TO\"가 팔요합니다." +msgstr "\"TO\" 키워드가 필요합니다." #: src/Components/RenameOperation.php:124 msgid "The new name of the table was expected." -msgstr "테이블의 새로운 이름이 팔요합니다." +msgstr "테이블의 새로운 이름이 필요합니다." #: src/Components/RenameOperation.php:140 msgid "A rename operation was expected." @@ -166,11 +165,11 @@ msgstr "이름 바꾸기 작업이 필요합니다." #: src/Components/SetOperation.php:121 msgid "Missing expression." -msgstr "누락된 표현입니다." +msgstr "구문이 없습니다." #: src/Lexer.php:274 msgid "Unexpected character." -msgstr "예상치 못한 문자입니다." +msgstr "예기치 않은 문자입니다." #: src/Lexer.php:313 msgid "Expected whitespace(s) before delimiter." @@ -183,7 +182,7 @@ msgstr "구분기호가 필요합니다." #: src/Lexer.php:1004 #, php-format msgid "Ending quote %1$s was expected." -msgstr "닫는 따옴표 %1$s 가 팔요합니다." +msgstr "닫는 따옴표 %1$s 가 필요합니다." #: src/Lexer.php:1056 msgid "Variable name was expected." @@ -191,7 +190,7 @@ msgstr "변수명이 필요합니다." #: src/Parser.php:456 msgid "Unexpected beginning of statement." -msgstr "명령문이 예기치 않게 시작되었습니다." +msgstr "예기치 않은 구문 시작합니다." #: src/Parser.php:499 msgid "Unrecognized statement type." @@ -199,11 +198,11 @@ msgstr "인식할 수 없는 명령문 유형입니다." #: src/Parser.php:587 msgid "No transaction was previously started." -msgstr "이전에 시작된 처리가 없습니다." +msgstr "이전에 시작한 트랜잭션이 없습니다." #: src/Statement.php:327 msgid "This type of clause was previously parsed." -msgstr "이 유형의 절은 이전에 구문 분석되었습니다." +msgstr "이 유형의 절은 이미 파싱되었습니다." #: src/Statement.php:398 msgid "Unrecognized keyword." @@ -211,11 +210,11 @@ msgstr "인식할 수 없는 키워드입니다." #: src/Statement.php:409 msgid "Keyword at end of statement." -msgstr "명령문 끝에 있는 키워드." +msgstr "구문의 끝에 있는 키워드입니다." #: src/Statement.php:555 msgid "Unexpected ordering of clauses." -msgstr "예기치 못한 문장(절) 순서입니다." +msgstr "예기치 않은 절의 순서입니다." #: src/Statements/CreateStatement.php:549 msgid "The name of the entity was expected." @@ -227,7 +226,7 @@ msgstr "테이블 이름이 필요합니다." #: src/Statements/CreateStatement.php:603 msgid "At least one column definition was expected." -msgstr "최소 하나의 열 정의가 필요합니다." +msgstr "최소한 하나의 열은 정의해야합니다." #: src/Statements/CreateStatement.php:707 msgid "A \"RETURNS\" keyword was expected." @@ -235,19 +234,19 @@ msgstr "\"RETURNS\"키워드가 필요합니다." #: src/Statements/DeleteStatement.php:329 msgid "This type of clause is not valid in Multi-table queries." -msgstr "이 유형의 문장(절)은 다중테이블 요청에서 유효하지 않습니다." +msgstr "다중테이블 요청에서 이 유형의 절은 유효하지 않습니다." #: src/Statements/LockStatement.php:120 msgid "Unexpected end of LOCK statement." -msgstr "LOCK 표현식이 예기치 않게 끝났습니다." +msgstr "예기치 않은 LOCK 구문의 끝입니다." #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" -msgstr "예상치 못한 키워드" +msgstr "예기치 않은 키워드" #: src/Statements/WithStatement.php:118 msgid "The name of the CTE was expected." -msgstr "CTE 이름이 필요합니다." +msgstr "CTE의 이름이 필요합니다." #: src/Statements/WithStatement.php:137 msgid "AS keyword was expected." @@ -259,7 +258,7 @@ msgstr "CTE의 서브쿼리가 필요합니다." #: src/Statements/WithStatement.php:266 msgid "Unexpected end of the WITH CTE." -msgstr "WITH CTE 표현식이 예기치 않게 끝났습니다." +msgstr "예기치 않은 WITH CTE의 끝입니다." #~ msgid "Unexpected end of Lock expression." #~ msgstr "LOCK 표현식이 예기치 않게 끝났습니다." diff --git a/locale/lv/LC_MESSAGES/sqlparser.mo b/locale/lv/LC_MESSAGES/sqlparser.mo index 4648f6998..8fd45688e 100644 Binary files a/locale/lv/LC_MESSAGES/sqlparser.mo and b/locale/lv/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/lv/LC_MESSAGES/sqlparser.po b/locale/lv/LC_MESSAGES/sqlparser.po index 2ad847715..0514ff735 100644 --- a/locale/lv/LC_MESSAGES/sqlparser.po +++ b/locale/lv/LC_MESSAGES/sqlparser.po @@ -4,46 +4,50 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2016-01-23 11:11+0000\n" -"Last-Translator: Arturs Nikolajevs \n" -"Language-Team: Latvian \n" +"PO-Revision-Date: 2026-04-05 12:09+0000\n" +"Last-Translator: \"ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)\" \n" +"Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" -"X-Generator: Weblate 2.5-dev\n" +"X-Generator: Weblate 5.17-dev\n" #: src/Component.php:39 src/Component.php:59 +#, fuzzy msgid "Not implemented yet." -msgstr "" +msgstr "Vēl nav īstenots (uzkodēts)." #: src/Components/AlterOperation.php:415 src/Statement.php:359 +#, fuzzy msgid "" "A new statement was found, but no delimiter between it and the previous one." msgstr "" +"Tika atrasta jauna instrukcija (nosacījums), bet nebija atdalītāja starp " +"viņu un iepriekšējo." #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "Trūkst komata pirms jaunas izmaiņas (ALTER) darbības sākuma." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." -msgstr "" +msgstr "Neatpazīta izmaiņu (ALTER) darbība." #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "" +msgstr "Sagaidīja %1$d vērtības, bet atrada %2$d." #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." -msgstr "" +msgstr "Sagaidīja atverošo iekavu, pēc kuras seko vērtību kopums." #: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 msgid "An opening bracket was expected." -msgstr "" +msgstr "Sagaidīja atverošo iekavu." #: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 #: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 @@ -60,19 +64,20 @@ msgstr "" #: src/Statements/LockStatement.php:85 src/Statements/ReplaceStatement.php:149 #: src/Statements/ReplaceStatement.php:178 msgid "Unexpected keyword." -msgstr "" +msgstr "Negaidīts atslēgvārds." #: src/Components/CaseExpression.php:192 msgid "Unexpected end of CASE expression" -msgstr "" +msgstr "Negaidīta CASE nosacījuma izteiksmes beigas" #: src/Components/CaseExpression.php:212 +#, fuzzy msgid "Potential duplicate alias of CASE expression." -msgstr "" +msgstr "Iespējams CASE izteiksmes dublikāta aizstājvārds." #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "Sagaidīja aizstājvārdu pēc AS, bet saņemts " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 @@ -80,10 +85,8 @@ msgid "An alias was previously found." msgstr "" #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "No databases selected." msgid "An alias was expected after AS." -msgstr "Datubāze nav izvēlēta." +msgstr "Sagaidīja aizstājvārdu pēc AS." #: src/Components/CreateDefinition.php:255 msgid "" @@ -92,39 +95,32 @@ msgid "" msgstr "" #: src/Components/CreateDefinition.php:268 -#, fuzzy msgid "A symbol name was expected!" -msgstr "Faila nosaukuma šablons" +msgstr "Sagaidīja simbola nosaukumu!" #: src/Components/CreateDefinition.php:300 -#, fuzzy -#| msgid "No databases selected." msgid "A comma or a closing bracket was expected." -msgstr "Datubāze nav izvēlēta." +msgstr "Sagaidīja komatu vai aizverošo iekavu." #: src/Components/CreateDefinition.php:313 src/Statements/WithStatement.php:328 msgid "A closing bracket was expected." -msgstr "" +msgstr "Sagaidīja aizverošo iekavu." #: src/Components/DataType.php:130 msgid "Unrecognized data type." -msgstr "" +msgstr "Neatpazīts datu tips." #: src/Components/ExpressionArray.php:106 src/Statements/WithStatement.php:197 -#, fuzzy -#| msgid "No rows selected" msgid "An expression was expected." -msgstr "Rindas nav iezīmētas" +msgstr "Sagaidīja izteiksmi." #: src/Components/Expression.php:257 src/Components/Expression.php:435 -#, fuzzy -#| msgid "No databases selected." msgid "An alias was expected." -msgstr "Datubāze nav izvēlēta." +msgstr "Sagaidīja aizstājvārdu." #: src/Components/Expression.php:403 msgid "Unexpected dot." -msgstr "" +msgstr "Negaidīts punkts." #: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 #: src/Components/Key.php:259 src/Components/LockExpression.php:161 @@ -140,74 +136,66 @@ msgstr "" #: src/Statements/PurgeStatement.php:140 #: src/Statements/ReplaceStatement.php:163 src/Statements/WithStatement.php:132 msgid "Unexpected token." -msgstr "" +msgstr "Negaidīta pilnvara." #: src/Components/Limit.php:78 src/Components/Limit.php:105 msgid "An offset was expected." -msgstr "" +msgstr "Sagaidīja rindu skaita nobīdi." #: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected end of LOCK expression." -msgstr "Tabulas sākumā" +msgstr "Negaidīta LOCK izteiksmes beigas." #: src/Components/OptionsArray.php:146 #, php-format msgid "This option conflicts with \"%1$s\"." -msgstr "" +msgstr "Šis parametrs konfliktē ar \"%1$s\"." #: src/Components/RenameOperation.php:103 msgid "The old name of the table was expected." -msgstr "" +msgstr "Sagaidīja sākotnējās (vecās) tabulas nosaukumu." #: src/Components/RenameOperation.php:109 msgid "Keyword \"TO\" was expected." -msgstr "" +msgstr "Sagaidīja \"TO\" atslēgvārdu." #: src/Components/RenameOperation.php:124 msgid "The new name of the table was expected." -msgstr "" +msgstr "Sagaidīja jaunās tabulas nosaukumu." #: src/Components/RenameOperation.php:140 -#, fuzzy -#| msgid "The row has been deleted." msgid "A rename operation was expected." -msgstr "Ieraksts tika dzēsts" +msgstr "Sagaidīja pārdēvēšanas darbību." #: src/Components/SetOperation.php:121 -#, fuzzy -#| msgid "as regular expression" msgid "Missing expression." -msgstr "kā regulārā izteiksme" +msgstr "Trūkst izteiksmes." #: src/Lexer.php:274 msgid "Unexpected character." -msgstr "" +msgstr "Negaidīta rakstzīme." #: src/Lexer.php:313 msgid "Expected whitespace(s) before delimiter." -msgstr "" +msgstr "Sagaidīja atstarpi pirms atdalītāja." #: src/Lexer.php:329 src/Lexer.php:348 msgid "Expected delimiter." -msgstr "" +msgstr "Sagaidīja atdalītāju." #: src/Lexer.php:1004 -#, fuzzy, php-format +#, php-format msgid "Ending quote %1$s was expected." -msgstr "Tabula %s tika izdzēsta" +msgstr "Sagaidīja %1$s aizverošās pēdiņas." #: src/Lexer.php:1056 -#, fuzzy msgid "Variable name was expected." -msgstr "Faila nosaukuma šablons" +msgstr "Sagaidīja mainīgā nosaukumu." #: src/Parser.php:456 #, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected beginning of statement." -msgstr "Tabulas sākumā" +msgstr "Negaidīts izteiksmes sākums." #: src/Parser.php:499 msgid "Unrecognized statement type." @@ -226,35 +214,29 @@ msgid "Unrecognized keyword." msgstr "" #: src/Statement.php:409 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Keyword at end of statement." -msgstr "Tabulas sākumā" +msgstr "Atslēgvārds izteiksmes beigās." #: src/Statement.php:555 #, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected ordering of clauses." -msgstr "Tabulas sākumā" +msgstr "Negaidīta klauzulu secība." #: src/Statements/CreateStatement.php:549 msgid "The name of the entity was expected." -msgstr "" +msgstr "Sagaidīja vienuma nosaukumu." #: src/Statements/CreateStatement.php:598 -#, fuzzy msgid "A table name was expected." -msgstr "Faila nosaukuma šablons" +msgstr "Sagaidīja tabulas nosaukumu." #: src/Statements/CreateStatement.php:603 -#, fuzzy -#| msgid "The row has been deleted." msgid "At least one column definition was expected." -msgstr "Ieraksts tika dzēsts" +msgstr "Sagaidīja vismaz vienas kolonnas definīciju." #: src/Statements/CreateStatement.php:707 msgid "A \"RETURNS\" keyword was expected." -msgstr "" +msgstr "Sagaidīja \"RETURNS\" atslēgvārdu." #: src/Statements/DeleteStatement.php:329 msgid "This type of clause is not valid in Multi-table queries." @@ -262,35 +244,30 @@ msgstr "" #: src/Statements/LockStatement.php:120 #, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected end of LOCK statement." -msgstr "Tabulas sākumā" +msgstr "Negaidīta LOCK instrukcijas beigas." #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" -msgstr "" +msgstr "Negaidīts atslēgvārds" #: src/Statements/WithStatement.php:118 #, fuzzy msgid "The name of the CTE was expected." -msgstr "Faila nosaukuma šablons" +msgstr "Sagaidīja KTI nosaukumu." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "No rows selected" msgid "AS keyword was expected." -msgstr "Rindas nav iezīmētas" +msgstr "Sagaidīja AS atslēgvārdu." #: src/Statements/WithStatement.php:149 #, fuzzy msgid "Subquery of the CTE was expected." -msgstr "Tabula %s tika izdzēsta" +msgstr "Sagaidīja KTI apakšvaicājumu." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected end of the WITH CTE." -msgstr "Tabulas sākumā" +msgstr "Negaidīta WITH CTE beigas." #, fuzzy #~| msgid "At Beginning of Table" diff --git a/locale/mk/LC_MESSAGES/sqlparser.mo b/locale/mk/LC_MESSAGES/sqlparser.mo index 92fb02163..45efb210b 100644 Binary files a/locale/mk/LC_MESSAGES/sqlparser.mo and b/locale/mk/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/mk/LC_MESSAGES/sqlparser.po b/locale/mk/LC_MESSAGES/sqlparser.po index 7b0079255..0b7bfe082 100644 --- a/locale/mk/LC_MESSAGES/sqlparser.po +++ b/locale/mk/LC_MESSAGES/sqlparser.po @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-02-17 01:42+0000\n" +"PO-Revision-Date: 2023-12-26 22:01+0000\n" "Last-Translator: \"Kristijan \\\"Fremen\\\" Velkovski\" \n" "Language-Team: Macedonian \n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n==1 || n%10==1 ? 0 : 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.4-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -88,6 +88,8 @@ msgid "" "A symbol name was expected! A reserved keyword can not be used as a column " "name without backquotes." msgstr "" +"Се очекуваше име на симбол! Резервиран клучен збор не може да се користи " +"како име на колона без задни наводници." #: src/Components/CreateDefinition.php:268 msgid "A symbol name was expected!" @@ -99,11 +101,11 @@ msgstr "Запирка или затворачка заграда беше оч #: src/Components/CreateDefinition.php:313 src/Statements/WithStatement.php:328 msgid "A closing bracket was expected." -msgstr "" +msgstr "Се очекуваше заграда за затворање." #: src/Components/DataType.php:130 msgid "Unrecognized data type." -msgstr "" +msgstr "Непрепознаен тип на податоци." #: src/Components/ExpressionArray.php:106 src/Statements/WithStatement.php:197 msgid "An expression was expected." @@ -115,7 +117,7 @@ msgstr "Алијас беше очекуван." #: src/Components/Expression.php:403 msgid "Unexpected dot." -msgstr "" +msgstr "Неочекувана точка." #: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 #: src/Components/Key.php:259 src/Components/LockExpression.php:161 @@ -131,11 +133,11 @@ msgstr "" #: src/Statements/PurgeStatement.php:140 #: src/Statements/ReplaceStatement.php:163 src/Statements/WithStatement.php:132 msgid "Unexpected token." -msgstr "" +msgstr "Неочекуван токен." #: src/Components/Limit.php:78 src/Components/Limit.php:105 msgid "An offset was expected." -msgstr "" +msgstr "Се очекуваше офсет." #: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 msgid "Unexpected end of LOCK expression." @@ -144,43 +146,39 @@ msgstr "Неочекуван крај на LOCK изразот." #: src/Components/OptionsArray.php:146 #, php-format msgid "This option conflicts with \"%1$s\"." -msgstr "" +msgstr "Оваа опција е во конфликт со \"%1$s\"." #: src/Components/RenameOperation.php:103 msgid "The old name of the table was expected." -msgstr "" +msgstr "Се очекуваше старото име на табелата." #: src/Components/RenameOperation.php:109 msgid "Keyword \"TO\" was expected." -msgstr "" +msgstr "Се очекуваше клучниот збор \"TO\"." #: src/Components/RenameOperation.php:124 msgid "The new name of the table was expected." -msgstr "" +msgstr "Новото име на табелата беше очекувано." #: src/Components/RenameOperation.php:140 -#, fuzzy -#| msgid "The row has been deleted." msgid "A rename operation was expected." -msgstr "Записот е избришан" +msgstr "Операција за преименување беше очекувана." #: src/Components/SetOperation.php:121 -#, fuzzy -#| msgid "as regular expression" msgid "Missing expression." -msgstr "како регуларен израз" +msgstr "Недостига израз." #: src/Lexer.php:274 msgid "Unexpected character." -msgstr "" +msgstr "Неочекуван карактер." #: src/Lexer.php:313 msgid "Expected whitespace(s) before delimiter." -msgstr "" +msgstr "Беа очекувани празни места пред разграничувач." #: src/Lexer.php:329 src/Lexer.php:348 msgid "Expected delimiter." -msgstr "" +msgstr "Беше очекуван разграничувач." #: src/Lexer.php:1004 #, php-format @@ -188,66 +186,56 @@ msgid "Ending quote %1$s was expected." msgstr "Затварање на цитатот %1$s беше очекуван." #: src/Lexer.php:1056 -#, fuzzy msgid "Variable name was expected." -msgstr "Шаблон на име на податотека" +msgstr "Беше очекувано име на варијабила." #: src/Parser.php:456 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected beginning of statement." -msgstr "на почетокот од табелата" +msgstr "Неочекуван почеток на изјавата." #: src/Parser.php:499 msgid "Unrecognized statement type." -msgstr "" +msgstr "Непознат тип на израз." #: src/Parser.php:587 msgid "No transaction was previously started." -msgstr "" +msgstr "Нема трансакција која била почната порано." #: src/Statement.php:327 msgid "This type of clause was previously parsed." -msgstr "" +msgstr "Овој тип на клаузула беше претходно парсирана." #: src/Statement.php:398 msgid "Unrecognized keyword." -msgstr "" +msgstr "Непрепознаен клучен збор." #: src/Statement.php:409 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Keyword at end of statement." -msgstr "на почетокот од табелата" +msgstr "Клучен збор на крај на изјава." #: src/Statement.php:555 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected ordering of clauses." -msgstr "на почетокот од табелата" +msgstr "Неочекувана подредба на клаузи." #: src/Statements/CreateStatement.php:549 msgid "The name of the entity was expected." -msgstr "" +msgstr "Беше очекувано името на субјектот." #: src/Statements/CreateStatement.php:598 -#, fuzzy msgid "A table name was expected." -msgstr "Шаблон на име на податотека" +msgstr "Беше очекувано име на табела." #: src/Statements/CreateStatement.php:603 -#, fuzzy -#| msgid "The row has been deleted." msgid "At least one column definition was expected." -msgstr "Записот е избришан" +msgstr "Беше очекувана барем една дефиниција за колона." #: src/Statements/CreateStatement.php:707 msgid "A \"RETURNS\" keyword was expected." -msgstr "" +msgstr "Беше очекуван клучниот збор \"RETURNS\"." #: src/Statements/DeleteStatement.php:329 msgid "This type of clause is not valid in Multi-table queries." -msgstr "" +msgstr "Овој тип на клауза не е валидна во мулти-табелно барање." #: src/Statements/LockStatement.php:120 msgid "Unexpected end of LOCK statement." @@ -255,29 +243,23 @@ msgstr "Неочекуван крај на LOCK изразот." #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" -msgstr "" +msgstr "Неочекуван клучен збор" #: src/Statements/WithStatement.php:118 -#, fuzzy msgid "The name of the CTE was expected." -msgstr "Шаблон на име на податотека" +msgstr "Бече очекувано име на CTE." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "No rows selected" msgid "AS keyword was expected." -msgstr "Нема селектирани записи" +msgstr "Беше очекуван клучниот збор AS." #: src/Statements/WithStatement.php:149 -#, fuzzy msgid "Subquery of the CTE was expected." -msgstr "Табелата %s е избришана" +msgstr "Беше очекувано подбарањето на CTE." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "At Beginning of Table" msgid "Unexpected end of the WITH CTE." -msgstr "на почетокот од табелата" +msgstr "Неочекуван крај на WITH CTE." #~ msgid "Unexpected end of Lock expression." #~ msgstr "Неочекуван крај на Lock изразот." diff --git a/locale/ne/LC_MESSAGES/sqlparser.mo b/locale/ne/LC_MESSAGES/sqlparser.mo index b9eadb09d..d7d5493a0 100644 Binary files a/locale/ne/LC_MESSAGES/sqlparser.mo and b/locale/ne/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/ne/LC_MESSAGES/sqlparser.po b/locale/ne/LC_MESSAGES/sqlparser.po index 7aac850b1..095f3eac7 100644 --- a/locale/ne/LC_MESSAGES/sqlparser.po +++ b/locale/ne/LC_MESSAGES/sqlparser.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2015-10-15 11:03+0200\n" -"Last-Translator: Michal Čihař \n" -"Language-Team: Nepali \n" +"PO-Revision-Date: 2025-06-22 06:47+0000\n" +"Last-Translator: Rupak Sapkota \n" +"Language-Team: Nepali \n" "Language: ne\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.5-dev\n" +"X-Generator: Weblate 5.13-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." -msgstr "" +msgstr "अहिलेसम्म तयार छैन |" #: src/Components/AlterOperation.php:415 src/Statement.php:359 msgid "" diff --git a/locale/pl/LC_MESSAGES/sqlparser.mo b/locale/pl/LC_MESSAGES/sqlparser.mo index b8c0333fb..2083ccf7a 100644 Binary files a/locale/pl/LC_MESSAGES/sqlparser.mo and b/locale/pl/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/pl/LC_MESSAGES/sqlparser.po b/locale/pl/LC_MESSAGES/sqlparser.po index 9e05cdcf6..8e1fdcc5e 100644 --- a/locale/pl/LC_MESSAGES/sqlparser.po +++ b/locale/pl/LC_MESSAGES/sqlparser.po @@ -4,17 +4,17 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" -"Language-Team: Polish \n" +"PO-Revision-Date: 2023-07-10 10:49+0000\n" +"Last-Translator: Szymon Burnejko \n" +"Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.0-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -247,28 +247,20 @@ msgid "Unexpected keyword" msgstr "Nieznane słowo kluczowe" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "Oczekiwano nazwy obiektu." +msgstr "Oczekiwano nazwy CTE." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "Oczekiwano słowa kluczowego \"RETURNS\"." +msgstr "Oczekiwano słowa kluczowego \"AS\"." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "Oczekiwano nazwy obiektu." +msgstr "Oczekiwano podzapytania CTE." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected end of LOCK statement." msgid "Unexpected end of the WITH CTE." -msgstr "Nieoczekiwane zakończenie instrukcji LOCK." +msgstr "Nieoczekiwany koniec WITH CTE." #~ msgid "Unexpected end of Lock expression." #~ msgstr "Nieoczekiwany koniec wyrażenia LOCK." diff --git a/locale/pt/LC_MESSAGES/sqlparser.mo b/locale/pt/LC_MESSAGES/sqlparser.mo index 8db95b643..b0acddbd1 100644 Binary files a/locale/pt/LC_MESSAGES/sqlparser.mo and b/locale/pt/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/pt/LC_MESSAGES/sqlparser.po b/locale/pt/LC_MESSAGES/sqlparser.po index 0682ced09..914a7f397 100644 --- a/locale/pt/LC_MESSAGES/sqlparser.po +++ b/locale/pt/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2023-12-30 21:39+0000\n" +"Last-Translator: Marco Aurélio Cardoso \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.4-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -249,28 +249,20 @@ msgid "Unexpected keyword" msgstr "Palavra-chave inesperada" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "O nome da entidade era esperado." +msgstr "O nome da CTE era esperado." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "Uma palavra-chave \"RETURNS\" era esperada." +msgstr "A palavra-chave \"AS\" era esperada." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "O nome da entidade era esperado." +msgstr "Subquery da Expressão de Tabela Comum (CTE) era esperada." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected end of LOCK statement." msgid "Unexpected end of the WITH CTE." -msgstr "Fim inesperado da declaração LOCK." +msgstr "Fim inesperado da Expressão de Tabela Comum (CTE) do WITH." #~ msgid "Unexpected end of Lock expression." #~ msgstr "Fim inesperado da expressão LOCK." diff --git a/locale/pt_BR/LC_MESSAGES/sqlparser.mo b/locale/pt_BR/LC_MESSAGES/sqlparser.mo index 597b718e8..83a9497fa 100644 Binary files a/locale/pt_BR/LC_MESSAGES/sqlparser.mo and b/locale/pt_BR/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/pt_BR/LC_MESSAGES/sqlparser.po b/locale/pt_BR/LC_MESSAGES/sqlparser.po index 300755d49..534ba43b6 100644 --- a/locale/pt_BR/LC_MESSAGES/sqlparser.po +++ b/locale/pt_BR/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2023-12-30 21:39+0000\n" +"Last-Translator: Marco Aurélio Cardoso \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.4-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -249,28 +249,20 @@ msgid "Unexpected keyword" msgstr "Palavra-chave inesperada" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "Era esperado o nome da entidade." +msgstr "O nome da Expressão de Tabela Comum (CTE) era esperado." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "Era esperado um comando \"RETURNS\"." +msgstr "A palavra-chave \"AS\" era esperada." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "Era esperado o nome da entidade." +msgstr "Subquery da Expressão de Tabela Comum (CTE) era esperada." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected end of LOCK statement." msgid "Unexpected end of the WITH CTE." -msgstr "Fim inesperado da declaração LOCK." +msgstr "Fim inesperado da Expressão de Tabela Comum (CTE) do WITH." #~ msgid "Unexpected end of Lock expression." #~ msgstr "Final inesperado da expressão LOCK." diff --git a/locale/sk/LC_MESSAGES/sqlparser.mo b/locale/sk/LC_MESSAGES/sqlparser.mo index 6fa89c145..25a640157 100644 Binary files a/locale/sk/LC_MESSAGES/sqlparser.mo and b/locale/sk/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/sk/LC_MESSAGES/sqlparser.po b/locale/sk/LC_MESSAGES/sqlparser.po index 44856d651..4eb83ee16 100644 --- a/locale/sk/LC_MESSAGES/sqlparser.po +++ b/locale/sk/LC_MESSAGES/sqlparser.po @@ -4,16 +4,16 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" -"Language-Team: Slovak \n" +"PO-Revision-Date: 2025-09-28 23:01+0000\n" +"Last-Translator: Miroslav Janega \n" +"Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.14-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -69,10 +69,8 @@ msgid "Unexpected end of CASE expression" msgstr "Neočakávaný koniec CASE výrazu" #: src/Components/CaseExpression.php:212 -#, fuzzy -#| msgid "Unexpected end of CASE expression" msgid "Potential duplicate alias of CASE expression." -msgstr "Neočakávaný koniec CASE výrazu" +msgstr "Potenciálny duplicitný alias výrazu CASE." #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " diff --git a/locale/ta/LC_MESSAGES/sqlparser.mo b/locale/ta/LC_MESSAGES/sqlparser.mo index df0fe9a6a..0f8749cc5 100644 Binary files a/locale/ta/LC_MESSAGES/sqlparser.mo and b/locale/ta/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/ta/LC_MESSAGES/sqlparser.po b/locale/ta/LC_MESSAGES/sqlparser.po index 8f1c886c8..9b7a286de 100644 --- a/locale/ta/LC_MESSAGES/sqlparser.po +++ b/locale/ta/LC_MESSAGES/sqlparser.po @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2017-07-21 09:33+0000\n" -"Last-Translator: Murshid Ahmed \n" -"Language-Team: Tamil \n" +"PO-Revision-Date: 2025-01-28 00:01+0000\n" +"Last-Translator: தமிழ்நேரம் \n" +"Language-Team: Tamil \n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.16-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -26,27 +26,30 @@ msgstr "இன்னும் அமுலாக்கப்படவில் msgid "" "A new statement was found, but no delimiter between it and the previous one." msgstr "" +"ஒரு புதிய அறிக்கை கண்டுபிடிக்கப்பட்டது, ஆனால் அதற்கும் முந்தைய இடத்திற்கும் இடையில் எந்த " +"டிலிமிட்டரும் இல்லை." #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "மாற்றம் செய்விக்கும் முன்னருக்கான காற்புள்ளி காணப்படவில்லை." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." -msgstr "" +msgstr "அங்கீகரிக்கப்படாத மாற்று செயல்பாடு." #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "" +msgstr "%1$d மதிப்புகள் எதிர்பார்க்கப்பட்டன, ஆனால் %2$d ஐக் கண்டறிந்தது." #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." msgstr "" +"ஒரு தொடக்க அடைப்புக்குறி மதிப்புகளின் தொகுப்பைத் தொடர்ந்து எதிர்பார்க்கப்பட்டது." #: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 msgid "An opening bracket was expected." -msgstr "" +msgstr "ஒரு திறப்பு அடைப்புக்குறி எதிர்பார்க்கப்பட்டது." #: src/Components/CaseExpression.php:133 src/Components/CaseExpression.php:161 #: src/Components/CaseExpression.php:172 src/Components/CaseExpression.php:184 @@ -67,68 +70,60 @@ msgstr "எதிர்பாராத சிறப்புச்சொல்." #: src/Components/CaseExpression.php:192 msgid "Unexpected end of CASE expression" -msgstr "" +msgstr "வழக்கு வெளிப்பாட்டின் எதிர்பாராத முடிவு" #: src/Components/CaseExpression.php:212 msgid "Potential duplicate alias of CASE expression." -msgstr "" +msgstr "வழக்கு வெளிப்பாட்டின் சாத்தியமான நகல் மாற்றுப்பெயர்." #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "ஒரு மாற்றுப்பெயர் எதிர்பார்க்கப்பட்டது ஆனால் கிடைத்தது " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 msgid "An alias was previously found." -msgstr "" +msgstr "ஒரு மாற்றுப்பெயர் முன்பு கண்டுபிடிக்கப்பட்டது." #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "No tables selected." msgid "An alias was expected after AS." -msgstr "எந்த தரவுத்தளமும் தேர்ந்தெடுக்கப்படவில்லை." +msgstr "அச் க்குப் பிறகு ஒரு மாற்றுப்பெயர் எதிர்பார்க்கப்பட்டது." #: src/Components/CreateDefinition.php:255 msgid "" "A symbol name was expected! A reserved keyword can not be used as a column " "name without backquotes." msgstr "" +"ஒரு குறியீட்டு பெயர் எதிர்பார்க்கப்பட்டது! முன்பதிவு செய்யப்பட்ட முக்கிய சொல்லை பின்னணி " +"இல்லாமல் நெடுவரிசை பெயராகப் பயன்படுத்த முடியாது." #: src/Components/CreateDefinition.php:268 -#, fuzzy -#| msgid "No tables selected." msgid "A symbol name was expected!" -msgstr "எந்த தரவுத்தளமும் தேர்ந்தெடுக்கப்படவில்லை." +msgstr "அடையாளம் ஒன்று எதிர்பார்க்கப்பட்டது!" #: src/Components/CreateDefinition.php:300 -#, fuzzy -#| msgid "No tables selected." msgid "A comma or a closing bracket was expected." -msgstr "எந்த தரவுத்தளமும் தேர்ந்தெடுக்கப்படவில்லை." +msgstr "ஒரு காற்புள்ளி அல்லது மூடும் அடைப்புக்குறி எதிர்பார்க்கப்பட்டது." #: src/Components/CreateDefinition.php:313 src/Statements/WithStatement.php:328 msgid "A closing bracket was expected." -msgstr "" +msgstr "ஒரு மூடும் அடைப்புக்குறி எதிர்பார்க்கப்பட்டது." #: src/Components/DataType.php:130 msgid "Unrecognized data type." -msgstr "" +msgstr "அங்கீகரிக்கப்படாத தரவு வகை." #: src/Components/ExpressionArray.php:106 src/Statements/WithStatement.php:197 -#, fuzzy -#| msgid "No rows selected" msgid "An expression was expected." -msgstr "தெரிவுசெய்யப்பட வரிசைகள் இல்லை" +msgstr "ஒரு வெளிப்பாடு எதிர்பார்க்கப்பட்டது." #: src/Components/Expression.php:257 src/Components/Expression.php:435 -#, fuzzy -#| msgid "No tables selected." msgid "An alias was expected." -msgstr "எந்த தரவுத்தளமும் தேர்ந்தெடுக்கப்படவில்லை." +msgstr "ஒரு மாற்றுப்பெயர் எதிர்பார்க்கப்பட்டது." #: src/Components/Expression.php:403 msgid "Unexpected dot." -msgstr "" +msgstr "எதிர்பாராத புள்ளி." #: src/Components/IndexHint.php:140 src/Components/IndexHint.php:170 #: src/Components/Key.php:259 src/Components/LockExpression.php:161 @@ -143,166 +138,134 @@ msgstr "" #: src/Statements/PurgeStatement.php:106 src/Statements/PurgeStatement.php:119 #: src/Statements/PurgeStatement.php:140 #: src/Statements/ReplaceStatement.php:163 src/Statements/WithStatement.php:132 -#, fuzzy -#| msgid "Unexpected characters on line %s." msgid "Unexpected token." -msgstr "%sம் வரியில் எதிர்பாராத எழுத்துக்கள் உள்ளன." +msgstr "எதிர்பாராத கிள்ளாக்கு." #: src/Components/Limit.php:78 src/Components/Limit.php:105 msgid "An offset was expected." -msgstr "" +msgstr "ஒரு ஆஃப்செட் எதிர்பார்க்கப்பட்டது." #: src/Components/LockExpression.php:91 src/Components/LockExpression.php:201 -#, fuzzy -#| msgid "Rate of table open" msgid "Unexpected end of LOCK expression." -msgstr "திறந்தநிலை அட்டவணைகளின் விழுக்காடு" +msgstr "பூட்டு வெளிப்பாட்டின் எதிர்பாராத முடிவு." #: src/Components/OptionsArray.php:146 #, php-format msgid "This option conflicts with \"%1$s\"." -msgstr "" +msgstr "இந்த விருப்பம் \"%1$s\" உடன் முரண்படுகிறது." #: src/Components/RenameOperation.php:103 msgid "The old name of the table was expected." -msgstr "" +msgstr "அட்டவணையின் பழைய பெயர் எதிர்பார்க்கப்பட்டது." #: src/Components/RenameOperation.php:109 msgid "Keyword \"TO\" was expected." -msgstr "" +msgstr "\"To\" என்ற முக்கிய சொல் எதிர்பார்க்கப்பட்டது." #: src/Components/RenameOperation.php:124 msgid "The new name of the table was expected." -msgstr "" +msgstr "அட்டவணையின் புதிய பெயர் எதிர்பார்க்கப்பட்டது." #: src/Components/RenameOperation.php:140 -#, fuzzy -#| msgid "The row has been deleted." msgid "A rename operation was expected." -msgstr "இந்நிரைவரிசை அழிக்கப்பட்டது." +msgstr "பெயர் மாற்றத்திற்கான செயல் எதிர்பார்க்கப்பட்டது." #: src/Components/SetOperation.php:121 -#, fuzzy -#| msgid "as regular expression" msgid "Missing expression." -msgstr "வழக்கமான வெளிப்பாடு" +msgstr "காணப்படாத வெளிப்பாடு." #: src/Lexer.php:274 -#, fuzzy -#| msgid "Unexpected characters on line %s." msgid "Unexpected character." -msgstr "%sம் வரியில் எதிர்பாராத எழுத்துக்கள் உள்ளன." +msgstr "எதிர்பாராத தன்மை." #: src/Lexer.php:313 msgid "Expected whitespace(s) before delimiter." -msgstr "" +msgstr "டிலிமிட்டருக்கு முன் எதிர்பார்க்கப்படும் இடைவெளி (கள்)." #: src/Lexer.php:329 src/Lexer.php:348 msgid "Expected delimiter." -msgstr "" +msgstr "எதிர்பார்க்கப்படும் டிலிமிட்டர்." #: src/Lexer.php:1004 #, php-format msgid "Ending quote %1$s was expected." -msgstr "" +msgstr "முடிவு மேற்கோள் %1$s எதிர்பார்க்கப்பட்டது." #: src/Lexer.php:1056 msgid "Variable name was expected." -msgstr "" +msgstr "மாறி பெயர் எதிர்பார்க்கப்பட்டது." #: src/Parser.php:456 -#, fuzzy -#| msgid "Rate of table open" msgid "Unexpected beginning of statement." -msgstr "திறந்தநிலை அட்டவணைகளின் விழுக்காடு" +msgstr "அறிக்கையின் எதிர்பாராத துவக்கம்." #: src/Parser.php:499 msgid "Unrecognized statement type." -msgstr "" +msgstr "அங்கீகரிக்கப்படாத அறிக்கை வகை." #: src/Parser.php:587 msgid "No transaction was previously started." -msgstr "" +msgstr "எந்த பரிவர்த்தனையும் முன்பு தொடங்கப்படவில்லை." #: src/Statement.php:327 msgid "This type of clause was previously parsed." -msgstr "" +msgstr "இந்த வகை பிரிவு முன்பு பாகுபடுத்தப்பட்டது." #: src/Statement.php:398 msgid "Unrecognized keyword." -msgstr "" +msgstr "அங்கீகரிக்கப்படாத முக்கிய சொல்." #: src/Statement.php:409 -#, fuzzy -#| msgid "Rate of table open" msgid "Keyword at end of statement." -msgstr "திறந்தநிலை அட்டவணைகளின் விழுக்காடு" +msgstr "அறிக்கையின் முடிவில் முக்கிய சொல்." #: src/Statement.php:555 -#, fuzzy -#| msgid "Rate of table open" msgid "Unexpected ordering of clauses." -msgstr "திறந்தநிலை அட்டவணைகளின் விழுக்காடு" +msgstr "உட்பிரிவுகளின் எதிர்பாராத வரிசைப்படுத்தல்." #: src/Statements/CreateStatement.php:549 msgid "The name of the entity was expected." -msgstr "" +msgstr "நிறுவனத்தின் பெயர் எதிர்பார்க்கப்பட்டது." #: src/Statements/CreateStatement.php:598 -#, fuzzy -#| msgid "No tables selected." msgid "A table name was expected." -msgstr "எந்த தரவுத்தளமும் தேர்ந்தெடுக்கப்படவில்லை." +msgstr "ஒரு அட்டவணை பெயர் எதிர்பார்க்கப்பட்டது." #: src/Statements/CreateStatement.php:603 -#, fuzzy -#| msgid "The row has been deleted." msgid "At least one column definition was expected." -msgstr "இந்நிரைவரிசை அழிக்கப்பட்டது." +msgstr "குறைந்தது ஒரு நெடுவரிசை வரையறை எதிர்பார்க்கப்பட்டது." #: src/Statements/CreateStatement.php:707 msgid "A \"RETURNS\" keyword was expected." -msgstr "" +msgstr "ஒரு \"வருமானம்\" முக்கிய சொல் எதிர்பார்க்கப்பட்டது." #: src/Statements/DeleteStatement.php:329 msgid "This type of clause is not valid in Multi-table queries." -msgstr "" +msgstr "பல அட்டவணை வினவல்களில் இந்த வகை பிரிவு செல்லுபடியாகாது." #: src/Statements/LockStatement.php:120 -#, fuzzy -#| msgid "Rate of table open" msgid "Unexpected end of LOCK statement." -msgstr "திறந்தநிலை அட்டவணைகளின் விழுக்காடு" +msgstr "பூட்டு அறிக்கையின் எதிர்பாராத முடிவு." #: src/Statements/PurgeStatement.php:138 -#, fuzzy -#| msgid "Unexpected keyword." msgid "Unexpected keyword" -msgstr "எதிர்பாராத சிறப்புச்சொல்." +msgstr "எதிர்பாராத முக்கிய சொல்" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "No tables selected." msgid "The name of the CTE was expected." -msgstr "எந்த தரவுத்தளமும் தேர்ந்தெடுக்கப்படவில்லை." +msgstr "CTE இன் பெயர் எதிர்பார்க்கப்பட்டது." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "No rows selected" msgid "AS keyword was expected." -msgstr "தெரிவுசெய்யப்பட வரிசைகள் இல்லை" +msgstr "முக்கிய சொல் எதிர்பார்க்கப்பட்டது." #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "No tables selected." msgid "Subquery of the CTE was expected." -msgstr "எந்த தரவுத்தளமும் தேர்ந்தெடுக்கப்படவில்லை." +msgstr "CTE இன் துணைக்குழு எதிர்பார்க்கப்பட்டது." #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Rate of table open" msgid "Unexpected end of the WITH CTE." -msgstr "திறந்தநிலை அட்டவணைகளின் விழுக்காடு" +msgstr "CTE உடன் எதிர்பாராத முடிவு." #, fuzzy #~| msgid "Rate of table open" diff --git a/locale/th/LC_MESSAGES/sqlparser.mo b/locale/th/LC_MESSAGES/sqlparser.mo index a9a3167a9..619ae33bb 100644 Binary files a/locale/th/LC_MESSAGES/sqlparser.mo and b/locale/th/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/th/LC_MESSAGES/sqlparser.po b/locale/th/LC_MESSAGES/sqlparser.po index 0162eebea..5d0040581 100644 --- a/locale/th/LC_MESSAGES/sqlparser.po +++ b/locale/th/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2026-01-19 00:55+0000\n" +"Last-Translator: Jiraroj Leelarattanawong \n" "Language-Team: Thai \n" "Language: th\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.15.2\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -22,11 +22,11 @@ msgstr "ยังไม่มีการดำเนินการ" #: src/Components/AlterOperation.php:415 src/Statement.php:359 msgid "" "A new statement was found, but no delimiter between it and the previous one." -msgstr "ตรวจพบประพจน์ใหม่ แต่ไม่มีตัวคั่นระหว่างข้อความนี้กับข้อความก่อนหน้า" +msgstr "พบข้อความใหม่ แต่ไม่มีตัวคั่นระหว่างข้อความใหม่กับข้อความก่อนหน้า" #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "ขาดเครื่องหมายจุลภาคก่อนเริ่มต้นการดำเนินการแก้ไขใหม่" #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." @@ -67,14 +67,12 @@ msgid "Unexpected end of CASE expression" msgstr "จุดสิ้นสุดนิพจน์ CASE ไม่ได้รับการคาดเดา" #: src/Components/CaseExpression.php:212 -#, fuzzy -#| msgid "Unexpected end of CASE expression" msgid "Potential duplicate alias of CASE expression." -msgstr "จุดสิ้นสุดนิพจน์ CASE ไม่ได้รับการคาดเดา" +msgstr "ชื่อเรียกซ้ำที่เป็นไปได้ของนิพจน์ CASE" #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "คาดว่าจะใช้นามแฝงหลัง AS แต่กลับได้ชื่อแทนอื่น " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 @@ -82,10 +80,8 @@ msgid "An alias was previously found." msgstr "ชื่อ alias มีอยู่ก่อนแล้ว" #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "An alias was expected." msgid "An alias was expected after AS." -msgstr "ตัวแทนได้รับการคาดเดา" +msgstr "คาดว่าจะมีการใช้นามแฝงต่อท้าย AS" #: src/Components/CreateDefinition.php:255 msgid "" @@ -242,38 +238,28 @@ msgid "This type of clause is not valid in Multi-table queries." msgstr "ประโยคชนิดนี้ไม่ถูกต้องในการเรียกใช้แบบหลายตาราง" #: src/Statements/LockStatement.php:120 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of LOCK statement." -msgstr "ไม่อาจคาดเดาจุดเริ่มต้นของประพจน์" +msgstr "สิ้นสุดการทำงานของคำสั่ง LOCK อย่างไม่คาดคิด" #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" msgstr "คำสำคัญที่ไม่ได้รับการคาดเดา" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "ชื่อเอนทิติได้รับการคาดหวัง" +msgstr "ชื่อของ CTE นั้นเป็นไปตามที่คาดไว้" #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "คีย์เวิร์ด \"RETURNS\" ได้รับการคาดหวัง" +msgstr "คาดว่าจะใช้คีย์เวิร์ด AS" #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "ชื่อเอนทิติได้รับการคาดหวัง" +msgstr "คาดว่าจะมีการใช้คำสั่งรองของ CTE" #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of the WITH CTE." -msgstr "ไม่อาจคาดเดาจุดเริ่มต้นของประพจน์" +msgstr "ไม่คาดว่าจะมีการจบท้ายด้วย WITH CTE" #~ msgid "Unexpected end of Lock expression." #~ msgstr "จุดสิ้นสุดนิพจน์ LOCK ไม่ได้รับการคาดเดา." diff --git a/locale/ur/LC_MESSAGES/sqlparser.mo b/locale/ur/LC_MESSAGES/sqlparser.mo index 605b5a5f3..06eed778d 100644 Binary files a/locale/ur/LC_MESSAGES/sqlparser.mo and b/locale/ur/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/ur/LC_MESSAGES/sqlparser.po b/locale/ur/LC_MESSAGES/sqlparser.po index 4eab656a2..6d716338a 100644 --- a/locale/ur/LC_MESSAGES/sqlparser.po +++ b/locale/ur/LC_MESSAGES/sqlparser.po @@ -7,29 +7,29 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2015-10-15 11:05+0200\n" -"Last-Translator: Michal Čihař \n" -"Language-Team: Urdu \n" +"PO-Revision-Date: 2023-03-28 13:56+0000\n" +"Last-Translator: Aatir Farooqui \n" +"Language-Team: Urdu \n" "Language: ur\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 2.5-dev\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." -msgstr "" +msgstr "ابھی تک نافذ نہیں ہوا۔" #: src/Components/AlterOperation.php:415 src/Statement.php:359 msgid "" "A new statement was found, but no delimiter between it and the previous one." -msgstr "" +msgstr "ایک نیا بیان ملا، لیکن اس اور پچھلے بیان کے درمیان کوئی حد بندی نہیں۔" #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "ایک نیا الٹر آپریشن شروع کرنے سے پہلے کوما غائب ہے۔" #: src/Components/AlterOperation.php:472 #, fuzzy @@ -40,11 +40,11 @@ msgstr "شبیہاتی جدول عملیات" #: src/Components/Array2d.php:88 #, php-format msgid "%1$d values were expected, but found %2$d." -msgstr "" +msgstr "%1$d قدریں متوقع تھیں، لیکن %2$d ملیں۔" #: src/Components/Array2d.php:108 msgid "An opening bracket followed by a set of values was expected." -msgstr "" +msgstr "ایک افتتاحی خط وحدانی جس کے بعد اقدار کا ایک سیٹ متوقع تھا۔" #: src/Components/ArrayObj.php:106 src/Components/CreateDefinition.php:233 msgid "An opening bracket was expected." diff --git a/locale/vi/LC_MESSAGES/sqlparser.mo b/locale/vi/LC_MESSAGES/sqlparser.mo index 701a90b81..d7486f9d1 100644 Binary files a/locale/vi/LC_MESSAGES/sqlparser.mo and b/locale/vi/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/vi/LC_MESSAGES/sqlparser.po b/locale/vi/LC_MESSAGES/sqlparser.po index 83b450469..d5946c249 100644 --- a/locale/vi/LC_MESSAGES/sqlparser.po +++ b/locale/vi/LC_MESSAGES/sqlparser.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2025-03-22 07:14+0000\n" +"Last-Translator: hoanghuy309 \n" "Language-Team: Vietnamese \n" "Language: vi\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.11-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -32,7 +32,7 @@ msgstr "" #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "Thiếu dấu phẩy trước khi bắt đầu thao tác thay đổi mới." #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." @@ -73,14 +73,12 @@ msgid "Unexpected end of CASE expression" msgstr "Kết thúc bất ngờ của biểu thức CASE" #: src/Components/CaseExpression.php:212 -#, fuzzy -#| msgid "Unexpected end of CASE expression" msgid "Potential duplicate alias of CASE expression." -msgstr "Kết thúc bất ngờ của biểu thức CASE" +msgstr "Khả năng trùng lặp tên của các biểu thức CASE." #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "Một bí danh được mong đợi sau AS nhưng có " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 @@ -88,10 +86,8 @@ msgid "An alias was previously found." msgstr "Một bí danh đã tìm thấy từ trước đây." #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "An alias was expected." msgid "An alias was expected after AS." -msgstr "Cần một bí danh." +msgstr "Một bí danh đã được mong đợi sau AS." #: src/Components/CreateDefinition.php:255 msgid "" @@ -102,10 +98,8 @@ msgstr "" "tên cột mà không có các ngoặc sau." #: src/Components/CreateDefinition.php:268 -#, fuzzy -#| msgid "Variable name was expected." msgid "A symbol name was expected!" -msgstr "Cần tên biến." +msgstr "Cần tên biểu tượng!" #: src/Components/CreateDefinition.php:300 msgid "A comma or a closing bracket was expected." @@ -222,10 +216,8 @@ msgid "Unrecognized keyword." msgstr "Không nhận ra từ khóa." #: src/Statement.php:409 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Keyword at end of statement." -msgstr "Gặp phần đầu mệnh đề không cần." +msgstr "Từ khóa ở cuối mệnh đề." #: src/Statement.php:555 msgid "Unexpected ordering of clauses." @@ -236,10 +228,8 @@ msgid "The name of the entity was expected." msgstr "Cần tên của thực thể." #: src/Statements/CreateStatement.php:598 -#, fuzzy -#| msgid "Variable name was expected." msgid "A table name was expected." -msgstr "Cần tên biến." +msgstr "Cần một tên bảng." #: src/Statements/CreateStatement.php:603 msgid "At least one column definition was expected." @@ -270,10 +260,8 @@ msgid "The name of the CTE was expected." msgstr "Cần tên của thực thể." #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "Cần từ khóa \"RETURNS\"." +msgstr "Cần từ khóa AS." #: src/Statements/WithStatement.php:149 #, fuzzy diff --git a/locale/zh_TW/LC_MESSAGES/sqlparser.mo b/locale/zh_TW/LC_MESSAGES/sqlparser.mo index 2340741bb..a8882062c 100644 Binary files a/locale/zh_TW/LC_MESSAGES/sqlparser.mo and b/locale/zh_TW/LC_MESSAGES/sqlparser.mo differ diff --git a/locale/zh_TW/LC_MESSAGES/sqlparser.po b/locale/zh_TW/LC_MESSAGES/sqlparser.po index 25d868226..5d8187d42 100644 --- a/locale/zh_TW/LC_MESSAGES/sqlparser.po +++ b/locale/zh_TW/LC_MESSAGES/sqlparser.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: SQL parser 5\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2023-02-26 22:46+0100\n" -"PO-Revision-Date: 2023-01-26 07:10+0000\n" -"Last-Translator: liviuconcioiu \n" +"PO-Revision-Date: 2024-06-14 13:09+0000\n" +"Last-Translator: Ricky From Hong Kong \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_TW\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/Component.php:39 src/Component.php:59 msgid "Not implemented yet." @@ -26,7 +26,7 @@ msgstr "找到新的陳述句,但與前一陳述句之間沒有分隔符。" #: src/Components/AlterOperation.php:427 msgid "Missing comma before start of a new alter operation." -msgstr "" +msgstr "在開始一個新的操作前缺少逗號。" #: src/Components/AlterOperation.php:472 msgid "Unrecognized alter operation." @@ -67,14 +67,12 @@ msgid "Unexpected end of CASE expression" msgstr "預期之外的CASE陳述式" #: src/Components/CaseExpression.php:212 -#, fuzzy -#| msgid "Unexpected end of CASE expression" msgid "Potential duplicate alias of CASE expression." -msgstr "預期之外的CASE陳述式" +msgstr "CASE 表達式可能重複的別名。" #: src/Components/CaseExpression.php:225 msgid "An alias expected after AS but got " -msgstr "" +msgstr "別名應出現在 AS 之後,但得到 " #: src/Components/CaseExpression.php:238 src/Components/Expression.php:352 #: src/Components/Expression.php:372 src/Components/Expression.php:424 @@ -82,10 +80,8 @@ msgid "An alias was previously found." msgstr "已於前面找到別名。" #: src/Components/CaseExpression.php:252 -#, fuzzy -#| msgid "An alias was expected." msgid "An alias was expected after AS." -msgstr "預期要有別名。" +msgstr "在 AS 之後預期要有別名。" #: src/Components/CreateDefinition.php:255 msgid "" @@ -240,38 +236,28 @@ msgid "This type of clause is not valid in Multi-table queries." msgstr "此類型的子句不可用於多表查詢。" #: src/Statements/LockStatement.php:120 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of LOCK statement." -msgstr "預期之外的陳述句開頭。" +msgstr "LOCK 語句意外結束。" #: src/Statements/PurgeStatement.php:138 msgid "Unexpected keyword" msgstr "預期之外的關鍵字" #: src/Statements/WithStatement.php:118 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "The name of the CTE was expected." -msgstr "預期要有實體名稱。" +msgstr "預期常用資料表句式(CTE)要有名稱。" #: src/Statements/WithStatement.php:137 -#, fuzzy -#| msgid "A \"RETURNS\" keyword was expected." msgid "AS keyword was expected." -msgstr "預期要使用 \"RETURNS\" 關鍵字。" +msgstr "預期要使用 \"AS\" 關鍵字。" #: src/Statements/WithStatement.php:149 -#, fuzzy -#| msgid "The name of the entity was expected." msgid "Subquery of the CTE was expected." -msgstr "預期要有實體名稱。" +msgstr "預期常用資料表句式(CTE)要有子查詢。" #: src/Statements/WithStatement.php:266 -#, fuzzy -#| msgid "Unexpected beginning of statement." msgid "Unexpected end of the WITH CTE." -msgstr "預期之外的陳述句開頭。" +msgstr "常用資料表句式(CTE)的“WITH”預期之外結束。" #~ msgid "Unexpected end of Lock expression." #~ msgstr "預期之外的LOCK陳述式。" diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 97751b995..0d89215e4 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -13,11 +13,7 @@ tools/doctum-config.php - - - - - + src/Contexts/* @@ -35,15 +31,4 @@ src/Contexts/* tests/Tools/templates/* - - - src/Context.php - - - - src/TokensList.php - src/UtfString.php - src/Components/Expression.php - src/Statement.php - diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 453c59dec..b458d69f5 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,1182 +1,2762 @@ parameters: ignoreErrors: - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Component\\:\\:__toString\\(\\) should return string but returns mixed\\.$#" - count: 1 - path: src/Component.php - - - - message: "#^Cannot assign new offset to array\\\\|string\\.$#" - count: 3 + message: '#^Cannot call method has\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 2 path: src/Components/AlterOperation.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\PartitionDefinition\\:\\:build\\(\\) expects array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\PartitionDefinition, array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj given\\.$#" + message: '#^Cannot call method remove\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject count: 1 path: src/Components/AlterOperation.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\AlterOperation\\:\\:\\$options \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" + message: '#^Cannot clone PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: clone.nonObject count: 1 path: src/Components/AlterOperation.php - - message: "#^Cannot access property \\$values on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in an if condition, string\|null given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Components/Array2d.php + path: src/Components/CaseExpression.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 3 + path: src/Components/CreateDefinition.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Components\\\\Array2d\\:\\:parse\\(\\) should return array\\ but returns array\\, array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\>\\.$#" + message: '#^Only booleans are allowed in an if condition, bool\|null given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Components/Array2d.php + path: src/Components/CreateDefinition.php - - message: "#^Cannot access an offset on array\\, mixed\\>\\|ArrayAccess\\|static\\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\)\\.$#" + message: '#^Parameter \#1 \$string of function strtolower expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: src/Components/ArrayObj.php + path: src/Components/DataType.php - - message: "#^Cannot access property \\$raw on array\\, mixed\\>\\|ArrayAccess\\|static\\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\)\\.$#" - count: 2 - path: src/Components/ArrayObj.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 1 + path: src/Components/Expression.php - - message: "#^Cannot access property \\$values on array\\, mixed\\>\\|ArrayAccess\\|static\\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\)\\.$#" - count: 2 - path: src/Components/ArrayObj.php + message: '#^Only booleans are allowed in a ternary operator condition, bool\|null given\.$#' + identifier: ternary.condNotBoolean + count: 1 + path: src/Components/IntoKeyword.php - - message: "#^Cannot call static method parse\\(\\) on mixed\\.$#" + message: '#^Call to function array_search\(\) requires parameter \#3 to be set\.$#' + identifier: function.strict count: 1 - path: src/Components/ArrayObj.php + path: src/Components/JoinKeyword.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Components/JoinKeyword.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\:\\:parse\\(\\) should return array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj but returns array\\, mixed\\>\\|ArrayAccess\\|static\\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\)\\.$#" + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed count: 1 - path: src/Components/ArrayObj.php + path: src/Components/Key.php - - message: "#^Binary operation \"\\.\" between ' AS ' and array\\\\|string results in an error\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\OptionsArray\:\:\$options \(array\\) does not accept array\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/CaseExpression.php + path: src/Components/OptionsArray.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\CaseExpression\\:\\:\\$alias \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed count: 1 - path: src/Components/CaseExpression.php + path: src/Components/ParameterDefinition.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\CaseExpression\\:\\:\\$compare_values \\(array\\\\) does not accept array\\\\.$#" + message: '#^Parameter \#1 \$str of static method PhpMyAdmin\\SqlParser\\Context\:\:escape\(\) expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: src/Components/CaseExpression.php + path: src/Components/ParameterDefinition.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\CaseExpression\\:\\:\\$results \\(array\\\\) does not accept array\\\\.$#" - count: 2 - path: src/Components/CaseExpression.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 4 + path: src/Components/PartitionDefinition.php - - message: "#^Unreachable statement \\- code above always terminates\\.$#" + message: '#^Only booleans are allowed in an if condition, bool\|null given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Components/Condition.php + path: src/Components/PartitionDefinition.php - - message: "#^Binary operation \"\\.\" between array\\\\|string and ' ' results in an error\\.$#" + message: '#^Only booleans are allowed in an if condition, array\ given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Components/CreateDefinition.php + path: src/Components/WithKeyword.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\CreateDefinition\\:\\:\\$name \\(string\\|null\\) does not accept mixed\\.$#" - count: 2 - path: src/Components/CreateDefinition.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 1 + path: src/Context.php - - message: "#^Cannot access property \\$raw on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 1073741824\> given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean count: 1 - path: src/Components/DataType.php + path: src/Context.php - - message: "#^Cannot access property \\$values on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in a negated boolean, int\<0, 2\> given\.$#' + identifier: booleanNot.exprNotBoolean count: 1 - path: src/Components/DataType.php + path: src/Context.php - - message: "#^Cannot cast mixed to string\\.$#" + message: '#^Only booleans are allowed in an if condition, int\<0, 2\> given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Components/DataType.php + path: src/Context.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType\\:\\:\\$name \\(string\\) does not accept string\\|null\\.$#" + message: '#^Only booleans are allowed in \|\|, int\|null given on the left side\.$#' + identifier: booleanOr.leftNotBoolean count: 1 - path: src/Components/DataType.php + path: src/Context.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType\\:\\:\\$options \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" + message: '#^Static property PhpMyAdmin\\SqlParser\\Context\:\:\$keywords \(non\-empty\-array\\) does not accept default value of type array\{\}\.$#' + identifier: property.defaultValue count: 1 - path: src/Components/DataType.php + path: src/Context.php - - message: "#^Binary operation \"\\.\" between ' AS ' and array\\\\|string results in an error\\.$#" + message: '#^Static property PhpMyAdmin\\SqlParser\\Context\:\:\$keywords \(non\-empty\-array\\) does not accept mixed\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/Expression.php + path: src/Context.php - - message: "#^Parameter \\#2 \\$pieces of function implode expects array, array\\\\|string given\\.$#" - count: 1 - path: src/Components/Expression.php + message: '#^Cannot access property \$type on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject + count: 2 + path: src/Lexer.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\:\\:\\$alias \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Cannot access property \$value on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject count: 3 - path: src/Components/Expression.php + path: src/Lexer.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\:\\:\\$subquery \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed count: 1 - path: src/Components/Expression.php + path: src/Lexer.php - - message: "#^Strict comparison using \\=\\=\\= between PhpMyAdmin\\\\SqlParser\\\\Token and null will always evaluate to false\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 1\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Components/Expression.php + path: src/Lexer.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Components\\\\ExpressionArray\\:\\:parse\\(\\) should return array\\ but returns array\\, PhpMyAdmin\\\\SqlParser\\\\Components\\\\CaseExpression\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\>\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Components/ExpressionArray.php + path: src/Lexer.php - - message: "#^Parameter \\#1 \\$string of function strlen expects string, string\\|null given\\.$#" + message: '#^Only booleans are allowed in a negated boolean, int\<0, 16\> given\.$#' + identifier: booleanNot.exprNotBoolean count: 1 - path: src/Components/ExpressionArray.php + path: src/Lexer.php - - message: "#^Parameter \\#1 \\$string of function substr expects string, string\\|null given\\.$#" - count: 1 - path: src/Components/ExpressionArray.php + message: '#^Only booleans are allowed in a negated boolean, int\|null given\.$#' + identifier: booleanNot.exprNotBoolean + count: 2 + path: src/Lexer.php - - message: "#^Parameter \\#2 \\$subject of function preg_match expects string, string\\|null given\\.$#" + message: '#^Only booleans are allowed in an elseif condition, int\<0, 16\> given\.$#' + identifier: elseif.condNotBoolean count: 1 - path: src/Components/ExpressionArray.php + path: src/Lexer.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\FunctionCall\\:\\:\\$parameters \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\) does not accept array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in an if condition, int\<0, 1\> given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Components/FunctionCall.php + path: src/Lexer.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\GroupKeyword\\:\\:\\$expr \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" - count: 2 - path: src/Components/GroupKeyword.php + message: '#^Property PhpMyAdmin\\SqlParser\\Token\:\:\$keyword \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Lexer.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\GroupKeyword\\:\\:\\$expr \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) in empty\\(\\) is not falsy\\.$#" - count: 2 - path: src/Components/GroupKeyword.php + message: '#^Strict comparison using \=\=\= between non\-empty\-array\ and array\{\} will always evaluate to false\.$#' + identifier: identical.alwaysFalse + count: 1 + path: src/Lexer.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\IndexHint\\:\\:\\$type \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Cannot access property \$count on PhpMyAdmin\\SqlParser\\TokensList\|null\.$#' + identifier: property.nonObject count: 1 - path: src/Components/IndexHint.php + path: src/Parser.php - - message: "#^Cannot access property \\$values on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Cannot access property \$first on mixed\.$#' + identifier: property.nonObject count: 1 - path: src/Components/IntoKeyword.php + path: src/Parser.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray, PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null given\\.$#" - count: 2 - path: src/Components/IntoKeyword.php + message: '#^Cannot access property \$idx on PhpMyAdmin\\SqlParser\\TokensList\|null\.$#' + identifier: property.nonObject + count: 12 + path: src/Parser.php - - message: "#^Parameter \\#3 \\$keyword of method PhpMyAdmin\\\\SqlParser\\\\Components\\\\IntoKeyword\\:\\:parseFileOptions\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Components/IntoKeyword.php + message: '#^Cannot access property \$last on mixed\.$#' + identifier: property.nonObject + count: 1 + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\IntoKeyword\\:\\:\\$dest \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|string\\|null\\) does not accept mixed\\.$#" + message: '#^Cannot access property \$tokens on PhpMyAdmin\\SqlParser\\TokensList\|null\.$#' + identifier: property.nonObject count: 1 - path: src/Components/IntoKeyword.php + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\JoinKeyword\\:\\:\\$expr \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" - count: 2 - path: src/Components/JoinKeyword.php + message: '#^Cannot call method getNextOfType\(\) on PhpMyAdmin\\SqlParser\\TokensList\|null\.$#' + identifier: method.nonObject + count: 4 + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\JoinKeyword\\:\\:\\$on \\(array\\\\) does not accept array\\\\|null\\.$#" + message: '#^Cannot call method validateClauseOrder\(\) on mixed\.$#' + identifier: method.nonObject count: 1 - path: src/Components/JoinKeyword.php + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\JoinKeyword\\:\\:\\$type \\(string\\) does not accept string\\|null\\.$#" - count: 1 - path: src/Components/JoinKeyword.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\JoinKeyword\\:\\:\\$using \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\.$#" + message: '#^Instantiated class not found\.$#' + identifier: class.notFound count: 1 - path: src/Components/JoinKeyword.php + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\JoinKeyword\\:\\:\\$using \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\) does not accept array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" - count: 1 - path: src/Components/JoinKeyword.php + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean + count: 2 + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\JoinKeyword\\:\\:\\$using \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\) in empty\\(\\) is not falsy\\.$#" - count: 1 - path: src/Components/JoinKeyword.php + message: '#^Parameter \#2 \$list of method PhpMyAdmin\\SqlParser\\Statement\:\:validateClauseOrder\(\) expects PhpMyAdmin\\SqlParser\\TokensList, PhpMyAdmin\\SqlParser\\TokensList\|null given\.$#' + identifier: argument.type + count: 2 + path: src/Parser.php - - message: "#^Binary operation \"\\.\" between array\\\\|string and ' ' results in an error\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Parser\:\:\$statements \(array\\) does not accept array\\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/Key.php + path: src/Parser.php - - message: "#^Binary operation \"\\.\\=\" between '' and array\\\\|string results in an error\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$union \(array\\) does not accept array\\|PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\>\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/Key.php + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Key\\:\\:\\$columns \\(array\\\\) does not accept non\\-empty\\-array\\\\>\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement\:\:\$statements \(array\\|null\) does not accept array\\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/Key.php + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Key\\:\\:\\$name \\(string\\) does not accept mixed\\.$#" + message: '#^Strict comparison using \=\=\= between non\-empty\-array\ and array\{\} will always evaluate to false\.$#' + identifier: identical.alwaysFalse count: 1 - path: src/Components/Key.php + path: src/Parser.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Key\\:\\:\\$name \\(string\\) does not accept string\\|null\\.$#" + message: '#^Call to function in_array\(\) requires parameter \#3 to be set\.$#' + identifier: function.strict count: 1 - path: src/Components/Key.php + path: src/Parsers/AlterOperations.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Key\\:\\:\\$type \\(string\\) does not accept mixed\\.$#" - count: 1 - path: src/Components/Key.php + message: '#^Cannot call method has\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 2 + path: src/Parsers/AlterOperations.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Key\\:\\:\\$type \\(string\\) does not accept string\\|null\\.$#" + message: '#^Cannot call method isEmpty\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject count: 1 - path: src/Components/Key.php + path: src/Parsers/AlterOperations.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Limit\\:\\:\\$offset \\(int\\|string\\) does not accept mixed\\.$#" + message: '#^Cannot call method merge\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject count: 1 - path: src/Components/Limit.php + path: src/Parsers/AlterOperations.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Limit\\:\\:\\$rowCount \\(int\\|string\\) does not accept mixed\\.$#" + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed count: 1 - path: src/Components/Limit.php + path: src/Parsers/AlterOperations.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\LockExpression\\:\\:\\$table \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" - count: 1 - path: src/Components/LockExpression.php + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean + count: 2 + path: src/Parsers/AlterOperations.php - - message: "#^Cannot access offset 'equals' on mixed\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\AlterOperation\:\:\$partitions \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/OptionsArray.php + path: src/Parsers/AlterOperations.php - - message: "#^Cannot access offset 'expr' on mixed\\.$#" - count: 2 - path: src/Components/OptionsArray.php + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean + count: 1 + path: src/Parsers/Array2d.php - - message: "#^Cannot access offset 'name' on mixed\\.$#" + message: '#^Cannot access an offset on list\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: src/Components/OptionsArray.php + path: src/Parsers/ArrayObjs.php - - message: "#^Cannot access offset 'value' on mixed\\.$#" + message: '#^Cannot access property \$raw on list\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: property.nonObject count: 2 - path: src/Components/OptionsArray.php + path: src/Parsers/ArrayObjs.php - - message: "#^Cannot access offset 1 on mixed\\.$#" + message: '#^Cannot access property \$values on list\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: property.nonObject count: 2 - path: src/Components/OptionsArray.php + path: src/Parsers/ArrayObjs.php - - message: "#^Cannot access offset 2 on mixed\\.$#" + message: '#^Cannot call static method parse\(\) on mixed\.$#' + identifier: staticMethod.nonObject count: 1 - path: src/Components/OptionsArray.php + path: src/Parsers/ArrayObjs.php - - message: "#^Parameter \\#2 \\$str2 of function strcasecmp expects string, mixed given\\.$#" - count: 2 - path: src/Components/OptionsArray.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 5 + path: src/Parsers/ArrayObjs.php - - message: "#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#" + message: '#^Method PhpMyAdmin\\SqlParser\\Parsers\\ArrayObjs\:\:parse\(\) should return array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj but returns list\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: return.type count: 1 - path: src/Components/OptionsArray.php + path: src/Parsers/ArrayObjs.php - - message: "#^Parameter \\#3 \\$options of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\:\\:parse\\(\\) expects array\\, mixed given\\.$#" - count: 1 - path: src/Components/OptionsArray.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Parsers/CaseExpressions.php - - message: "#^Right side of && is always true\\.$#" + message: '#^Only booleans are allowed in &&, int given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Components/OptionsArray.php - - - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\OrderKeyword\\:\\:\\$expr \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" - count: 2 - path: src/Components/OrderKeyword.php + path: src/Parsers/CaseExpressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\OrderKeyword\\:\\:\\$expr \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) in empty\\(\\) is not falsy\\.$#" - count: 2 - path: src/Components/OrderKeyword.php + message: '#^Only booleans are allowed in a negated boolean, int given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Parsers/CaseExpressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\ParameterDefinition\\:\\:\\$inOut \\(string\\) does not accept string\\|null\\.$#" + message: '#^Only booleans are allowed in \|\|, int\<0, 2\> given on the left side\.$#' + identifier: booleanOr.leftNotBoolean count: 1 - path: src/Components/ParameterDefinition.php + path: src/Parsers/CaseExpressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\ParameterDefinition\\:\\:\\$name \\(string\\) does not accept mixed\\.$#" + message: '#^Only booleans are allowed in \|\|, int\<0, 32\> given on the right side\.$#' + identifier: booleanOr.rightNotBoolean count: 1 - path: src/Components/ParameterDefinition.php + path: src/Parsers/CaseExpressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\ParameterDefinition\\:\\:\\$name \\(string\\) does not accept string\\|null\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\CaseExpression\:\:\$alias \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/ParameterDefinition.php + path: src/Parsers/CaseExpressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\ParameterDefinition\\:\\:\\$name \\(string\\) in isset\\(\\) is not nullable\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\CaseExpression\:\:\$compareValues \(array\\) does not accept array\\.$#' + identifier: assign.propertyType count: 1 - path: src/Components/ParameterDefinition.php + path: src/Parsers/CaseExpressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\ParameterDefinition\\:\\:\\$type \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType\\|null\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\CaseExpression\:\:\$results \(array\\) does not accept array\\.$#' + identifier: assign.propertyType count: 2 - path: src/Components/ParameterDefinition.php + path: src/Parsers/CaseExpressions.php - - message: "#^Unreachable statement \\- code above always terminates\\.$#" + message: '#^Call to function in_array\(\) requires parameter \#3 to be set\.$#' + identifier: function.strict count: 1 - path: src/Components/ParameterDefinition.php + path: src/Parsers/Conditions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\PartitionDefinition\\:\\:\\$expr \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|string\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Components/PartitionDefinition.php + path: src/Parsers/Conditions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\PartitionDefinition\\:\\:\\$name \\(string\\) does not accept mixed\\.$#" + message: '#^Only booleans are allowed in a negated boolean, int\<0, 32\> given\.$#' + identifier: booleanNot.exprNotBoolean count: 1 - path: src/Components/PartitionDefinition.php + path: src/Parsers/Conditions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\PartitionDefinition\\:\\:\\$options \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\) in empty\\(\\) is not falsy\\.$#" + message: '#^Only booleans are allowed in \|\|, int\<0, 16\> given on the right side\.$#' + identifier: booleanOr.rightNotBoolean count: 1 - path: src/Components/PartitionDefinition.php + path: src/Parsers/Conditions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\PartitionDefinition\\:\\:\\$subpartitions \\(array\\\\) does not accept array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in \|\|, int\<0, 2\> given on the right side\.$#' + identifier: booleanOr.rightNotBoolean count: 1 - path: src/Components/PartitionDefinition.php + path: src/Parsers/Conditions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\PartitionDefinition\\:\\:\\$type \\(string\\) does not accept mixed\\.$#" - count: 1 - path: src/Components/PartitionDefinition.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 4 + path: src/Parsers/CreateDefinitions.php - - message: "#^Cannot access property \\$values on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 16\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Components/Reference.php + path: src/Parsers/CreateDefinitions.php - - message: "#^Parameter \\#2 \\$pieces of function implode expects array, array\\\\|string given\\.$#" + message: '#^Only booleans are allowed in a negated boolean, bool\|null given\.$#' + identifier: booleanNot.exprNotBoolean count: 1 - path: src/Components/Reference.php + path: src/Parsers/CreateDefinitions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Reference\\:\\:\\$options \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" + message: '#^Only booleans are allowed in an if condition, int\<0, 2\> given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Components/Reference.php + path: src/Parsers/CreateDefinitions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\Reference\\:\\:\\$table \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\CreateDefinition\:\:\$name \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType count: 2 - path: src/Components/Reference.php + path: src/Parsers/CreateDefinitions.php - - message: "#^Call to function is_array\\(\\) with PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation will always evaluate to false\\.$#" + message: '#^Cannot access property \$raw on array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: property.nonObject count: 1 - path: src/Components/RenameOperation.php + path: src/Parsers/DataTypes.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation\\:\\:\\$new \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" - count: 2 - path: src/Components/RenameOperation.php + message: '#^Cannot access property \$values on array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: property.nonObject + count: 1 + path: src/Parsers/DataTypes.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation\\:\\:\\$new \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) in empty\\(\\) is not falsy\\.$#" + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed count: 1 - path: src/Components/RenameOperation.php + path: src/Parsers/DataTypes.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation\\:\\:\\$old \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" - count: 2 - path: src/Components/RenameOperation.php + message: '#^Only booleans are allowed in a negated boolean, int\<0, 8\> given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Parsers/DataTypes.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation\\:\\:\\$old \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\) in empty\\(\\) is not falsy\\.$#" - count: 2 - path: src/Components/RenameOperation.php + message: '#^Method PhpMyAdmin\\SqlParser\\Parsers\\ExpressionArray\:\:parse\(\) should return array\ but returns list\\.$#' + identifier: return.type + count: 1 + path: src/Parsers/ExpressionArray.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Components\\\\SetOperation\\:\\:\\$value \\(string\\) does not accept string\\|null\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Components/SetOperation.php + path: src/Parsers/ExpressionArray.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Context\\:\\:escape\\(\\) should return array\\\\|string but returns array\\\\|string\\>\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 32\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Context.php + path: src/Parsers/ExpressionArray.php - - message: "#^Static property PhpMyAdmin\\\\SqlParser\\\\Context\\:\\:\\$KEYWORDS \\(non\\-empty\\-array\\\\) does not accept default value of type array\\{\\}\\.$#" + message: '#^Only booleans are allowed in an if condition, int\|false given\.$#' + identifier: if.condNotBoolean count: 1 - path: src/Context.php + path: src/Parsers/ExpressionArray.php - - message: "#^Cannot access property \\$type on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" - count: 2 - path: src/Lexer.php + message: '#^Parameter \#1 \$string of function strlen expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Parsers/ExpressionArray.php - - message: "#^Cannot access property \\$value on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" - count: 3 - path: src/Lexer.php + message: '#^Parameter \#1 \$string of function substr expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Parsers/ExpressionArray.php - - message: "#^Parameter \\#1 \\$msg \\(string\\) of method PhpMyAdmin\\\\SqlParser\\\\Lexer\\:\\:error\\(\\) should be compatible with parameter \\$error \\(Exception\\) of method PhpMyAdmin\\\\SqlParser\\\\Core\\:\\:error\\(\\)$#" + message: '#^Parameter \#2 \$subject of function preg_match expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: src/Lexer.php + path: src/Parsers/ExpressionArray.php - - message: "#^Parameter \\#1 \\$token of class PhpMyAdmin\\\\SqlParser\\\\Token constructor expects string, null given\\.$#" + message: '#^Comparison operation "\<" between int\<1, max\> and 0 is always false\.$#' + identifier: smaller.alwaysFalse count: 1 - path: src/Lexer.php + path: src/Parsers/Expressions.php - - message: "#^Parameter \\#3 \\$flags of class PhpMyAdmin\\\\SqlParser\\\\Token constructor expects int, int\\|null given\\.$#" - count: 1 - path: src/Lexer.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 16 + path: src/Parsers/Expressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Lexer\\:\\:\\$delimiter \\(string\\) does not accept null\\.$#" + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Lexer.php + path: src/Parsers/Expressions.php - - message: "#^Cannot access property \\$count on PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 16\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Parser.php + path: src/Parsers/Expressions.php - - message: "#^Cannot access property \\$idx on PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null\\.$#" - count: 12 - path: src/Parser.php + message: '#^Only booleans are allowed in &&, int\<0, 1\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean + count: 1 + path: src/Parsers/Expressions.php - - message: "#^Cannot access property \\$tokens on PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean count: 1 - path: src/Parser.php + path: src/Parsers/Expressions.php - - message: "#^Cannot call method getNextOfType\\(\\) on PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null\\.$#" - count: 4 - path: src/Parser.php + message: '#^Only booleans are allowed in &&, int\<0, 32\> given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean + count: 1 + path: src/Parsers/Expressions.php - - message: "#^Parameter \\#1 \\$msg \\(string\\) of method PhpMyAdmin\\\\SqlParser\\\\Parser\\:\\:error\\(\\) should be compatible with parameter \\$error \\(Exception\\) of method PhpMyAdmin\\\\SqlParser\\\\Core\\:\\:error\\(\\)$#" + message: '#^Only booleans are allowed in &&, int\<0, 32\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Parser.php + path: src/Parsers/Expressions.php - - message: "#^Parameter \\#2 \\$list of method PhpMyAdmin\\\\SqlParser\\\\Statement\\:\\:validateClauseOrder\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\TokensList, PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null given\\.$#" - count: 3 - path: src/Parser.php + message: '#^Only booleans are allowed in a negated boolean, int\<0, 16\> given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Parsers/Expressions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\SelectStatement\\:\\:\\$union \\(array\\\\) does not accept array\\\\|PhpMyAdmin\\\\SqlParser\\\\Statements\\\\SelectStatement\\>\\.$#" + message: '#^Only booleans are allowed in a negated boolean, int\<0, 1\> given\.$#' + identifier: booleanNot.exprNotBoolean count: 1 - path: src/Parser.php + path: src/Parsers/Expressions.php - - message: "#^Offset 'class' does not exist on array\\{class\\?\\: string, field\\?\\: non\\-empty\\-string, options\\?\\: array\\\\}\\.$#" + message: '#^Only booleans are allowed in a negated boolean, int\<0, 2\> given\.$#' + identifier: booleanNot.exprNotBoolean count: 1 - path: src/Statement.php + path: src/Parsers/Expressions.php - - message: "#^Offset 'field' does not exist on array\\{class\\?\\: string, field\\?\\: non\\-empty\\-string, options\\?\\: array\\\\}\\.$#" - count: 1 - path: src/Statement.php + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\Expression\:\:\$alias \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 3 + path: src/Parsers/Expressions.php - - message: "#^Strict comparison using \\=\\=\\= between PhpMyAdmin\\\\SqlParser\\\\Component\\|string and null will always evaluate to false\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\Expression\:\:\$function \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType count: 1 - path: src/Statement.php + path: src/Parsers/Expressions.php - - message: "#^Strict comparison using \\=\\=\\= between int\\<1, max\\> and 0 will always evaluate to false\\.$#" - count: 1 - path: src/Statement.php + message: '#^Variable property access on PhpMyAdmin\\SqlParser\\Components\\Expression\.$#' + identifier: property.dynamicName + count: 2 + path: src/Parsers/Expressions.php - - message: "#^Argument of an invalid type array\\\\|null supplied for foreach, only iterables are supported\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\FunctionCall\:\:\$parameters \(PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/AlterStatement.php + path: src/Parsers/FunctionCalls.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Parsers/GroupKeywords.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\:\\:build\\(\\) expects array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression, PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null given\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\IndexHint\:\:\$type \(string\) does not accept mixed\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/AlterStatement.php + path: src/Parsers/IndexHints.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray, PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null given\\.$#" + message: '#^Cannot access property \$values on array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: property.nonObject count: 1 - path: src/Statements/AlterStatement.php + path: src/Parsers/IntoKeywords.php - - message: "#^Cannot access property \\$name on PhpMyAdmin\\\\SqlParser\\\\Components\\\\FunctionCall\\|null\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Statements/CallStatement.php + path: src/Parsers/IntoKeywords.php - - message: "#^Cannot access property \\$parameters on PhpMyAdmin\\\\SqlParser\\\\Components\\\\FunctionCall\\|null\\.$#" + message: '#^Only booleans are allowed in &&, mixed given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 2 - path: src/Statements/CallStatement.php + path: src/Parsers/IntoKeywords.php - - message: "#^Cannot access property \\$value on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" + message: '#^Parameter \#3 \$keyword of method PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\:\:parseFileOptions\(\) expects string, string\|null given\.$#' + identifier: argument.type count: 2 - path: src/Statements/CreateStatement.php + path: src/Parsers/IntoKeywords.php - - message: "#^Cannot assign new offset to array\\\\|string\\.$#" - count: 4 - path: src/Statements/CreateStatement.php + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\:\:\$dest \(PhpMyAdmin\\SqlParser\\Components\\Expression\|string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Parsers/IntoKeywords.php - - message: "#^Cannot call method has\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" - count: 8 - path: src/Statements/CreateStatement.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 3 + path: src/Parsers/JoinKeywords.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType, PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType\\|null given\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\JoinKeyword\:\:\$using \(PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/CreateStatement.php + path: src/Parsers/JoinKeywords.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\:\\:build\\(\\) expects array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression, PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null given\\.$#" - count: 10 - path: src/Statements/CreateStatement.php + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\Key\:\:\$columns \(array\\) does not accept non\-empty\-array\\>\.$#' + identifier: assign.propertyType + count: 1 + path: src/Parsers/Keys.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray, PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null given\\.$#" - count: 14 - path: src/Statements/CreateStatement.php + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\Key\:\:\$name \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Parsers/Keys.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\ParameterDefinition\\:\\:build\\(\\) expects array\\, array\\\\|null given\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\Key\:\:\$type \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/CreateStatement.php + path: src/Parsers/Keys.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement\\:\\:\\$fields \\(array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\) does not accept array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 16\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Statements/CreateStatement.php + path: src/Parsers/Limits.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement\\:\\:\\$partitions \\(array\\\\|null\\) does not accept array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Statements/CreateStatement.php + path: src/Parsers/Limits.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement\\:\\:\\$partitionsNum \\(int\\|null\\) does not accept mixed\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\Limit\:\:\$offset \(int\|string\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/CreateStatement.php + path: src/Parsers/Limits.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement\\:\\:\\$subpartitionsNum \\(int\\|null\\) does not accept mixed\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\Limit\:\:\$rowCount \(int\|string\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/CreateStatement.php + path: src/Parsers/Limits.php - - message: "#^Strict comparison using \\=\\=\\= between PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression and '' will always evaluate to false\\.$#" - count: 1 - path: src/Statements/CreateStatement.php + message: '#^Cannot access offset 1 on mixed\.$#' + identifier: offsetAccess.nonOffsetAccessible + count: 2 + path: src/Parsers/OptionsArrays.php - - message: "#^Argument of an invalid type array\\\\|null supplied for foreach, only iterables are supported\\.$#" + message: '#^Cannot access offset 2 on mixed\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: src/Statements/DeleteStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\ExpressionArray\\:\\:build\\(\\) expects array\\, array\\ given\\.$#" + message: '#^Cannot assign offset ''equals'' to array\\|string\.$#' + identifier: offsetAssign.dimType count: 1 - path: src/Statements/DeleteStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray, PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null given\\.$#" - count: 1 - path: src/Statements/DeleteStatement.php + message: '#^Cannot assign offset ''expr'' to array\\|string\.$#' + identifier: offsetAssign.dimType + count: 2 + path: src/Parsers/OptionsArrays.php - - message: "#^Parameter \\#1 \\$haystack of function stripos expects string, mixed given\\.$#" - count: 1 - path: src/Statements/DeleteStatement.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Parsers/OptionsArrays.php - - message: "#^Binary operation \"\\.\" between ' ' and array\\\\|string results in an error\\.$#" + message: '#^Offset ''expr'' might not exist on array\{name\: string, equals\: bool, expr\: PhpMyAdmin\\SqlParser\\Components\\Expression\|string, value\: string\|null\}\|string\.$#' + identifier: offsetAccess.notFound count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Binary operation \"\\.\" between array\\\\|string and '\\.' results in an error\\.$#" + message: '#^Offset ''name'' might not exist on array\{name\: string, equals\: bool, expr\: PhpMyAdmin\\SqlParser\\Components\\Expression\|string, value\: string\|null\}\|string\.$#' + identifier: offsetAccess.notFound count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Binary operation \"\\.\\=\" between string and array\\\\|string results in an error\\.$#" + message: '#^Offset ''value'' might not exist on array\{expr\: string\}\|array\{name\: string, equals\: bool, expr\: string, value\: string\|null\}\.$#' + identifier: offsetAccess.notFound count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Cannot access property \\$keyword on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" + message: '#^Only booleans are allowed in &&, mixed given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Cannot access property \\$value on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" + message: '#^Parameter \#3 \$options of static method PhpMyAdmin\\SqlParser\\Parsers\\Expressions\:\:parse\(\) expects array\, mixed given\.$#' + identifier: argument.type count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\ExplainStatement\\:\\:\\$connectionId \\(int\\|null\\) does not accept mixed\\.$#" - count: 1 - path: src/Statements/ExplainStatement.php + message: '#^Possibly invalid array key type mixed\.$#' + identifier: offsetAccess.invalidOffset + count: 14 + path: src/Parsers/OptionsArrays.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\ExplainStatement\\:\\:\\$explainedColumn \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\OptionsArray\:\:\$options \(array\\) does not accept non\-empty\-array\\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\ExplainStatement\\:\\:\\$explainedDatabase \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\OptionsArray\:\:\$options \(array\\) does not accept non\-empty\-array\\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\ExplainStatement\\:\\:\\$explainedTable \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\OptionsArray\:\:\$options \(array\\) does not accept non\-empty\-array\\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/ExplainStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Cannot access property \\$keyword on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\OptionsArray\:\:\$options \(array\\) does not accept non\-empty\-array\\.$#' + identifier: assign.propertyType count: 2 - path: src/Statements/LoadStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Cannot access property \\$token on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\OptionsArray\:\:\$options \(array\\) does not accept non\-empty\-array\\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/LoadStatement.php + path: src/Parsers/OptionsArrays.php - - message: "#^Cannot access property \\$type on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" - count: 1 - path: src/Statements/LoadStatement.php + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\OptionsArray\:\:\$options \(array\\) does not accept non\-empty\-array\\.$#' + identifier: assign.propertyType + count: 3 + path: src/Parsers/OptionsArrays.php - - message: "#^Parameter \\#3 \\$keyword of method PhpMyAdmin\\\\SqlParser\\\\Statements\\\\LoadStatement\\:\\:parseFileOptions\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Statements/LoadStatement.php + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Parsers/OrderKeywords.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\LoadStatement\\:\\:\\$partition \\(PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\) does not accept array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\ParameterDefinition\:\:\$name \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/LoadStatement.php + path: src/Parsers/ParameterDefinitions.php - - message: "#^Cannot call method merge\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition\:\:\$subpartitions \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: assign.propertyType count: 1 - path: src/Statements/MaintenanceStatement.php + path: src/Parsers/PartitionDefinitions.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\PurgeStatement\\:\\:\\$end_expr \\(string\\|null\\) does not accept PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition\:\:\$type \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Parsers/PartitionDefinitions.php + + - + message: '#^Cannot access property \$values on array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: property.nonObject + count: 1 + path: src/Parsers/References.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 3 + path: src/Parsers/RenameOperations.php + + - + message: '#^Only booleans are allowed in &&, int\<0, 2\> given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean + count: 1 + path: src/Parsers/SetOperations.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Components\\SetOperation\:\:\$value \(string\) does not accept string\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Parsers/SetOperations.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$call\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$endOptions\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$expr\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$fields\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$from\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$group\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$groupOptions\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$having\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$indexHints\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$into\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$join\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$limit\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$order\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$partition\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$procedure\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$renames\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$set\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$table\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$tables\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$union\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$values\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statement\:\:\$where\.$#' + identifier: property.notFound + count: 2 + path: src/Statement.php + + - + message: '#^Access to undefined constant static\(PhpMyAdmin\\SqlParser\\Statement\)\:\:STATEMENT_END_OPTIONS\.$#' + identifier: classConstant.notFound + count: 1 + path: src/Statement.php + + - + message: '#^Binary operation "\." between non\-falsy\-string and mixed results in an error\.$#' + identifier: binaryOp.invalid + count: 1 + path: src/Statement.php + + - + message: '#^Cannot call method build\(\) on mixed\.$#' + identifier: method.nonObject + count: 1 + path: src/Statement.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Statement.php + + - + message: '#^Method PhpMyAdmin\\SqlParser\\Statement\:\:getClauseOrder\(\) should return array\ but returns array\\>\.$#' + identifier: return.type + count: 1 + path: src/Statement.php + + - + message: '#^Only booleans are allowed in a negated boolean, int given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Statement.php + + - + message: '#^Only booleans are allowed in an if condition, int given\.$#' + identifier: if.condNotBoolean + count: 2 + path: src/Statement.php + + - + message: '#^Parameter \#1 \$array of function array_keys expects array, mixed given\.$#' + identifier: argument.type + count: 1 + path: src/Statement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statement\:\:\$options \(PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statement.php + + - + message: '#^Argument of an invalid type array\\|null supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/Statements/AlterStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\Expression\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Statements/AlterStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Statements/AlterStatement.php + + - + message: '#^Cannot access property \$name on PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Statements/CallStatement.php + + - + message: '#^Cannot access property \$parameters on PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|null\.$#' + identifier: property.nonObject + count: 2 + path: src/Statements/CallStatement.php + + - + message: '#^Only booleans are allowed in a ternary operator condition, PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|null given\.$#' + identifier: ternary.condNotBoolean + count: 1 + path: src/Statements/CallStatement.php + + - + message: '#^Cannot access property \$database on PhpMyAdmin\\SqlParser\\Components\\Expression\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Cannot access property \$table on PhpMyAdmin\\SqlParser\\Components\\Expression\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Cannot access property \$value on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject + count: 2 + path: src/Statements/CreateStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\DataType\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\Expression\|null\.$#' + identifier: method.nonObject + count: 10 + path: src/Statements/CreateStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 12 + path: src/Statements/CreateStatement.php + + - + message: '#^Cannot call method get\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 2 + path: src/Statements/CreateStatement.php + + - + message: '#^Cannot call method has\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 9 + path: src/Statements/CreateStatement.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 8 + path: src/Statements/CreateStatement.php + + - + message: '#^Only numeric types are allowed in \+, int\<0, 2\>\|false given on the left side\.$#' + identifier: plus.leftNonNumeric + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Only numeric types are allowed in pre\-decrement, int\<0, 2\>\|false given\.$#' + identifier: preDec.nonNumeric + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Parameter \#1 \$component of static method PhpMyAdmin\\SqlParser\\Parsers\\ParameterDefinitions\:\:buildAll\(\) expects array\, array\\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\CreateStatement\:\:\$fields \(array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\CreateStatement\:\:\$partitions \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\CreateStatement\:\:\$partitionsNum \(int\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\CreateStatement\:\:\$subpartitionsNum \(int\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/CreateStatement.php + + - + message: '#^Argument of an invalid type array\\|null supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/Statements/DeleteStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Statements/DeleteStatement.php + + - + message: '#^Parameter \#1 \$haystack of function stripos expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Statements/DeleteStatement.php + + - + message: '#^Cannot access property \$keyword on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Cannot access property \$value on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Class PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement has an uninitialized property \$statementAlias\. Give it default value or assign it in the constructor\.$#' + identifier: property.uninitialized + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Only booleans are allowed in an elseif condition, int\|null given\.$#' + identifier: elseif.condNotBoolean + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Only booleans are allowed in an if condition, PhpMyAdmin\\SqlParser\\Parser\|null given\.$#' + identifier: if.condNotBoolean + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement\:\:\$connectionId \(int\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement\:\:\$explainedDatabase \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement\:\:\$explainedTable \(string\|null\) does not accept bool\|float\|int\|string\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Strict comparison using \!\=\= between bool\|float\|int\|string and null will always evaluate to true\.$#' + identifier: notIdentical.alwaysTrue + count: 1 + path: src/Statements/ExplainStatement.php + + - + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean + count: 1 + path: src/Statements/KillStatement.php + + - + message: '#^Cannot access property \$keyword on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject + count: 2 + path: src/Statements/LoadStatement.php + + - + message: '#^Cannot access property \$token on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Statements/LoadStatement.php + + - + message: '#^Cannot access property \$type on PhpMyAdmin\\SqlParser\\Token\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Statements/LoadStatement.php + + - + message: '#^Comparison operation "\>\=" between int\<3, max\> and 3 is always true\.$#' + identifier: greaterOrEqual.alwaysTrue + count: 1 + path: src/Statements/LoadStatement.php + + - + message: '#^Parameter \#3 \$keyword of method PhpMyAdmin\\SqlParser\\Statements\\LoadStatement\:\:parseFileOptions\(\) expects string, bool\|float\|int\|string given\.$#' + identifier: argument.type + count: 1 + path: src/Statements/LoadStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\LoadStatement\:\:\$partition \(PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/LoadStatement.php + + - + message: '#^Cannot call method merge\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Statements/MaintenanceStatement.php + + - + message: '#^Call to function in_array\(\) requires parameter \#3 to be set\.$#' + identifier: function.strict count: 1 path: src/Statements/PurgeStatement.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\PurgeStatement\\:\\:\\$end_option \\(string\\|null\\) does not accept mixed\\.$#" + message: '#^Parameter \#1 \$component of static method PhpMyAdmin\\SqlParser\\Parsers\\RenameOperations\:\:buildAll\(\) expects array\, array\\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Statements/RenameStatement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$call\.$#' + identifier: property.notFound + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$fields\.$#' + identifier: property.notFound + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$renames\.$#' + identifier: property.notFound + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$set\.$#' + identifier: property.notFound + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$table\.$#' + identifier: property.notFound + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$tables\.$#' + identifier: property.notFound + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Access to an undefined property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$values\.$#' + identifier: property.notFound + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the right side\.$#' + identifier: booleanAnd.rightNotBoolean + count: 2 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statement\:\:\$options \(PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$endOptions \(PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$expr \(array\\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$from \(array\\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$group \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$groupOptions \(PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$having \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$indexHints \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$into \(PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$join \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$limit \(PhpMyAdmin\\SqlParser\\Components\\Limit\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$order \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$partition \(PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$procedure \(PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$union \(array\\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Property PhpMyAdmin\\SqlParser\\Statements\\SelectStatement\:\:\$where \(array\\|null\) does not accept array\\|PhpMyAdmin\\SqlParser\\Components\\ArrayObj\|PhpMyAdmin\\SqlParser\\Components\\Expression\|PhpMyAdmin\\SqlParser\\Components\\FunctionCall\|PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|PhpMyAdmin\\SqlParser\\Components\\Limit\|PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: assign.propertyType + count: 1 + path: src/Statements/SelectStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Statements/SetStatement.php + + - + message: '#^Parameter \#1 \$component of static method PhpMyAdmin\\SqlParser\\Parsers\\SetOperations\:\:buildAll\(\) expects array\, array\\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Statements/SetStatement.php + + - + message: '#^Argument of an invalid type array\\|null supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/Statements/TransactionStatement.php + + - + message: '#^Cannot call method build\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Statements/TransactionStatement.php + + - + message: '#^Cannot call method has\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 4 + path: src/Statements/TransactionStatement.php + + - + message: '#^Only booleans are allowed in &&, PhpMyAdmin\\SqlParser\\Token\|null given on the left side\.$#' + identifier: booleanAnd.leftNotBoolean + count: 4 + path: src/Statements/WithStatement.php + + - + message: '#^Only booleans are allowed in a negated boolean, int\|false given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Statements/WithStatement.php + + - + message: '#^Only booleans are allowed in an if condition, PhpMyAdmin\\SqlParser\\Parser\|null given\.$#' + identifier: if.condNotBoolean + count: 1 + path: src/Statements/WithStatement.php + + - + message: '#^Only booleans are allowed in an if condition, PhpMyAdmin\\SqlParser\\Token\|null given\.$#' + identifier: if.condNotBoolean + count: 1 + path: src/Statements/WithStatement.php + + - + message: '#^Parameter \#1 \$name of class PhpMyAdmin\\SqlParser\\Components\\WithKeyword constructor expects string, bool\|float\|int\|string given\.$#' + identifier: argument.type + count: 1 + path: src/Statements/WithStatement.php + + - + message: '#^Possibly invalid array key type bool\|float\|int\|string\.$#' + identifier: offsetAccess.invalidOffset + count: 1 + path: src/Statements/WithStatement.php + + - + message: '#^Possibly invalid array key type bool\|float\|int\|string\|null\.$#' + identifier: offsetAccess.invalidOffset + count: 2 + path: src/Statements/WithStatement.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 1 + path: src/Token.php + + - + message: '#^Only booleans are allowed in a negated boolean, int\<0, 16\> given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Token.php + + - + message: '#^Only booleans are allowed in a negated boolean, int\<0, 2\> given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Token.php + + - + message: '#^Only booleans are allowed in an if condition, int\<0, 1\> given\.$#' + identifier: if.condNotBoolean + count: 1 + path: src/Token.php + + - + message: '#^Only booleans are allowed in an if condition, int\<0, 8\> given\.$#' + identifier: if.condNotBoolean + count: 1 + path: src/Token.php + + - + message: '#^Only booleans are allowed in \|\|, int\<0, 2\> given on the right side\.$#' + identifier: booleanOr.rightNotBoolean + count: 1 + path: src/Token.php + + - + message: '#^Only booleans are allowed in \|\|, int\<0, 4\> given on the left side\.$#' + identifier: booleanOr.leftNotBoolean + count: 1 + path: src/Token.php + + - + message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/Tools/ContextGenerator.php + + - + message: '#^Offset 1 might not exist on array\{\}\|array\{non\-falsy\-string, non\-empty\-string, numeric\-string\}\.$#' + identifier: offsetAccess.notFound + count: 1 + path: src/Tools/ContextGenerator.php + + - + message: '#^Offset 2 might not exist on array\{\}\|array\{non\-falsy\-string, non\-empty\-string, numeric\-string\}\.$#' + identifier: offsetAccess.notFound + count: 1 + path: src/Tools/ContextGenerator.php + + - + message: '#^Parameter \#1 \$string of function trim expects string, mixed given\.$#' + identifier: argument.type + count: 1 + path: src/Tools/ContextGenerator.php + + - + message: '#^Parameter \#2 \.\.\.\$arrays of function array_merge expects array, list\\|false given\.$#' + identifier: argument.type + count: 1 + path: src/Tools/ContextGenerator.php + + - + message: '#^Method PhpMyAdmin\\SqlParser\\Tools\\CustomJsonSerializer\:\:extractObjectData\(\) has parameter \$ref with generic class ReflectionClass but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/Tools/CustomJsonSerializer.php + + - + message: '#^Parameter \#3 \$properties \(array\\) of method PhpMyAdmin\\SqlParser\\Tools\\CustomJsonSerializer\:\:extractObjectData\(\) should be contravariant with parameter \$properties \(array\) of method Zumba\\JsonSerializer\\JsonSerializer\:\:extractObjectData\(\)$#' + identifier: method.childParameterType + count: 1 + path: src/Tools/CustomJsonSerializer.php + + - + message: '#^Variable property access on object\.$#' + identifier: property.dynamicName + count: 1 + path: src/Tools/CustomJsonSerializer.php + + - + message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/Tools/TestGenerator.php + + - + message: '#^Binary operation "\." between mixed and ''/'' results in an error\.$#' + identifier: binaryOp.invalid + count: 1 + path: src/Tools/TestGenerator.php + + - + message: '#^Call to function in_array\(\) requires parameter \#3 to be set\.$#' + identifier: function.strict + count: 1 + path: src/Tools/TestGenerator.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 4 + path: src/Tools/TestGenerator.php + + - + message: '#^Parameter \#1 \$directory of function mkdir expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Tools/TestGenerator.php + + - + message: '#^Parameter \#1 \$filename of function is_dir expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Tools/TestGenerator.php + + - + message: '#^Parameter \#1 \$string of function substr expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/Tools/TestGenerator.php + + - + message: '#^Parameter \#1 \$offset \(int\) of method PhpMyAdmin\\SqlParser\\UtfString\:\:offsetSet\(\) should be contravariant with parameter \$offset \(int\|null\) of method ArrayAccess\\:\:offsetSet\(\)$#' + identifier: method.childParameterType + count: 1 + path: src/UtfString.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 3 + path: src/Utils/BufferedQuery.php + + - + message: '#^Call to function in_array\(\) requires parameter \#3 to be set\.$#' + identifier: function.strict + count: 1 + path: src/Utils/CLI.php + + - + message: '#^Method PhpMyAdmin\\SqlParser\\Utils\\CLI\:\:getopt\(\) should return array\\|false but returns \(array\\|string\|false\>\|false\)\.$#' + identifier: return.type + count: 1 + path: src/Utils/CLI.php + + - + message: '#^Only booleans are allowed in an if condition, string\|false\|null given\.$#' + identifier: if.condNotBoolean + count: 3 + path: src/Utils/CLI.php + + - + message: '#^Parameter \#1 \$context of static method PhpMyAdmin\\SqlParser\\Context\:\:load\(\) expects string, string\|false given\.$#' + identifier: argument.type + count: 1 + path: src/Utils/CLI.php + + - + message: '#^Parameter \#1 \$str of class PhpMyAdmin\\SqlParser\\Lexer constructor expects PhpMyAdmin\\SqlParser\\UtfString\|string, string\|false given\.$#' + identifier: argument.type + count: 2 + path: src/Utils/CLI.php + + - + message: '#^Parameter \$type of class PhpMyAdmin\\SqlParser\\Utils\\FormattingOptions constructor expects ''cli''\|''html''\|''text'', string\|false given\.$#' + identifier: argument.type + count: 1 + path: src/Utils/CLI.php + + - + message: '#^Using nullsafe property access "\?\-\>token" on left side of \?\? is unnecessary\. Use \-\> instead\.$#' + identifier: nullsafe.neverNull + count: 1 + path: src/Utils/Error.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 3 + path: src/Utils/Formatter.php + + - + message: '#^Method PhpMyAdmin\\SqlParser\\Utils\\Formatter\:\:toString\(\) should return string but returns mixed\.$#' + identifier: return.type + count: 1 + path: src/Utils/Formatter.php + + - + message: '#^Only booleans are allowed in an if condition, bool\|int given\.$#' + identifier: if.condNotBoolean + count: 1 + path: src/Utils/Formatter.php + + - + message: '#^Only booleans are allowed in \|\|, int\<0, 32\> given on the right side\.$#' + identifier: booleanOr.rightNotBoolean + count: 1 + path: src/Utils/Formatter.php + + - + message: '#^Only numeric types are allowed in pre\-increment, int\<0, max\>\|null given\.$#' + identifier: preInc.nonNumeric + count: 3 + path: src/Utils/Formatter.php + + - + message: '#^Parameter \#1 \$string of function htmlspecialchars expects string, mixed given\.$#' + identifier: argument.type + count: 2 + path: src/Utils/Formatter.php + + - + message: '#^Parameter \#1 \$string of method PhpMyAdmin\\SqlParser\\Utils\\Formatter\:\:escapeConsole\(\) expects string, mixed given\.$#' + identifier: argument.type + count: 4 + path: src/Utils/Formatter.php + + - + message: '#^Possibly invalid array key type bool\|float\|int\|string\.$#' + identifier: offsetAccess.invalidOffset + count: 7 + path: src/Utils/Formatter.php + + - + message: ''' + #^Access to deprecated property \$isDelete of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated + count: 1 + path: src/Utils/Query.php + + - + message: ''' + #^Access to deprecated property \$isExplain of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated + count: 1 + path: src/Utils/Query.php + + - + message: ''' + #^Access to deprecated property \$isReplace of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated + count: 1 + path: src/Utils/Query.php + + - + message: ''' + #^Access to deprecated property \$isSelect of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated + count: 1 + path: src/Utils/Query.php + + - + message: ''' + #^Access to deprecated property \$isShow of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated + count: 1 + path: src/Utils/Query.php + + - + message: '#^Argument of an invalid type array\\|null supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/Utils/Query.php + + - + message: '#^Argument of an invalid type array\\|null supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/Utils/Query.php + + - + message: '#^Call to function in_array\(\) requires parameter \#3 to be set\.$#' + identifier: function.strict + count: 2 + path: src/Utils/Query.php + + - + message: '#^Cannot access property \$dest on PhpMyAdmin\\SqlParser\\Components\\IntoKeyword\|null\.$#' + identifier: property.nonObject + count: 1 + path: src/Utils/Query.php + + - + message: '#^Cannot call method has\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 4 + path: src/Utils/Query.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 14 + path: src/Utils/Query.php + + - + message: '#^Method PhpMyAdmin\\SqlParser\\Utils\\Query\:\:getClauseStartOffset\(\) should return int but returns int\|null\.$#' + identifier: return.type + count: 1 + path: src/Utils/Query.php + + - + message: '#^Only numeric types are allowed in pre\-increment, int\|null given\.$#' + identifier: preInc.nonNumeric + count: 2 + path: src/Utils/Query.php + + - + message: '#^Cannot call method has\(\) on PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/Utils/Table.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 2 + path: src/Utils/Table.php + + - + message: '#^Method PhpMyAdmin\\SqlParser\\Utils\\Table\:\:getFields\(\) should return array\ but returns array\\.$#' + identifier: return.type + count: 1 + path: src/Utils/Table.php + + - + message: '#^Only booleans are allowed in a negated boolean, PhpMyAdmin\\SqlParser\\Components\\OptionsArray\|null given\.$#' + identifier: booleanNot.exprNotBoolean + count: 1 + path: src/Utils/Table.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 13 + path: tests/Builder/AlterStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 11 + path: tests/Builder/CallStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 34 + path: tests/Builder/CreateStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertFalse\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 4 + path: tests/Builder/CreateStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 5 + path: tests/Builder/CreateStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertIsArray\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Builder/CreateStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 8 + path: tests/Builder/CreateStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 13 + path: tests/Builder/CreateStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 10 + path: tests/Builder/DeleteStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 10 + path: tests/Builder/ExplainStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 6 + path: tests/Builder/LoadStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 7 + path: tests/Builder/LockStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Builder/PurgeStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Builder/RenameStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 4 + path: tests/Builder/ReplaceStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 28 + path: tests/Builder/SelectStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 15 + path: tests/Builder/SetStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Builder/StatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 1 + path: tests/Builder/StatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Statements/PurgeStatement.php + path: tests/Builder/TransactionStatementTest.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\PurgeStatement\\:\\:\\$log_type \\(string\\|null\\) does not accept mixed\\.$#" - count: 1 - path: src/Statements/PurgeStatement.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Builder/TruncateStatementTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation, array\\\\|null given\\.$#" - count: 1 - path: src/Statements/RenameStatement.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Builder/UpdateStatementTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\Array2d\\:\\:build\\(\\) expects array\\, array\\ given\\.$#" - count: 1 - path: src/Statements/ReplaceStatement.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertCount\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 6 + path: tests/Components/Array2dTest.php - - message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\ReplaceStatement\\:\\:\\$values \\(array\\\\|null\\) does not accept array\\\\.$#" - count: 1 - path: src/Statements/ReplaceStatement.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 8 + path: tests/Components/Array2dTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 4 + path: tests/Components/ArrayObjTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray, PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: src/Statements/SetStatement.php + path: tests/Components/ArrayObjTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\SetOperation\\:\\:build\\(\\) expects array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\SetOperation, array\\\\|null given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertIsArray\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Statements/SetStatement.php + path: tests/Components/ArrayObjTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 9 + path: tests/Components/CaseExpressionTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 5 + path: tests/Components/ConditionTest.php - - message: "#^Argument of an invalid type array\\\\|null supplied for foreach, only iterables are supported\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertCount\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Statements/TransactionStatement.php + path: tests/Components/CreateDefinitionTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 15 + path: tests/Components/CreateDefinitionTest.php - - message: "#^Cannot call method has\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall count: 4 - path: src/Statements/TransactionStatement.php + path: tests/Components/CreateDefinitionTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray, PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null given\\.$#" - count: 1 - path: src/Statements/TransactionStatement.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertIsArray\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 4 + path: tests/Components/CreateDefinitionTest.php - - message: "#^Parameter \\#1 \\$name of class PhpMyAdmin\\\\SqlParser\\\\Components\\\\WithKeyword constructor expects string, mixed given\\.$#" - count: 1 - path: src/Statements/WithStatement.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Components/CreateDefinitionTest.php - - message: "#^Argument of an invalid type array\\\\|false supplied for foreach, only iterables are supported\\.$#" - count: 1 - path: src/Tools/ContextGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Components/CreateDefinitionTest.php - - message: "#^Offset 1 does not exist on array\\{0\\?\\: string, 1\\?\\: non\\-empty\\-string, 2\\?\\: numeric\\-string\\}\\.$#" - count: 1 - path: src/Tools/ContextGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertCount\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Components/ExpressionArrayTest.php - - message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\?\\: non\\-empty\\-string, 2\\?\\: numeric\\-string\\}\\.$#" - count: 1 - path: src/Tools/ContextGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 4 + path: tests/Components/ExpressionArrayTest.php - - message: "#^Parameter \\#2 \\.\\.\\.\\$args of function array_merge expects array, array\\\\|false given\\.$#" - count: 1 - path: src/Tools/ContextGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 10 + path: tests/Components/ExpressionTest.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Tools\\\\CustomJsonSerializer\\:\\:extractObjectData\\(\\) has parameter \\$ref with generic class ReflectionClass but does not specify its types\\: T$#" - count: 1 - path: src/Tools/CustomJsonSerializer.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 6 + path: tests/Components/ExpressionTest.php - - message: "#^Argument of an invalid type array\\\\|false supplied for foreach, only iterables are supported\\.$#" - count: 1 - path: src/Tools/TestGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Components/FunctionCallTest.php - - message: "#^Parameter \\#1 \\$filename of function is_dir expects string, string\\|null given\\.$#" - count: 1 - path: src/Tools/TestGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Components/GroupKeywordTest.php - - message: "#^Parameter \\#1 \\$pathname of function mkdir expects string, string\\|null given\\.$#" - count: 1 - path: src/Tools/TestGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 6 + path: tests/Components/IntoKeywordTest.php - - message: "#^Parameter \\#1 \\$string of function substr expects string, string\\|null given\\.$#" - count: 1 - path: src/Tools/TestGenerator.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertCount\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Components/JoinKeywordTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 4 + path: tests/Components/JoinKeywordTest.php - - message: "#^Cannot access offset 'a' on mixed\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall count: 3 - path: src/Utils/CLI.php + path: tests/Components/JoinKeywordTest.php - - message: "#^Cannot access offset 'c' on mixed\\.$#" - count: 1 - path: src/Utils/CLI.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Components/JoinKeywordTest.php - - message: "#^Cannot access offset 'f' on mixed\\.$#" - count: 1 - path: src/Utils/CLI.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 42 + path: tests/Components/KeyTest.php - - message: "#^Cannot access offset 'h' on mixed\\.$#" - count: 3 - path: src/Utils/CLI.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 11 + path: tests/Components/KeyTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 27 + path: tests/Components/KeyTest.php - - message: "#^Cannot access offset 'q' on mixed\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Components/LimitTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 7 + path: tests/Components/LockExpressionTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Components/LockExpressionTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 9 - path: src/Utils/CLI.php + path: tests/Components/OptionsArrayTest.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\CLI\\:\\:readStdin\\(\\) should return string\\|false but returns string\\|false\\|null\\.$#" - count: 1 - path: src/Utils/CLI.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertFalse\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Components/OptionsArrayTest.php - - message: "#^Parameter \\#1 \\$context of static method PhpMyAdmin\\\\SqlParser\\\\Context\\:\\:load\\(\\) expects string, mixed given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/CLI.php + path: tests/Components/OptionsArrayTest.php - - message: "#^Parameter \\#1 \\$query of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Formatter\\:\\:format\\(\\) expects string, mixed given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Components/OptionsArrayTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/CLI.php + path: tests/Components/OrderKeywordTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Components/ParameterDefinitionTest.php - - message: "#^Parameter \\#1 \\$str of class PhpMyAdmin\\\\SqlParser\\\\Lexer constructor expects PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string, mixed given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 6 + path: tests/Components/PartitionDefinitionTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertFalse\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: src/Utils/CLI.php + path: tests/Components/PartitionDefinitionTest.php - - message: "#^Parameter \\#2 \\$options of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Formatter\\:\\:format\\(\\) expects array\\\\>\\|bool\\|string\\>, array\\ given\\.$#" - count: 1 - path: src/Utils/CLI.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Components/PartitionDefinitionTest.php - - message: "#^Argument of an invalid type array\\\\>\\|bool\\|string supplied for foreach, only iterables are supported\\.$#" - count: 1 - path: src/Utils/Formatter.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Components/ReferenceTest.php - - message: "#^Binary operation \"&\" between int and int\\|string results in an error\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/Formatter.php + path: tests/Components/ReferenceTest.php - - message: "#^Binary operation \"&\\=\" between array\\\\>\\|bool\\|string\\|null and array\\\\>\\|bool\\|string\\|null results in an error\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/Formatter.php + path: tests/Components/RenameOperationTest.php - - message: "#^Binary operation \"\\.\" between array\\\\>\\|bool\\|string and string results in an error\\.$#" - count: 1 - path: src/Utils/Formatter.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/Lexer/ContextTest.php - - message: "#^Cannot cast mixed to string\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: src/Utils/Formatter.php + path: tests/Lexer/ContextTest.php - - message: "#^Parameter \\#1 \\$input of function str_repeat expects string, array\\\\>\\|bool\\|string given\\.$#" - count: 1 - path: src/Utils/Formatter.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 14 + path: tests/Lexer/ContextTest.php - - message: "#^Parameter \\#2 \\$newFormats of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Formatter\\:\\:mergeFormats\\(\\) expects array\\\\>, array\\\\>\\|bool\\|string given\\.$#" - count: 1 - path: src/Utils/Formatter.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertFalse\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 5 + path: tests/Lexer/ContextTest.php - - message: "#^Trying to invoke int\\\\|int\\<1, max\\>\\|non\\-falsy\\-string but it might not be a callable\\.$#" - count: 1 - path: src/Utils/Formatter.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 7 + path: tests/Lexer/ContextTest.php - - message: "#^Argument of an invalid type array\\\\|null supplied for foreach, only iterables are supported\\.$#" - count: 1 - path: src/Utils/Query.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 5 + path: tests/Lexer/ContextTest.php - - message: "#^Argument of an invalid type array\\\\|null supplied for foreach, only iterables are supported\\.$#" - count: 1 - path: src/Utils/Query.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 28 + path: tests/Lexer/IsMethodsTest.php - - message: "#^Cannot access property \\$dest on PhpMyAdmin\\\\SqlParser\\\\Components\\\\IntoKeyword\\|null\\.$#" - count: 1 - path: src/Utils/Query.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertFalse\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 8 + path: tests/Lexer/IsMethodsTest.php - - message: "#^Cannot access property \\$keyword on PhpMyAdmin\\\\SqlParser\\\\Token\\|null\\.$#" - count: 1 - path: src/Utils/Query.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 10 + path: tests/Lexer/IsMethodsTest.php - - message: "#^Cannot call method has\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" - count: 4 - path: src/Utils/Query.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 23 + path: tests/Lexer/IsMethodsTest.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Query\\:\\:getClauseStartOffset\\(\\) should return int but returns int\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/Query.php + path: tests/Lexer/LexerTest.php - - message: "#^Cannot access offset 'value' on mixed\\.$#" - count: 3 - path: src/Utils/Routine.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 18 + path: tests/Lexer/TokenTest.php - - message: "#^Cannot assign new offset to array\\, mixed\\>\\|string\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertFalse\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/Routine.php + path: tests/Lexer/TokenTest.php - - message: "#^Parameter \\#2 \\$pieces of function implode expects array, array\\, mixed\\>\\|string given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/Routine.php + path: tests/Lexer/TokenTest.php - - message: "#^Cannot call method has\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" - count: 2 - path: src/Utils/Table.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 1 + path: tests/Lexer/TokensListTest.php - - message: "#^Parameter \\#3 \\$subject of function str_replace expects array\\|string, mixed given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: src/Utils/Table.php + path: tests/Lexer/TokensListTest.php - - message: "#^Binary operation \"&\" between int\\|string and int results in an error\\.$#" - count: 1 - path: src/Utils/Tokens.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 26 + path: tests/Lexer/TokensListTest.php - - message: "#^Cannot cast mixed to string\\.$#" - count: 1 - path: src/Utils/Tokens.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 8 + path: tests/Lexer/TokensListTest.php - - message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Tokens\\:\\:replaceTokens\\(\\) should return PhpMyAdmin\\\\SqlParser\\\\TokensList but returns PhpMyAdmin\\\\SqlParser\\\\TokensList\\|string\\.$#" - count: 1 - path: src/Utils/Tokens.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 9 + path: tests/Lexer/TokensListTest.php - - message: "#^Parameter \\#1 \\$str1 of function strcasecmp expects string, int\\|string given\\.$#" + message: '#^Parameter \#2 \$array of method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, PhpMyAdmin\\SqlParser\\TokensList given\.$#' + identifier: argument.type count: 1 - path: src/Utils/Tokens.php + path: tests/Lexer/TokensListTest.php + + - + message: '#^Parameter \#2 \$array of method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, PhpMyAdmin\\SqlParser\\TokensList given\.$#' + identifier: argument.type + count: 2 + path: tests/Lexer/TokensListTest.php - - message: "#^Parameter \\#2 \\$pattern of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Tokens\\:\\:match\\(\\) expects array\\, PhpMyAdmin\\\\SqlParser\\\\Token given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: src/Utils/Tokens.php + path: tests/Misc/UtfStringTest.php - - message: "#^Cannot call method __toString\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: tests/Builder/CreateStatementTest.php + path: tests/Misc/UtfStringTest.php - - message: "#^Cannot call method __toString\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" - count: 4 - path: tests/Builder/CreateStatementTest.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 7 + path: tests/Misc/UtfStringTest.php - - message: "#^Cannot call method isEmpty\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" - count: 4 - path: tests/Builder/CreateStatementTest.php + message: '#^Parameter \#2 \$array of method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, PhpMyAdmin\\SqlParser\\UtfString given\.$#' + identifier: argument.type + count: 1 + path: tests/Misc/UtfStringTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\CreateDefinition\\:\\:build\\(\\) expects array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\CreateDefinition, array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null given\\.$#" + message: '#^Parameter \#2 \$array of method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, PhpMyAdmin\\SqlParser\\UtfString given\.$#' + identifier: argument.type count: 2 - path: tests/Builder/CreateStatementTest.php + path: tests/Misc/UtfStringTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\ParameterDefinition\\:\\:build\\(\\) expects array\\, array\\\\|null given\\.$#" - count: 2 - path: tests/Builder/CreateStatementTest.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertCount\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 1 + path: tests/Parser/KillStatementTest.php - - message: "#^Cannot access offset 0 on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/ArrayObjTest.php + path: tests/Parser/KillStatementTest.php - - message: "#^Cannot access offset 0 on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/KillStatementTest.php - - message: "#^Cannot access offset 1 on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/LoadStatementTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 1 + path: tests/Parser/LoadStatementTest.php - - message: "#^Cannot access offset 2 on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\.$#" + message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertIsString\(\) with string will always evaluate to true\.$#' + identifier: method.alreadyNarrowedType + count: 1 + path: tests/Parser/ParserLongExportsTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/ParserLongExportsTest.php - - message: "#^Cannot access offset 5 on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertIsString\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/ParserLongExportsTest.php - - message: "#^Cannot access offset 6 on array\\\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/ParserLongExportsTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Parser/ParserTest.php - - message: "#^Cannot access property \\$name on PhpMyAdmin\\\\SqlParser\\\\Components\\\\DataType\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/SelectStatementTest.php - - message: "#^Cannot access property \\$name on PhpMyAdmin\\\\SqlParser\\\\Components\\\\Key\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/SelectStatementTest.php - - message: "#^Cannot access property \\$type on PhpMyAdmin\\\\SqlParser\\\\Components\\\\Key\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Components/CreateDefinitionTest.php + path: tests/Parser/TransactionStatementTest.php - - message: "#^Cannot call method has\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" - count: 2 - path: tests/Components/CreateDefinitionTest.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertCount\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 14 + path: tests/Parser/WithStatementTest.php - - message: "#^Cannot access property \\$alias on PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" - count: 2 - path: tests/Components/ExpressionTest.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 5 + path: tests/Parser/WithStatementTest.php + + - + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed + count: 1 + path: tests/TestCase.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 6 + path: tests/TestCase.php - - message: "#^Cannot access property \\$expr on PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 4 - path: tests/Components/ExpressionTest.php + path: tests/TestCase.php - - message: "#^Cannot access property \\$table on PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: tests/Components/ExpressionTest.php + path: tests/TestCase.php - - message: "#^Cannot cast mixed to string\\.$#" - count: 1 - path: tests/Components/OptionsArrayTest.php + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertIsArray\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 + path: tests/TestCase.php - - message: "#^Cannot access property \\$expr on PhpMyAdmin\\\\SqlParser\\\\Components\\\\Expression\\|string\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertIsList\(\)\.$#' + identifier: staticMethod.dynamicCall count: 2 - path: tests/Components/PartitionDefinitionTest.php + path: tests/TestCase.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertIsString\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/TestCase.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\RenameOperation, array\\ given\\.$#" + message: '#^Method PhpMyAdmin\\SqlParser\\Tests\\TestCase\:\:getData\(\) should return array\{query\: string, lexer\: PhpMyAdmin\\SqlParser\\Lexer, parser\: PhpMyAdmin\\SqlParser\\Parser\|null, errors\: array\{lexer\: list\, parser\: list\\}\} but returns non\-empty\-array\.$#' + identifier: return.type count: 1 - path: tests/Components/RenameOperationTest.php + path: tests/TestCase.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 8 + path: tests/Tools/ContextGeneratorTest.php - - message: "#^Cannot call method has\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Parser/LoadStatementTest.php + path: tests/Utils/BufferedQueryTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 7 + path: tests/Utils/CLITest.php - - message: "#^Argument of an invalid type array\\\\|null supplied for foreach, only iterables are supported\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Parser/ParserLongExportsTest.php + path: tests/Utils/CLITest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Utils/ErrorTest.php - - message: "#^Cannot call method has\\(\\) on PhpMyAdmin\\\\SqlParser\\\\Components\\\\OptionsArray\\|null\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall count: 1 - path: tests/Parser/SelectStatementTest.php + path: tests/Utils/ErrorTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 3 + path: tests/Utils/FormatterTest.php - - message: "#^Parameter \\#1 \\$component of static method PhpMyAdmin\\\\SqlParser\\\\Components\\\\WithKeyword\\:\\:build\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Components\\\\WithKeyword, stdClass given\\.$#" + message: ''' + #^Access to deprecated property \$isDelete of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated count: 1 - path: tests/Parser/WithStatementTest.php + path: tests/Utils/QueryTest.php - - message: "#^Cannot access offset int\\<0, max\\> on non\\-empty\\-array\\\\|false\\.$#" + message: ''' + #^Access to deprecated property \$isExplain of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated count: 1 - path: tests/Utils/BufferedQueryTest.php + path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, array\\\\|false given\\.$#" + message: ''' + #^Access to deprecated property \$isReplace of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated count: 1 - path: tests/Utils/BufferedQueryTest.php + path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#1 \\$statement of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Misc\\:\\:getAliases\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Statements\\\\SelectStatement, PhpMyAdmin\\\\SqlParser\\\\Statement\\|null given\\.$#" + message: ''' + #^Access to deprecated property \$isSelect of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated count: 1 - path: tests/Utils/MiscTest.php + path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#2 \\$database of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Misc\\:\\:getAliases\\(\\) expects string, string\\|null given\\.$#" + message: ''' + #^Access to deprecated property \$isShow of class PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\: + Use \{@see self\:\:\$queryType\} instead\.$# + ''' + identifier: property.deprecated count: 1 - path: tests/Utils/MiscTest.php + path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#2 \\$list of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Query\\:\\:getClause\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\TokensList, PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 25 + path: tests/Utils/QueryTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNotNull\(\)\.$#' + identifier: staticMethod.dynamicCall count: 9 path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#2 \\$list of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Query\\:\\:replaceClause\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\TokensList, PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null given\\.$#" - count: 5 + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertNull\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#2 \\$list of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Query\\:\\:replaceClauses\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\TokensList, PhpMyAdmin\\\\SqlParser\\\\TokensList\\|null given\\.$#" + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\)\.$#' + identifier: staticMethod.dynamicCall count: 3 path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#1 \\$statement of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Routine\\:\\:getParameters\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement, PhpMyAdmin\\\\SqlParser\\\\Statement given\\.$#" + message: '#^Parameter \#2 \$list of static method PhpMyAdmin\\SqlParser\\Utils\\Query\:\:replaceClause\(\) expects PhpMyAdmin\\SqlParser\\TokensList, PhpMyAdmin\\SqlParser\\TokensList\|null given\.$#' + identifier: argument.type count: 1 - path: tests/Utils/RoutineTest.php + path: tests/Utils/QueryTest.php - - message: "#^Parameter \\#1 \\$statement of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Table\\:\\:getFields\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement, PhpMyAdmin\\\\SqlParser\\\\Statement given\\.$#" + message: '#^Variable property access on PhpMyAdmin\\SqlParser\\Utils\\StatementFlags\.$#' + identifier: property.dynamicName count: 1 + path: tests/Utils/QueryTest.php + + - + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertEquals\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 path: tests/Utils/TableTest.php - - message: "#^Parameter \\#1 \\$statement of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Table\\:\\:getForeignKeys\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement, PhpMyAdmin\\\\SqlParser\\\\Statement given\\.$#" - count: 1 + message: '#^Dynamic call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\)\.$#' + identifier: staticMethod.dynamicCall + count: 2 path: tests/Utils/TableTest.php - - message: "#^Parameter \\#2 \\$find of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Tokens\\:\\:replaceTokens\\(\\) expects array\\, array\\\\> given\\.$#" - count: 1 - path: tests/Utils/TokensTest.php + message: '#^Call to method PhpMyAdmin\\SqlParser\\UtfString\:\:offsetGet\(\) on a separate line has no effect\.$#' + identifier: method.resultUnused + count: 4 + path: tests/benchmarks/UtfStringBench.php - - message: "#^Expression \"\\$str1\\[\\$i\\]\" on a separate line does not do anything\\.$#" + message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#' + identifier: empty.notAllowed count: 1 - path: tests/benchmarks/UtfStringBench.php + path: tools/TestGenerator.php diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 0cd1bb053..f6b921217 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -3,15 +3,15 @@ includes: parameters: level: max paths: - - bin/highlight-query - - bin/lint-query - bin/sql-parser - - bin/tokenize-query - src - tests - tools reportUnmatchedIgnoredErrors: true excludePaths: - tools/doctum-config.php - dynamicConstantNames: - - USE_UTF_STRINGS + checkBenevolentUnionTypes: true + checkUninitializedProperties: true + checkDynamicProperties: true + checkTooWideReturnTypesInProtectedAndPublicMethods: true + checkImplicitMixed: true diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 3c237e4ab..f50c1b293 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,20 +1,15 @@ - - - - - - + failOnRisky="true" + failOnWarning="true" + colors="true"> ./tests/Builder @@ -40,14 +35,20 @@ ./tests/Tools/contexts/ - - - src/ - - - - - - - + + + + src + + + + + + + + + + + + diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 1c6a3ecec..8a834e9ba 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,1699 +1,1210 @@ - - - - static::build($this) - - + - - $component->partitions - - - $arrayKey - - - $component - - - $options - - - - - $ret - - - ArrayObj[] - - - $component - - - $arr->values - - - - - $ret[] - - - - $token->value - - - $ret - ArrayObj|Component[] - - - $component - - - $ret - $ret - $ret - $ret - - - $ret->raw - $ret->raw - $ret->values - $ret->values - - - $ret - + + + - - ! $token->flags - - - $ret->compare_values - $ret->results - $ret->results - - - $ret->alias - - - $token->value - - - $component - - - Context::escape($component->alias) - + + alias]]> + - - static::$ALLOWED_KEYWORDS[$token->value] - - - string - - - $component->expr - - - $component->expr - - - $component - - - is_array($component) - + + + - - $expr->name - $expr->name - - - $component - - - Context::escape($component->name) - - - $component->options + + options]]> - - $component - - - $parameters->raw - $parameters->values - - - $name - $options - - - - - $prev[0] === null - empty($options['field']) - - - $options['breakOnParentheses'] - - - Parser::$STATEMENT_PARSERS[$token->keyword] - self::$ALLOWED_KEYWORDS[$token->keyword] - - - Parser::$STATEMENT_PARSERS[$token->keyword] - self::$ALLOWED_KEYWORDS[$token->keyword] - - - $field - $options['field'] - $ret->alias - $ret->alias - $ret->alias - $ret->subquery - - - $component - - - Context::escape($fields) - - - Context::escape($component->alias) - - - $ret->expr - $ret->expr - $ret->expr - $ret->expr - $ret->expr - $ret->expr + + name]]> + + + + options]]> - - ! $isExpr - $isExpr - $prev[1] !== null - empty($ret->function) && ($prev[1] !== null) - - - - $ret - - - Expression[] - - - $component - - - $expr - - - is_array($ret) - + + + alias)]]> + - - $token->value - - - $component - - - ArrayObj::parse($parser, $list) - - - $component->name - $component->parameters + + name]]> + parameters]]> - - $component - - - $expr - Expression::parse($parser, $list) - - - - - $expr->type - $expr->type - - - $component - - - $component->indexOrKey - $component->type - + + + - - $token->keyword - $token->keyword - - - $ret->dest - - - $component - - - ArrayObj::parse($parser, $list)->values - - - $component->fields_options - $component->lines_options - $token->keyword - $token->keyword - - - $component->dest + + dest]]> - - '' - - - static::$JOINS[$token->keyword] - static::$JOINS[$token->keyword] - static::$JOINS[$token->keyword] - static::$JOINS[$token->keyword] - - - static::$JOINS[$token->keyword] - static::$JOINS[$token->keyword] - static::$JOINS[$token->keyword] - static::$JOINS[$token->keyword] - - - $component - - - array_search($c->type, static::$JOINS) + + type, self::JOINS)]]> - - ArrayObj::parse($parser, $list) - - - static::$JOINS - static::$JOINS - - - $expr - $on - $type - $using - Expression::parse($parser, $list, ['field' => 'table']) - - - $state - $state - $state - + + expr]]> + + + on)]]> + - - $lastColumn['length'] - $lastColumn['name'] - $ret->name - $ret->type - - - $component - - - Context::escape($column['name']) - Context::escape($component->name) - - - $component->options - $component->options - $ret->expr - Expression::parse($parser, $list, ['parenthesesDelimited' => true]) + + options]]> + options]]> + type]]> - - $name - $type - - - $ret->columns - - - - - $ret->offset - $ret->rowCount - - - $component - + + name)]]> + - - $table - $type - - - $token->keyword - $token->keyword - - - $component - - - Expression::parse($parser, $list, ['parseField' => 'table']) - - - - - $option - $option - $option['name'] - $option['name'] - $ret->options[$lastOptionId]['name'] - empty($lastOption[2]) ? [] : $lastOption[2] - - - $options - - - $lastOption[1] - $lastOption[1] - $lastOption[2] - $ret->options[$lastOptionId]['expr'] - $ret->options[$lastOptionId]['name'] - $ret->options[$lastOptionId]['value'] - - - $ret->options[$lastOptionId]['equals'] - $ret->options[$lastOptionId]['expr'] - $ret->options[$lastOptionId]['expr'] - $ret->options[$lastOptionId]['value'] - $ret->options[$lastOptionId]['value'] - - - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - - - $ret->options[$lastOptionId] - $ret->options[$lastOptionId] - - - $lastOption - $lastOptionId - $option - $option - $option - $options[] - - - ! empty($option['expr']) ? $option['expr'] : $option['value'] - $option['name'] - $ret->options[$lastOptionId]['expr'] - $ret->options[$lastOptionId]['value'] - - - $ret->options - $ret->options - $ret->options - $ret->options - $ret->options - $ret->options - $ret->options - $ret->options - - - $component - - - empty($lastOption[2]) ? [] : $lastOption[2] - - - $lastOption[1] - $lastOption[2] - - - $ret->options[$lastOptionId]['expr']->expr - - - ! empty($option['equals']) && $option['equals'] - $option['equals'] - - - $options instanceof self - + + table]]> + type]]> + - - $component - - - $expr - Expression::parse($parser, $list) - + + expr]]> + - - $component->name - - - $expr->name - - - $component->inOut - $component->type - - - $component->inOut - $component->name - $component->type - - - $component - - - Context::escape($component->name) - - - $inOut - $name - $type - DataType::parse($parser, $list) - - - is_array($component) - isset($expr->name) - + + name]]> + + + type]]> + + + inOut)]]> + - - $expr - $isSubpartition - $name - $options - $subpartitions - $type - - - $ret->name - $ret->type - - - $ret->name - - - $component - - - - - $idx - + + expr]]> + name]]> + name]]> + options]]> + options]]> + + + + + + subpartitions)]]> + type)]]> + type)]]> + - - $component - - - Context::escape($component->columns) - - - ArrayObj::parse($parser, $list)->values - - - $options - $table - + + options]]> + table]]> + - - is_array($component) - - - $component - - - $component - - - $new - $old - - - - - $component - - - $tmp->expr - - - $token->value === ',' - - - - - $component - - - - - $component - + + new]]> + old]]> + - - [] + + - - $context::$KEYWORDS - - - $str - - - string|string[] - - - self::$KEYWORDS + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + last]]> + last]]> + last]]> + + + str[$this->last]]]> + + + type]]> + value]]> + value]]> + value]]> + + + value]]> + + + + + + + + + - - + + + union]]> + + + list)]]> + + + + + + + + token]]> + + + tokens[$list->idx]]]> + + + tokens]]> + + + + + idx]]> + idx]]> + + + + + + + + + + + count]]> + idx]]> + tokens]]> + keyword]]> + token]]> + type]]> + value]]> + + + + + + + + statements]]> + statements]]> + statements]]> + statements]]> + + + list]]> + + + + + + + + + PartitionDefinitions::class], + )]]> + + + + + + + field)]]> + - - + + + + - - + + + + + + + + + + + + + + + + + + + raw]]> + raw]]> + values]]> + values]]> + + + + + + + - - + + + flags]]> + + + compareValues]]> + results]]> + results]]> + + + value]]> + + + alias)]]> + alias)]]> + + + + + value]]> + value]]> + - - + + + raw]]> + values]]> + + + + + + name)]]> + - - + + + + + + + + + + + + + + + - - + + + + + + + + + + expr]]> + expr]]> + expr]]> + expr]]> + expr]]> + expr]]> + + + value]]> + value]]> + value]]> + value]]> + + + alias)]]> + alias)]]> + alias)]]> + database)]]> + function)]]> + subquery)]]> + + + + - - + + + + + + name]]> + + + + - - + + + type]]> + - - + + + values]]> + + + keyword]]> + keyword]]> + + + value]]> + - - + + + + + + + + + + type)]]> + + + + + expr]]> + true])]]> + + + columns]]> + value]]> + value]]> + + + + - - + + + value]]> + value]]> + - - - $this->last - $this->last - $this->last - - - $this->str[$this->last + 1] - $this->str[$this->last++] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] + + + options[$lastOptionId]['name']]]> + + + + + + - - $lastToken - $token + + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + options[$lastOptionId]]]> + + + options[$lastOptionId]]]> + options[$lastOptionId]]]> + + + + - - $lastToken->flags - $lastToken->token - $lastToken->value - $this->str[$this->last++] - $this->str[$this->last] - $token->flags - $token->value + + options[$lastOptionId]['expr']]]> + options[$lastOptionId]['value']]]> - - $lastToken - $lastToken - $lastToken - $lastToken - $token - $token - $token - $token - - - $lastToken->flags - $lastToken->token - $lastToken->type - $lastToken->type - $lastToken->value - $lastToken->value - $token->flags - $token->token - $token->token - $token->type - $token->type - $token->type - $token->value - $token->value - - - $list->tokens - $list->tokens - $list->tokens + + options]]> + options]]> + options]]> + options]]> + options]]> + options]]> - - null - - - $msg - - - $flags - $this->str[$this->last + 1] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $token - $token - $token - $token - $token + + options[$lastOptionId]['equals']]]> + options[$lastOptionId]['expr']]]> + options[$lastOptionId]['expr']]]> + options[$lastOptionId]['expr']]]> + options[$lastOptionId]['expr']]]> + options[$lastOptionId]['name']]]> + options[$lastOptionId]['value']]]> + options[$lastOptionId]['value']]]> + options[$lastOptionId]['value']]]> + + + - - $this->delimiter - $this->str[$this->last++] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[$this->last] - $this->str[++$this->last] - $this->str[++$this->last] - $this->str[++$this->last] - $this->str[++$this->last] - $this->str[++$this->last] - - - null - - - $next->type - $next->value - $next->value - $next->value - - - USE_UTF_STRINGS + + + + + + options]]> + options]]> + options]]> + + + + + + + + + value]]> + + + + + value]]> + self::class], + )]]> + + + + + + - - - $lastStatement->union - - - new $class($this, $this->list) - - - static::$STATEMENT_PARSERS[$statementName ?? $token->keyword] - static::$STATEMENT_PARSERS[$token->keyword] - - - static::$STATEMENT_PARSERS[$statementName ?? $token->keyword] - static::$STATEMENT_PARSERS[$token->keyword] - - - $msg - - - $list - $list - $list - $token->token - - - $list->tokens[$list->idx] - - - $list->tokens - static::$STATEMENT_PARSERS - - - $list->idx - $list->idx - $prevLastIdx - - - $list - $list - - - $lastIdx + + + values]]> + + + + + expr]]> - - $list->count - $list->idx - $list->tokens - $token->keyword - $token->token - $token->type - $token->value - - - getNextOfType - getNextOfType - getNextOfType - - - string - + + value === ',']]> + - - $class === null - count($clauses) === 0 - - - $built[$field] - $parsedClauses[$token->value] - - - $class::parse($parser, $list, $options) - - - $parsedClauses[$token->value] - $parsedClauses[$token->value] - Parser::$KEYWORD_PARSERS[$token->value] - Parser::$KEYWORD_PARSERS[$tokenValue] - Parser::$STATEMENT_PARSERS[$token->keyword] - Parser::$STATEMENT_PARSERS[$token->value] - static::$CLAUSES[$token->value] - static::$OPTIONS[$token->value] - - - Parser::$KEYWORD_PARSERS[$tokenValue] - Parser::$STATEMENT_PARSERS[$token->keyword] - - - $tokenValue - - - $class::build($this->$field) + + $field]]> + $field]]> + $field]]> + $field]]> + $field]]> + $field]]> + $field]]> + $field]]> + $field]]> + $field]]> + $field]]> + + + + + + + $field->build()]]> - - Parser::$KEYWORD_PARSERS[$name]['class'] - Parser::$KEYWORD_PARSERS[$name]['field'] - Parser::$KEYWORD_PARSERS[$tokenValue]['class'] - Parser::$KEYWORD_PARSERS[$tokenValue]['field'] - - - $class !== null - - - count($clauses) === 0 - - - $index - + + ]]> + + + + + + + + + + + + + + $field)]]> + $field)]]> + $field)]]> + $field)]]> + $field)]]> + - - $tmp + + - - $altered - $tmp[] + + + - - $altered::build($altered) + + - - $this->options - $this->table - - - $this->altered + + altered]]> + + + + + + + + + + + + - - $this->call->name + + call->name]]> - - $this->call->name - $this->call->parameters + + call->name]]> + call->parameters]]> - - $this->name === '' - $this->name === '' - - - $this->$field + + $field]]> - - $this->partitionsNum - $this->subpartitionsNum - - - $this->$field + + $field]]> - - $brackets - $brackets - - - $this->entityOptions - $this->entityOptions - $this->entityOptions - $this->entityOptions - $this->entityOptions - $this->name - $this->name - $this->name - $this->name - $this->name - $this->name - $this->name - $this->name - $this->name - $this->options - $this->parameters - $this->return - $this->table + + + + + + parameters]]> - - $token->value - $token->value + + references->table->database]]> + references->table->table]]> + value]]> + value]]> - - has + + + + + + + + + + + + + + + + + + + + - - ArrayObj::parse($parser, $list) + + value]]> + value]]> + PartitionDefinitions::class], + )]]> + - - $this->fields instanceof ArrayObj - + + fields)]]> + partitionBy)]]> + partitionBy)]]> + partitions)]]> + partitionsNum)]]> + subpartitionBy)]]> + subpartitionsNum)]]> + - - $this->order - - - $token->keyword - - - $fromExpr + + - - $fromExpr - $fromExpr - $fromExpr + + + + - - $fromExpr->column - $fromExpr->table + + column]]> + table]]> - - $this->options - $token->keyword + + keyword]]> - - $this->from + + from]]> + + + + + + + + + + + - - $this->connectionId - $this->explainedColumn - $this->explainedDatabase - $this->explainedTable - - - Context::escape($this->explainedColumn) - Context::escape($this->explainedDatabase) - Context::escape($this->explainedTable) - Context::escape($this->explainedTable) - - - $nextToken->keyword - $nextToken->value + + keyword]]> + value]]> - - $statementAlias + + + + value]]> + value]]> + value]]> + + + + value !== null]]> + + + connectionId]]> + - - $this->into - $this->options + + into]]> + options]]> + + + - - $token->value - - - ArrayObj::parse($parser, $list) + + value]]> + + + + + + - - $this->fields_options - $this->file_name - $this->lines_rows - $this->options - $this->table + + fieldsOptions]]> + fileName]]> + linesRows]]> + options]]> + table]]> - - $nextToken->keyword - $nextToken->token - $nextToken->type + + keyword]]> + token]]> + type]]> + + + + + + + + + + + - - merge + + + + + + + + + + - - Expression::parse($parser, $list, []) - - - $this->end_option - $this->log_type - - - $this->end_expr - $this->log_type + + endExpr]]> + logType]]> - - $this->renames - + + renames]]> + - - $this->values - - - Array2d::parse($parser, $list) - - - $this->into - $this->options + + into]]> + options]]> + + + column]]]> + column]]]> + table]]]> + + + + |string|null>>|null>>]]> + + + + + + + + + + + + + join)]]> + + - - $this->end_options - $this->options - $this->set + + set]]> + + + - - $statement + + - - build + + - - $statement->build() + + build()]]> - - $this->options - - - $this->statements + + statements]]> - - has + + + - - $this->table + + table]]> + + + + + + - - $wither - - - $wither - - - $this->withers - $this->withers + + + + + withers[$wither]]]> + withers[$wither]]]> + withers[$wither]]]> + + + withers]]> + withers]]> + + + - - - is_array($list) - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - $data[$property] - $data[$property] + + + - - $properties + + - - CustomJsonSerializer + + + + + - - $debug + + + + + + + + - - $debugFile - $debugFile + + + + + + - - - - self::$loader === null - - - self::$translator !== null - + + + errors)]]> + + - - $this->status + + status]]> - - string|false - - - getopt($opt, $long) + + + + + - - string[]|false[]|false + + - - $params['c'] - $params['q'] - $params['q'] - $params['q'] - - - $idx - ['type' => $params['f']] + + - - $params['c'] - $params['f'] - $params['q'] - $params['q'] - $params['q'] - - - $params['q'] - $params['q'] - $params['q'] - - - $params - $params - $params - - - $stdin - - - $params - $params + + + + + + + + + + - - $err[0] - $err[1] - $err[3] + + + + - - $obj instanceof Parser + + + + + + + + + + + + + - - $text - $text - $text - $text - $text - $text + + tokens[$list->idx - 2]->value]]]> + tokens[$list->idx - 4]->value]]]> + tokens[$list->idx - 6]->value]]]> + value]]]> + + + + + + + + - - $format['cli'] - $format['cli'] - $format['cli'] - $format['flags'] - $format['flags'] - $format['function'] - $format['html'] - $format['type'] - - - JoinKeyword::$JOINS[$list->tokens[$list->idx - 2]->value] - JoinKeyword::$JOINS[$list->tokens[$list->idx - 4]->value] - JoinKeyword::$JOINS[$list->tokens[$list->idx - 6]->value] - JoinKeyword::$JOINS[$prev->value] - Parser::$KEYWORD_PARSERS[$token->keyword] - Parser::$STATEMENT_PARSERS[$token->keyword] - self::$INLINE_CLAUSES[$lastClause] - self::$INLINE_CLAUSES[$lastClause] - self::$SHORT_CLAUSES[$lastClause] + + + + - - Parser::$KEYWORD_PARSERS[$token->keyword] - Parser::$STATEMENT_PARSERS[$token->keyword] - self::$INLINE_CLAUSES[$lastClause] - self::$INLINE_CLAUSES[$lastClause] - self::$SHORT_CLAUSES[$lastClause] + + + + - - $blocksLineEndings[] - $format - $func - $lastClause - $lineEnded - $prev - $text + + + + - - $func($text) - - - string - - - $format['cli'] - $format['flags'] - $format['html'] - array_pop($blocksLineEndings) + + - - $text + + + - - $options['formats'] - $this->options['indentation'] - - - $this->options['formats'] - - - $curr->type === Token::TYPE_KEYWORD - - - - - ! ($statement instanceof SelectStatement) - - - $tables[$thisDb][$expr->table] - - - $tables[$thisDb] + + + + + + + + + + + + - - int + + - - $expr - $expr->function - - - $clauses[$token->keyword] - $clauses[$token->keyword] - $tableAliases[$expr->table] + + table]]]> - - $clauses[$token->keyword] - $clauses[$token->keyword] - - - $expr - $expressions[] - $rename + + + + + - - $expr - $expr + + + + + + - - $expr->table - $rename->old + + table]]> + old]]> - - $i + + + ]]> + + + - - $list->tokens - $list->tokens + + + + + tokens]]> + tokens]]> - - $expressions - $statement->renames + + + renames]]> - - $i - $i + + + - - $lexer->list->getNextOfType(Token::TYPE_KEYWORD)->keyword - $statement->into->dest + + into->dest]]> - - has - has - has + + + + - - - - $options - $options - $retval['opts'][$idx] - - - $opt['value'] - $opt['value'] - $opt['value'] - - - $opt - $opt - $opt - $options[] - $options[] - $retval['opts'][$idx][] - + + function)]]> + subquery)]]> + group)]]> + group)]]> + having)]]> + having)]]> + join)]]> + join)]]> + order)]]> + - - $opt - $opt - - - $opt - $opt - $option - $option - $option - $ret[$field->name]['default_value'] - $ret[$field->name]['expr'] - - - $ret + + + + + ]]> + + + + + + + + - - has - has + + + + fields)]]> + - - - $find[$k] + + + - - $isList ? new TokensList($newList) : TokensList::build($newList) - - - TokensList - - - $list->tokens[$j] - - - $newList - $newList - - - $list->tokens[$i] - $list->tokens[$i] - $list->tokens[$i] - $list->tokens[$j] - $list->tokens[$j] - - - $newList[] - $newList[] - - - $list->tokens[$i]->type - $list->tokens[$j]->type - - - $list - $pattern['value_str'] - - - $pattern['flags'] - - - $list->count - $list->tokens - - - $list->count - $list->tokens - - - - - $stmt->fields - $stmt->fields - - - $stmt->parameters - $stmt->parameters - - - __toString - __toString - isEmpty - isEmpty - isEmpty - isEmpty - - - - $components - $components - - - - - $parser->statements[0]->fields[0] - $parser->statements[0]->fields[1] - $parser->statements[0]->fields[2] - $parser->statements[1]->fields[2] - $parser->statements[1]->fields[5] - $parser->statements[1]->fields[6] - - - $parser->statements[0]->fields[0] - $parser->statements[0]->fields[1] - $parser->statements[0]->fields[2] - $parser->statements[1]->fields[2] - $parser->statements[1]->fields[5] - $parser->statements[1]->fields[6] - - - $parser->statements[0]->fields[0] - $parser->statements[0]->fields[1] - $parser->statements[0]->fields[2] - $parser->statements[1]->fields[2] - $parser->statements[1]->fields[5] - $parser->statements[1]->fields[6] - - - $component[0]->type->name - $component[1]->key->name - $component[1]->key->type - - - $parser->statements[0]->fields - $parser->statements[0]->fields - $parser->statements[0]->fields - $parser->statements[1]->fields - $parser->statements[1]->fields - $parser->statements[1]->fields - has - - - $parser->statements[0]->fields - $parser->statements[0]->fields - $parser->statements[0]->fields - $parser->statements[1]->fields - $parser->statements[1]->fields - $parser->statements[1]->fields - - - - - $component->alias - $component->alias - $component->expr - $component->expr - $component->expr - $component->expr - $component->table - $component->table - - - - - assertNull - assertNull - assertNull - - - - - assertNull - assertNull - - - - - assertNotNull - assertNotNull - - - - - $component->expr->expr - $component->expr->expr - - - - - $component + + + + + - - - has - - - - - $transactionStatement - - - $statement->statements - + + + + - - - has - + + + + + + - - - new stdClass() + + + - - $data - - + + + + + , parser: list} + * }]]> + - - - $statement - - - $db - $statement - + + + + + + + + + + + + - - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list - $parser->list + + list]]> - - $delimiter - $delimiter - $query - - - - - $parser->statements[0] - - - - - $parser->statements[0] - $parser->statements[0] - - - - - $find - - - - $testContents - + + + + diff --git a/psalm.xml b/psalm.xml index 5521178dc..1879e8d9b 100644 --- a/psalm.xml +++ b/psalm.xml @@ -1,17 +1,18 @@ - - - @@ -24,4 +25,14 @@ + + + + + + + + + + diff --git a/src/Component.php b/src/Component.php index 5bf01b55d..65b600a9e 100644 --- a/src/Component.php +++ b/src/Component.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser; -use Exception; use Stringable; /** @@ -15,59 +14,12 @@ * * A component (of a statement) is a part of a statement that is common to multiple query types. */ -abstract class Component implements Stringable +interface Component extends Stringable { - /** - * Parses the tokens contained in the given list in the context of the given - * parser. - * - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return mixed - * - * @throws Exception not implemented yet. - */ - public static function parse( - Parser $parser, - TokensList $list, - array $options = [] - ) { - // This method should be abstract, but it can't be both static and - // abstract. - throw new Exception(Translator::gettext('Not implemented yet.')); - } - /** * Builds the string representation of a component of this type. * - * In other words, this function represents the inverse function of - * `static::parse`. - * - * @param mixed $component the component to be built - * @param array $options parameters for building - * - * @return mixed - * - * @throws Exception not implemented yet. - */ - public static function build($component, array $options = []) - { - // This method should be abstract, but it can't be both static and - // abstract. - throw new Exception(Translator::gettext('Not implemented yet.')); - } - - /** - * Builds the string representation of a component of this type. - * - * @see static::build - * - * @return string + * In other words, this function represents the inverse function of {@see Component::parse()}. */ - public function __toString() - { - return static::build($this); - } + public function build(): string; } diff --git a/src/Components/AlterOperation.php b/src/Components/AlterOperation.php index fcd40c327..2d61777bc 100644 --- a/src/Components/AlterOperation.php +++ b/src/Components/AlterOperation.php @@ -5,312 +5,45 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\PartitionDefinitions; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; -use function array_key_exists; -use function in_array; -use function is_int; -use function is_string; use function trim; /** * Parses an alter operation. - * - * @final */ -class AlterOperation extends Component +final class AlterOperation implements Component { - /** - * All database options. - * - * @var array> - * @psalm-var array [ - 1, - 'var', - ], - 'CHARSET' => [ - 1, - 'var', - ], - 'DEFAULT CHARACTER SET' => [ - 1, - 'var', - ], - 'DEFAULT CHARSET' => [ - 1, - 'var', - ], - 'UPGRADE' => [ - 1, - 'var', - ], - 'COLLATE' => [ - 2, - 'var', - ], - 'DEFAULT COLLATE' => [ - 2, - 'var', - ], - ]; - - /** - * All table options. - * - * @var array> - * @psalm-var array [ - 1, - 'var=', - ], - 'ALGORITHM' => [ - 1, - 'var=', - ], - 'AUTO_INCREMENT' => [ - 1, - 'var=', - ], - 'AVG_ROW_LENGTH' => [ - 1, - 'var', - ], - 'COALESCE PARTITION' => [ - 1, - 'var', - ], - 'LOCK' => [ - 1, - 'var=', - ], - 'MAX_ROWS' => [ - 1, - 'var', - ], - 'ROW_FORMAT' => [ - 1, - 'var', - ], - 'COMMENT' => [ - 1, - 'var', - ], - 'ADD' => 1, - 'ALTER' => 1, - 'ANALYZE' => 1, - 'CHANGE' => 1, - 'CHARSET' => 1, - 'CHECK' => 1, - 'CONVERT' => 1, - 'DEFAULT CHARSET' => 1, - 'DISABLE' => 1, - 'DISCARD' => 1, - 'DROP' => 1, - 'ENABLE' => 1, - 'IMPORT' => 1, - 'MODIFY' => 1, - 'OPTIMIZE' => 1, - 'ORDER' => 1, - 'REBUILD' => 1, - 'REMOVE' => 1, - 'RENAME' => 1, - 'REORGANIZE' => 1, - 'REPAIR' => 1, - 'UPGRADE' => 1, - - 'COLUMN' => 2, - 'CONSTRAINT' => 2, - 'DEFAULT' => 2, - 'BY' => 2, - 'FOREIGN' => 2, - 'FULLTEXT' => 2, - 'KEY' => [ - 2, - 'var', - ], - 'KEYS' => 2, - 'PARTITION' => 2, - 'PARTITION BY' => 2, - 'PARTITIONING' => 2, - 'PRIMARY KEY' => 2, - 'SPATIAL' => 2, - 'TABLESPACE' => 2, - 'INDEX' => [ - 2, - 'var', - ], - - 'CHARACTER SET' => 3, - 'TO' => [ - 3, - 'var', - ], - ]; - - /** - * All user options. - * - * @var array> - * @psalm-var array [ - 1, - 'var', - ], - 'COMMENT' => [ - 1, - 'var', - ], - 'REQUIRE' => [ - 1, - 'var', - ], - - 'IDENTIFIED VIA' => [ - 2, - 'var', - ], - 'IDENTIFIED WITH' => [ - 2, - 'var', - ], - 'PASSWORD' => [ - 2, - 'var', - ], - 'WITH' => [ - 2, - 'var', - ], - - 'BY' => [ - 4, - 'expr', - ], - - 'ACCOUNT' => 1, - 'DEFAULT' => 1, - - 'LOCK' => 2, - 'UNLOCK' => 2, - - 'IDENTIFIED' => 3, - ]; - - /** - * All view options. - * - * @var array> - * @psalm-var array 1]; - - /** - * All event options. - * - * @var array> - * @psalm-var array 1, - 'EVERY' => [ - 2, - 'expr', - ], - 'AT' => [ - 2, - 'expr', - ], - 'STARTS' => [ - 3, - 'expr', - ], - 'ENDS' => [ - 4, - 'expr', - ], - 'ON COMPLETION PRESERVE' => 5, - 'ON COMPLETION NOT PRESERVE' => 5, - 'RENAME' => 6, - 'TO' => [7, 'expr', ['parseField' => 'table', 'breakOnAlias' => true]], - 'ENABLE' => 8, - 'DISABLE' => 8, - 'DISABLE ON SLAVE' => 8, - 'COMMENT' => [ - 9, - 'var', - ], - 'DO' => 10, - ]; - - /** - * All routine (procedure or function) options. - * - * @var array> - * @psalm-var array [ - 1, - 'var', - ], - 'LANGUAGE SQL' => 2, - 'CONTAINS SQL' => 3, - 'NO SQL' => 3, - 'READS SQL DATA' => 3, - 'MODIFIES SQL DATA' => 3, - 'SQL SECURITY' => 4, - 'DEFINER' => 5, - 'INVOKER' => 5, - ]; - /** * Options of this operation. - * - * @var OptionsArray */ - public $options; + public OptionsArray|null $options = null; /** * The altered field. - * - * @var Expression|string|null */ - public $field; + public Expression|string|null $field = null; /** * The partitions. * - * @var Component[]|ArrayObj|null - */ - public $partitions; - - /** - * Unparsed tokens. - * - * @var Token[]|string + * @var PartitionDefinition[]|null */ - public $unknown = []; + public array|null $partitions = null; /** - * @param OptionsArray $options options of alter operation - * @param Expression|string|null $field altered field - * @param Component[]|ArrayObj|null $partitions partitions definition found in the operation - * @param Token[] $unknown unparsed tokens found at the end of operation + * @param OptionsArray|null $options options of alter operation + * @param Expression|string|null $field altered field + * @param PartitionDefinition[]|null $partitions partitions definition found in the operation + * @param Token[] $unknown unparsed tokens found at the end of operation */ public function __construct( - $options = null, - $field = null, - $partitions = null, - $unknown = [] + OptionsArray|null $options = null, + Expression|string|null $field = null, + array|null $partitions = null, + public array $unknown = [], ) { $this->partitions = $partitions; $this->options = $options; @@ -318,300 +51,33 @@ public function __construct( $this->unknown = $unknown; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return AlterOperation - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ options ]---------------------> 1 - * - * 1 ----------------------[ field ]----------------------> 2 - * - * 1 -------------[ PARTITION / PARTITION BY ]------------> 3 - * - * 2 -------------------------[ , ]-----------------------> 0 - * - * @var int - */ - $state = 0; - - /** - * partition state. - * - * @var int - */ - $partitionState = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping comments. - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - // Skipping whitespaces. - if ($token->type === Token::TYPE_WHITESPACE) { - if ($state === 2) { - // When parsing the unknown part, the whitespaces are - // included to not break anything. - $ret->unknown[] = $token; - continue; - } - } - - if ($state === 0) { - $ret->options = OptionsArray::parse($parser, $list, $options); - - // Not only when aliasing but also when parsing the body of an event, we just list the tokens of the - // body in the unknown tokens list, as they define their own statements. - if ($ret->options->has('AS') || $ret->options->has('DO')) { - for (; $list->idx < $list->count; ++$list->idx) { - if ($list->tokens[$list->idx]->type === Token::TYPE_DELIMITER) { - break; - } - - $ret->unknown[] = $list->tokens[$list->idx]; - } - - break; - } - - $state = 1; - if ($ret->options->has('PARTITION') || $token->value === 'PARTITION BY') { - $state = 3; - $list->getPrevious(); // in order to check whether it's partition or partition by. - } - } elseif ($state === 1) { - $ret->field = Expression::parse( - $parser, - $list, - [ - 'breakOnAlias' => true, - 'parseField' => 'column', - ] - ); - if ($ret->field === null) { - // No field was read. We go back one token so the next - // iteration will parse the same token, but in state 2. - --$list->idx; - } - - // If the operation is a RENAME COLUMN, now we have detected the field to rename, we need to parse - // again the options to get the new name of the column. - if ($ret->options->has('RENAME') && $ret->options->has('COLUMN')) { - $nextOptions = OptionsArray::parse($parser, $list, $options); - $ret->options->merge($nextOptions); - } - - $state = 2; - } elseif ($state === 2) { - if (is_string($token->value) || is_int($token->value)) { - $arrayKey = $token->value; - } else { - $arrayKey = $token->token; - } - - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - ++$brackets; - } elseif ($token->value === ')') { - --$brackets; - } elseif (($token->value === ',') && ($brackets === 0)) { - break; - } - } elseif ( - ! self::checkIfTokenQuotedSymbol($token) && - $token->type !== Token::TYPE_STRING && - $token->value !== 'CHECK' - ) { - if (isset(Parser::$STATEMENT_PARSERS[$arrayKey]) && Parser::$STATEMENT_PARSERS[$arrayKey] !== '') { - $list->idx++; // Ignore the current token - $nextToken = $list->getNext(); - - if ($token->value === 'SET' && $nextToken !== null && $nextToken->value === '(') { - // To avoid adding the tokens between the SET() parentheses to the unknown tokens - $list->getNextOfTypeAndValue(Token::TYPE_OPERATOR, ')'); - } elseif ($token->value === 'SET' && $nextToken !== null && $nextToken->value === 'DEFAULT') { - // to avoid adding the `DEFAULT` token to the unknown tokens. - ++$list->idx; - } else { - // We have reached the end of ALTER operation and suddenly found - // a start to new statement, but have not found a delimiter between them - $parser->error( - 'A new statement was found, but no delimiter between it and the previous one.', - $token - ); - break; - } - } elseif ( - (array_key_exists($arrayKey, self::$DB_OPTIONS) - || array_key_exists($arrayKey, self::$TABLE_OPTIONS)) - && ! self::checkIfColumnDefinitionKeyword($arrayKey) - ) { - // This alter operation has finished, which means a comma - // was missing before start of new alter operation - $parser->error('Missing comma before start of a new alter operation.', $token); - break; - } - } - - $ret->unknown[] = $token; - } elseif ($state === 3) { - if ($partitionState === 0) { - $list->idx++; // Ignore the current token - $nextToken = $list->getNext(); - if ( - ($token->type === Token::TYPE_KEYWORD) - && (($token->keyword === 'PARTITION BY') - || ($token->keyword === 'PARTITION' && $nextToken && $nextToken->value !== '(')) - ) { - $partitionState = 1; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'PARTITION')) { - $partitionState = 2; - } - - --$list->idx; // to decrease the idx by one, because the last getNext returned and increased it. - - // reverting the effect of the getNext - $list->getPrevious(); - $list->getPrevious(); - - ++$list->idx; // to index the idx by one, because the last getPrevious returned and decreased it. - } elseif ($partitionState === 1) { - // Fetch the next token in a way the current index is reset to manage whitespaces in "field". - $currIdx = $list->idx; - ++$list->idx; - $nextToken = $list->getNext(); - $list->idx = $currIdx; - // Building the expression used for partitioning. - if (empty($ret->field)) { - $ret->field = ''; - } - - if ( - $token->type === Token::TYPE_OPERATOR - && $token->value === '(' - && $nextToken - && $nextToken->keyword === 'PARTITION' - ) { - $partitionState = 2; - --$list->idx; // Current idx is on "(". We need a step back for ArrayObj::parse incoming. - } else { - $ret->field .= $token->type === Token::TYPE_WHITESPACE ? ' ' : $token->token; - } - } elseif ($partitionState === 2) { - $ret->partitions = ArrayObj::parse( - $parser, - $list, - ['type' => PartitionDefinition::class] - ); - } - } - } - - if ($ret->options->isEmpty()) { - $parser->error('Unrecognized alter operation.', $list->tokens[$list->idx]); - } - - --$list->idx; - - return $ret; - } - - /** - * @param AlterOperation $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { // Specific case of RENAME COLUMN that insert the field between 2 options. $afterFieldsOptions = new OptionsArray(); - if ($component->options->has('RENAME') && $component->options->has('COLUMN')) { - $afterFieldsOptions = clone $component->options; + if ($this->options->has('RENAME') && $this->options->has('COLUMN')) { + $afterFieldsOptions = clone $this->options; $afterFieldsOptions->remove('RENAME'); $afterFieldsOptions->remove('COLUMN'); - $component->options->remove('TO'); + $this->options->remove('TO'); } - $ret = $component->options . ' '; - if (isset($component->field) && ($component->field !== '')) { - $ret .= $component->field . ' '; + $ret = $this->options . ' '; + if (isset($this->field) && ($this->field !== '')) { + $ret .= $this->field . ' '; } - $ret .= $afterFieldsOptions . TokensList::build($component->unknown); + $ret .= $afterFieldsOptions . TokensList::buildFromArray($this->unknown); - if (isset($component->partitions)) { - $ret .= PartitionDefinition::build($component->partitions); + if (isset($this->partitions)) { + $ret .= PartitionDefinitions::buildAll($this->partitions); } return trim($ret); } - /** - * Check if token's value is one of the common keywords - * between column and table alteration - * - * @param string $tokenValue Value of current token - * - * @return bool - */ - private static function checkIfColumnDefinitionKeyword($tokenValue) - { - $commonOptions = [ - 'AUTO_INCREMENT', - 'COMMENT', - 'DEFAULT', - 'CHARACTER SET', - 'COLLATE', - 'PRIMARY', - 'UNIQUE', - 'PRIMARY KEY', - 'UNIQUE KEY', - ]; - - // Since these options can be used for - // both table as well as a specific column in the table - return in_array($tokenValue, $commonOptions); - } - - /** - * Check if token is symbol and quoted with backtick - * - * @param Token $token token to check - * - * @return bool - */ - private static function checkIfTokenQuotedSymbol($token) + public function __toString(): string { - return $token->type === Token::TYPE_SYMBOL && $token->flags === Token::FLAG_SYMBOL_BACKTICK; + return $this->build(); } } diff --git a/src/Components/ArrayObj.php b/src/Components/ArrayObj.php index 1397eb243..9c734d3be 100644 --- a/src/Components/ArrayObj.php +++ b/src/Components/ArrayObj.php @@ -5,35 +5,27 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; use function implode; -use function is_array; -use function strlen; -use function trim; /** * Parses an array. - * - * @final */ -class ArrayObj extends Component +final class ArrayObj implements Component { /** * The array that contains the unprocessed value of each token. * * @var string[] */ - public $raw = []; + public array $raw = []; /** * The array that contains the processed value of each token. * * @var string[] */ - public $values = []; + public array $values = []; /** * @param string[] $raw the unprocessed values @@ -45,141 +37,17 @@ public function __construct(array $raw = [], array $values = []) $this->values = $values; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return ArrayObj|Component[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = empty($options['type']) ? new static() : []; - - /** - * The last raw expression. - * - * @var string - */ - $lastRaw = ''; - - /** - * The last value. - * - * @var string - */ - $lastValue = ''; - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * Last separator (bracket or comma). - * - * @var bool - */ - $isCommaLast = false; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - if ($brackets > 0) { - $parser->error('A closing bracket was expected.', $token); - } - - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - $lastRaw .= $token->token; - $lastValue = trim($lastValue) . ' '; - continue; - } - - if (($brackets === 0) && (($token->type !== Token::TYPE_OPERATOR) || ($token->value !== '('))) { - $parser->error('An opening bracket was expected.', $token); - break; - } - - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - if (++$brackets === 1) { // 1 is the base level. - continue; - } - } elseif ($token->value === ')') { - if (--$brackets === 0) { // Array ended. - break; - } - } elseif ($token->value === ',') { - if ($brackets === 1) { - $isCommaLast = true; - if (empty($options['type'])) { - $ret->raw[] = trim($lastRaw); - $ret->values[] = trim($lastValue); - $lastRaw = $lastValue = ''; - } - - continue; - } - } - } - - if (empty($options['type'])) { - $lastRaw .= $token->token; - $lastValue .= $token->value; - } else { - $ret[] = $options['type']::parse( - $parser, - $list, - empty($options['typeOptions']) ? [] : $options['typeOptions'] - ); - } + if ($this->raw !== []) { + return '(' . implode(', ', $this->raw) . ')'; } - // Handling last element. - // - // This is treated differently to treat the following cases: - // - // => [] - // [,] => ['', ''] - // [] => [] - // [a,] => ['a', ''] - // [a] => ['a'] - $lastRaw = trim($lastRaw); - if (empty($options['type']) && ((strlen($lastRaw) > 0) || ($isCommaLast))) { - $ret->raw[] = $lastRaw; - $ret->values[] = trim($lastValue); - } - - return $ret; + return '(' . implode(', ', $this->values) . ')'; } - /** - * @param ArrayObj|ArrayObj[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(', ', $component); - } - - if (! empty($component->raw)) { - return '(' . implode(', ', $component->raw) . ')'; - } - - return '(' . implode(', ', $component->values) . ')'; + return $this->build(); } } diff --git a/src/Components/CaseExpression.php b/src/Components/CaseExpression.php index 1b0570b3f..97336c67a 100644 --- a/src/Components/CaseExpression.php +++ b/src/Components/CaseExpression.php @@ -6,298 +6,93 @@ use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Context; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\Parsers\Conditions; use function count; /** * Parses a reference to a CASE expression. - * - * @final */ -class CaseExpression extends Component +final class CaseExpression implements Component { /** * The value to be compared. - * - * @var Expression|null */ - public $value; + public Expression|null $value = null; /** * The conditions in WHEN clauses. * * @var Condition[][] */ - public $conditions = []; + public array $conditions = []; /** * The results matching with the WHEN clauses. * * @var Expression[] */ - public $results = []; + public array $results = []; /** * The values to be compared against. * * @var Expression[] */ - public $compare_values = []; + public array $compareValues = []; /** * The result in ELSE section of expr. - * - * @var Expression|null */ - public $else_result; + public Expression|null $elseResult = null; /** * The alias of this CASE statement. - * - * @var string|null */ - public $alias; + public string|null $alias = null; /** * The sub-expression. - * - * @var string */ - public $expr = ''; - - public function __construct() - { - } + public string $expr = ''; - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return CaseExpression - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * State of parser. - * - * @var int - */ - $state = 0; - - /** - * Syntax type (type 0 or type 1). - * - * @var int - */ - $type = 0; - - ++$list->idx; // Skip 'CASE' - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD) { - switch ($token->keyword) { - case 'WHEN': - ++$list->idx; // Skip 'WHEN' - $newCondition = Condition::parse($parser, $list); - $type = 1; - $state = 1; - $ret->conditions[] = $newCondition; - break; - case 'ELSE': - ++$list->idx; // Skip 'ELSE' - $ret->else_result = Expression::parse($parser, $list); - $state = 0; // last clause of CASE expression - break; - case 'END': - $state = 3; // end of CASE expression - ++$list->idx; - break 2; - default: - $parser->error('Unexpected keyword.', $token); - break 2; - } - } else { - $ret->value = Expression::parse($parser, $list); - $type = 0; - $state = 1; - } - } elseif ($state === 1) { - if ($type === 0) { - if ($token->type === Token::TYPE_KEYWORD) { - switch ($token->keyword) { - case 'WHEN': - ++$list->idx; // Skip 'WHEN' - $newValue = Expression::parse($parser, $list); - $state = 2; - $ret->compare_values[] = $newValue; - break; - case 'ELSE': - ++$list->idx; // Skip 'ELSE' - $ret->else_result = Expression::parse($parser, $list); - $state = 0; // last clause of CASE expression - break; - case 'END': - $state = 3; // end of CASE expression - ++$list->idx; - break 2; - default: - $parser->error('Unexpected keyword.', $token); - break 2; - } - } - } else { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'THEN') { - ++$list->idx; // Skip 'THEN' - $newResult = Expression::parse($parser, $list); - $state = 0; - $ret->results[] = $newResult; - } elseif ($token->type === Token::TYPE_KEYWORD) { - $parser->error('Unexpected keyword.', $token); - break; - } - } - } elseif ($state === 2) { - if ($type === 0) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'THEN') { - ++$list->idx; // Skip 'THEN' - $newResult = Expression::parse($parser, $list); - $ret->results[] = $newResult; - $state = 1; - } elseif ($token->type === Token::TYPE_KEYWORD) { - $parser->error('Unexpected keyword.', $token); - break; - } - } - } - } - - if ($state !== 3) { - $parser->error('Unexpected end of CASE expression', $list->tokens[$list->idx - 1]); - } else { - // Parse for alias of CASE expression - $asFound = false; - for (; $list->idx < $list->count; ++$list->idx) { - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - // Handle optional AS keyword before alias - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'AS') { - if ($asFound || ! empty($ret->alias)) { - $parser->error('Potential duplicate alias of CASE expression.', $token); - break; - } - - $asFound = true; - continue; - } - - if ( - $asFound - && $token->type === Token::TYPE_KEYWORD - && ($token->flags & Token::FLAG_KEYWORD_RESERVED || $token->flags & Token::FLAG_KEYWORD_FUNCTION) - ) { - $parser->error('An alias expected after AS but got ' . $token->value, $token); - $asFound = false; - break; - } - - if ( - $asFound - || $token->type === Token::TYPE_STRING - || ($token->type === Token::TYPE_SYMBOL && ! $token->flags & Token::FLAG_SYMBOL_VARIABLE) - || $token->type === Token::TYPE_NONE - ) { - // An alias is expected (the keyword `AS` was previously found). - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - - $ret->alias = $token->value; - $asFound = false; - - continue; - } - - break; - } - - if ($asFound) { - $parser->error('An alias was expected after AS.', $list->tokens[$list->idx - 1]); - } - - $ret->expr = self::build($ret); - } - - --$list->idx; - - return $ret; - } - - /** - * @param CaseExpression $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { $ret = 'CASE '; - if (isset($component->value)) { + if (isset($this->value)) { // Syntax type 0 - $ret .= $component->value . ' '; - $valuesCount = count($component->compare_values); - $resultsCount = count($component->results); + $ret .= $this->value . ' '; + $valuesCount = count($this->compareValues); + $resultsCount = count($this->results); for ($i = 0; $i < $valuesCount && $i < $resultsCount; ++$i) { - $ret .= 'WHEN ' . $component->compare_values[$i] . ' '; - $ret .= 'THEN ' . $component->results[$i] . ' '; + $ret .= 'WHEN ' . $this->compareValues[$i] . ' '; + $ret .= 'THEN ' . $this->results[$i] . ' '; } } else { // Syntax type 1 - $valuesCount = count($component->conditions); - $resultsCount = count($component->results); + $valuesCount = count($this->conditions); + $resultsCount = count($this->results); for ($i = 0; $i < $valuesCount && $i < $resultsCount; ++$i) { - $ret .= 'WHEN ' . Condition::build($component->conditions[$i]) . ' '; - $ret .= 'THEN ' . $component->results[$i] . ' '; + $ret .= 'WHEN ' . Conditions::buildAll($this->conditions[$i]) . ' '; + $ret .= 'THEN ' . $this->results[$i] . ' '; } } - if (isset($component->else_result)) { - $ret .= 'ELSE ' . $component->else_result . ' '; + if (isset($this->elseResult)) { + $ret .= 'ELSE ' . $this->elseResult . ' '; } $ret .= 'END'; - if ($component->alias) { - $ret .= ' AS ' . Context::escape($component->alias); + if ($this->alias) { + $ret .= ' AS ' . Context::escape($this->alias); } return $ret; } + + public function __toString(): string + { + return $this->build(); + } } diff --git a/src/Components/Condition.php b/src/Components/Condition.php index 38174570e..c8c8c9ada 100644 --- a/src/Components/Condition.php +++ b/src/Components/Condition.php @@ -5,239 +5,45 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; -use function implode; -use function in_array; -use function is_array; use function trim; -/** - * `WHERE` keyword parser. - * - * @final - */ -class Condition extends Component +final class Condition implements Component { - /** - * Logical operators that can be used to delimit expressions. - * - * @var string[] - */ - public static $DELIMITERS = [ - '&&', - '||', - 'AND', - 'OR', - 'XOR', - ]; - - /** - * List of allowed reserved keywords in conditions. - * - * @var array - */ - public static $ALLOWED_KEYWORDS = [ - 'ALL' => 1, - 'AND' => 1, - 'BETWEEN' => 1, - 'COLLATE' => 1, - 'EXISTS' => 1, - 'IF' => 1, - 'IN' => 1, - 'INTERVAL' => 1, - 'IS' => 1, - 'LIKE' => 1, - 'MATCH' => 1, - 'NOT IN' => 1, - 'NOT NULL' => 1, - 'NOT' => 1, - 'NULL' => 1, - 'OR' => 1, - 'REGEXP' => 1, - 'RLIKE' => 1, - 'SOUNDS' => 1, - 'XOR' => 1, - ]; - /** * Identifiers recognized. * * @var array */ - public $identifiers = []; + public array $identifiers = []; /** * Whether this component is an operator. - * - * @var bool */ - public $isOperator = false; + public bool $isOperator = false; /** * The condition. - * - * @var string */ - public $expr; + public string $expr; - /** - * @param string $expr the condition or the operator - */ - public function __construct($expr = null) + public string $leftOperand = ''; + public string $operator = ''; + public string $rightOperand = ''; + + /** @param string $expr the condition or the operator */ + public function __construct(string|null $expr = null) { $this->expr = trim((string) $expr); } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Condition[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = []; - - $expr = new static(); - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * Whether there was a `BETWEEN` keyword before or not. - * - * It is required to keep track of them because their structure contains - * the keyword `AND`, which is also an operator that delimits - * expressions. - * - * @var bool - */ - $betweenBefore = false; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - // Replacing all whitespaces (new lines, tabs, etc.) with a single - // space character. - if ($token->type === Token::TYPE_WHITESPACE) { - $expr->expr .= ' '; - continue; - } - - // Conditions are delimited by logical operators. - if ( - ($token->type === Token::TYPE_KEYWORD || $token->type === Token::TYPE_OPERATOR) - && in_array($token->value, static::$DELIMITERS, true) - ) { - if ($betweenBefore && ($token->value === 'AND')) { - // The syntax of keyword `BETWEEN` is hard-coded. - $betweenBefore = false; - } else { - // The expression ended. - $expr->expr = trim($expr->expr); - if ($expr->expr !== '') { - $ret[] = $expr; - } - - // Adding the operator. - $expr = new static($token->value); - $expr->isOperator = true; - $ret[] = $expr; - - // Preparing to parse another condition. - $expr = new static(); - continue; - } - } - - if ( - ($token->type === Token::TYPE_KEYWORD) - && ($token->flags & Token::FLAG_KEYWORD_RESERVED) - && ! ($token->flags & Token::FLAG_KEYWORD_FUNCTION) - ) { - if ($token->value === 'BETWEEN') { - $betweenBefore = true; - } - - if (($brackets === 0) && empty(static::$ALLOWED_KEYWORDS[$token->value])) { - break; - } - } - - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - ++$brackets; - } elseif ($token->value === ')') { - if ($brackets === 0) { - break; - } - - --$brackets; - } - } - - $expr->expr .= $token->token; - if ( - ($token->type !== Token::TYPE_NONE) - && (($token->type !== Token::TYPE_KEYWORD) - || ($token->flags & Token::FLAG_KEYWORD_RESERVED)) - && ($token->type !== Token::TYPE_STRING) - && ($token->type !== Token::TYPE_SYMBOL || ($token->flags & Token::FLAG_SYMBOL_PARAMETER)) - ) { - continue; - } - - if (in_array($token->value, $expr->identifiers)) { - continue; - } - - $expr->identifiers[] = $token->value; - } - - // Last iteration was not processed. - $expr->expr = trim($expr->expr); - if ($expr->expr !== '') { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; + return $this->expr; } - /** - * @param Condition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(' ', $component); - } - - return $component->expr; + return $this->build(); } } diff --git a/src/Components/CreateDefinition.php b/src/Components/CreateDefinition.php index 436987eed..491c7bf95 100644 --- a/src/Components/CreateDefinition.php +++ b/src/Components/CreateDefinition.php @@ -6,154 +6,45 @@ use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Context; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; -use function implode; -use function is_array; use function trim; /** * Parses the create definition of a column or a key. * * Used for parsing `CREATE TABLE` statement. - * - * @final */ -class CreateDefinition extends Component +final class CreateDefinition implements Component { - /** - * All field options. - * - * @var array>> - * @psalm-var array true, - - 'NOT NULL' => 1, - 'NULL' => 1, - 'DEFAULT' => [ - 2, - 'expr', - ['breakOnAlias' => true], - ], - /* Following are not according to grammar, but MySQL happily accepts - * these at any location */ - 'CHARSET' => [ - 2, - 'var', - ], - 'COLLATE' => [ - 3, - 'var', - ], - 'AUTO_INCREMENT' => 3, - 'KEY' => 4, - 'PRIMARY' => 4, - 'PRIMARY KEY' => 4, - 'UNIQUE' => 4, - 'UNIQUE KEY' => 4, - 'COMMENT' => [ - 5, - 'var', - ], - 'COLUMN_FORMAT' => [ - 6, - 'var', - ], - 'ON UPDATE' => [ - 7, - 'expr', - ], - - // Generated columns options. - 'GENERATED ALWAYS' => 8, - 'AS' => [ - 9, - 'expr', - ['parenthesesDelimited' => true], - ], - 'VIRTUAL' => 10, - 'PERSISTENT' => 11, - 'STORED' => 11, - 'CHECK' => [ - 12, - 'expr', - ['parenthesesDelimited' => true], - ], - 'INVISIBLE' => 13, - 'ENFORCED' => 14, - 'NOT' => 15, - 'COMPRESSED' => 16, - 'SRID' => [ - 17, - 'var', - ], - // Common entries. - // - // NOTE: Some of the common options are not in the same order which - // causes troubles when checking if the options are in the right order. - // I should find a way to define multiple sets of options and make the - // parser select the right set. - // - // 'UNIQUE' => 4, - // 'UNIQUE KEY' => 4, - // 'COMMENT' => [5, 'var'], - // 'NOT NULL' => 1, - // 'NULL' => 1, - // 'PRIMARY' => 4, - // 'PRIMARY KEY' => 4, - ]; - /** * The name of the new column. - * - * @var string|null */ - public $name; + public string|null $name = null; /** * Whether this field is a constraint or not. - * - * @var bool|null */ - public $isConstraint; + public bool|null $isConstraint = null; /** * The data type of thew new column. - * - * @var DataType|null */ - public $type; + public DataType|null $type = null; /** * The key. - * - * @var Key|null */ - public $key; + public Key|null $key = null; /** * The table that is referenced. - * - * @var Reference|null */ - public $references; + public Reference|null $references = null; /** * The options of this field. - * - * @var OptionsArray|null */ - public $options; + public OptionsArray|null $options = null; /** * @param string|null $name the name of the field @@ -163,11 +54,11 @@ class CreateDefinition extends Component * @param Reference|null $references references */ public function __construct( - $name = null, - $options = null, - $type = null, - $isConstraint = false, - $references = null + string|null $name = null, + OptionsArray|null $options = null, + DataType|Key|null $type = null, + bool $isConstraint = false, + Reference|null $references = null, ) { $this->name = $name; $this->options = $options; @@ -180,188 +71,38 @@ public function __construct( } } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return CreateDefinition[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ ( ]------------------------> 1 - * - * 1 --------------------[ CONSTRAINT ]------------------> 1 - * 1 -----------------------[ key ]----------------------> 2 - * 1 -------------[ constraint / column name ]-----------> 2 - * - * 2 --------------------[ data type ]-------------------> 3 - * - * 3 ---------------------[ options ]--------------------> 4 - * - * 4 --------------------[ REFERENCES ]------------------> 4 - * - * 5 ------------------------[ , ]-----------------------> 1 - * 5 ------------------------[ ) ]-----------------------> 6 (-1) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if (($token->type !== Token::TYPE_OPERATOR) || ($token->value !== '(')) { - $parser->error('An opening bracket was expected.', $token); - - break; - } - - $state = 1; - } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'CONSTRAINT') { - $expr->isConstraint = true; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_KEY)) { - $expr->key = Key::parse($parser, $list); - $state = 4; - } elseif ($token->type === Token::TYPE_SYMBOL || $token->type === Token::TYPE_NONE) { - $expr->name = $token->value; - if (! $expr->isConstraint) { - $state = 2; - } - } elseif ($token->type === Token::TYPE_KEYWORD) { - if ($token->flags & Token::FLAG_KEYWORD_RESERVED) { - // Reserved keywords can't be used - // as field names without backquotes - $parser->error( - 'A symbol name was expected! ' - . 'A reserved keyword can not be used ' - . 'as a column name without backquotes.', - $token - ); - - return $ret; - } - - // Non-reserved keywords are allowed without backquotes - $expr->name = $token->value; - $state = 2; - } else { - $parser->error('A symbol name was expected!', $token); - - return $ret; - } - } elseif ($state === 2) { - $expr->type = DataType::parse($parser, $list); - $state = 3; - } elseif ($state === 3) { - $expr->options = OptionsArray::parse($parser, $list, static::$FIELD_OPTIONS); - $state = 4; - } elseif ($state === 4) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'REFERENCES') { - ++$list->idx; // Skipping keyword 'REFERENCES'. - $expr->references = Reference::parse($parser, $list); - } else { - --$list->idx; - } - - $state = 5; - } elseif ($state === 5) { - if (! empty($expr->type) || ! empty($expr->key)) { - $ret[] = $expr; - } - - $expr = new static(); - if ($token->value === ',') { - $state = 1; - } elseif ($token->value === ')') { - $state = 6; - ++$list->idx; - break; - } else { - $parser->error('A comma or a closing bracket was expected.', $token); - $state = 0; - break; - } - } - } - - // Last iteration was not saved. - if (! empty($expr->type) || ! empty($expr->key)) { - $ret[] = $expr; - } - - if (($state !== 0) && ($state !== 6)) { - $parser->error('A closing bracket was expected.', $list->tokens[$list->idx - 1]); - } - - --$list->idx; - - return $ret; - } - - /** - * @param CreateDefinition|CreateDefinition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { - if (is_array($component)) { - return "(\n " . implode(",\n ", $component) . "\n)"; - } - $tmp = ''; - if ($component->isConstraint) { + if ($this->isConstraint) { $tmp .= 'CONSTRAINT '; } - if (isset($component->name) && ($component->name !== '')) { - $tmp .= Context::escape($component->name) . ' '; + if (isset($this->name) && ($this->name !== '')) { + $tmp .= Context::escape($this->name) . ' '; } - if (! empty($component->type)) { - $tmp .= DataType::build( - $component->type, - ['lowercase' => true] - ) . ' '; + if (! empty($this->type)) { + $this->type->lowercase = true; + $tmp .= $this->type->build() . ' '; } - if (! empty($component->key)) { - $tmp .= $component->key . ' '; + if (! empty($this->key)) { + $tmp .= $this->key . ' '; } - if (! empty($component->references)) { - $tmp .= 'REFERENCES ' . $component->references . ' '; + if (! empty($this->references)) { + $tmp .= 'REFERENCES ' . $this->references . ' '; } - $tmp .= $component->options; + $tmp .= $this->options; return trim($tmp); } + + public function __toString(): string + { + return $this->build(); + } } diff --git a/src/Components/DataType.php b/src/Components/DataType.php index 4f4b521b8..d66617462 100644 --- a/src/Components/DataType.php +++ b/src/Components/DataType.php @@ -5,52 +5,20 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; use function implode; use function strtolower; -use function strtoupper; use function trim; /** * Parses a data type. - * - * @final */ -class DataType extends Component +final class DataType implements Component { - /** - * All data type options. - * - * @var array> - * @psalm-var array 1, - 'CHARACTER SET' => [ - 2, - 'var', - ], - 'CHARSET' => [ - 2, - 'var', - ], - 'COLLATE' => [ - 3, - 'var', - ], - 'UNSIGNED' => 4, - 'ZEROFILL' => 5, - ]; - /** * The name of the data type. - * - * @var string */ - public $name; + public string|null $name = null; /** * The parameters of this data type. @@ -65,111 +33,44 @@ class DataType extends Component * * @var int[]|string[] */ - public $parameters = []; + public array $parameters = []; /** * The options of this data type. - * - * @var OptionsArray */ - public $options; + public OptionsArray|null $options = null; + + public bool $lowercase = false; /** - * @param string $name the name of this data type - * @param int[]|string[] $parameters the parameters (size or possible values) - * @param OptionsArray $options the options of this data type + * @param string|null $name the name of this data type + * @param int[]|string[] $parameters the parameters (size or possible values) + * @param OptionsArray|null $options the options of this data type */ public function __construct( - $name = null, + string|null $name = null, array $parameters = [], - $options = null + OptionsArray|null $options = null, ) { $this->name = $name; $this->parameters = $parameters; $this->options = $options; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return DataType|null - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -------------------[ data type ]--------------------> 1 - * - * 1 ----------------[ size and options ]----------------> 2 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } + $name = $this->lowercase ? strtolower($this->name) : $this->name; - if ($state === 0) { - $ret->name = strtoupper((string) $token->value); - if (($token->type !== Token::TYPE_KEYWORD) || (! ($token->flags & Token::FLAG_KEYWORD_DATA_TYPE))) { - $parser->error('Unrecognized data type.', $token); - } - - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $parameters = ArrayObj::parse($parser, $list); - ++$list->idx; - $ret->parameters = ($ret->name === 'ENUM') || ($ret->name === 'SET') ? - $parameters->raw : $parameters->values; - } - - $ret->options = OptionsArray::parse($parser, $list, static::$DATA_TYPE_OPTIONS); - ++$list->idx; - break; - } - } - - if (empty($ret->name)) { - return null; + $parameters = ''; + if ($this->parameters !== []) { + $parameters = '(' . implode(',', $this->parameters) . ')'; } - --$list->idx; - - return $ret; + return trim($name . $parameters . ' ' . $this->options); } - /** - * @param DataType $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - $name = empty($options['lowercase']) ? - $component->name : strtolower($component->name); - - $parameters = ''; - if (! empty($component->parameters)) { - $parameters = '(' . implode(',', $component->parameters) . ')'; - } - - return trim($name . $parameters . ' ' . $component->options); + return $this->build(); } } diff --git a/src/Components/Expression.php b/src/Components/Expression.php index a817ebee4..9d329092f 100644 --- a/src/Components/Expression.php +++ b/src/Components/Expression.php @@ -4,100 +4,53 @@ namespace PhpMyAdmin\SqlParser\Components; +use AllowDynamicProperties; use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Context; -use PhpMyAdmin\SqlParser\Exceptions\ParserException; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; use function implode; -use function is_array; -use function rtrim; -use function strlen; -use function trim; /** * Parses a reference to an expression (column, table or database name, function * call, mathematical expression, etc.). - * - * @final */ -#[\AllowDynamicProperties] -class Expression extends Component +#[AllowDynamicProperties] +final class Expression implements Component { - /** - * List of allowed reserved keywords in expressions. - * - * @var array - */ - private static $ALLOWED_KEYWORDS = [ - 'AND' => 1, - 'AS' => 1, - 'BETWEEN' => 1, - 'CASE' => 1, - 'DUAL' => 1, - 'DIV' => 1, - 'IS' => 1, - 'MOD' => 1, - 'NOT' => 1, - 'NOT NULL' => 1, - 'NULL' => 1, - 'OR' => 1, - 'OVER' => 1, - 'REGEXP' => 1, - 'RLIKE' => 1, - 'XOR' => 1, - ]; - /** * The name of this database. - * - * @var string|null */ - public $database; + public string|null $database = null; /** * The name of this table. - * - * @var string|null */ - public $table; + public string|null $table = null; /** * The name of the column. - * - * @var string|null */ - public $column; + public string|null $column = null; /** * The sub-expression. - * - * @var string|null */ - public $expr = ''; + public string|null $expr = ''; /** * The alias of this expression. - * - * @var string|null */ - public $alias; + public string|null $alias = null; /** * The name of the function. - * - * @var mixed */ - public $function; + public string|null $function = null; /** * The type of subquery. - * - * @var string|null */ - public $subquery; + public string|null $subquery = null; /** * Syntax: @@ -114,8 +67,12 @@ class Expression extends Component * @param string|null $column the name of the column * @param string|null $alias the name of the alias */ - public function __construct($database = null, $table = null, $column = null, $alias = null) - { + public function __construct( + string|null $database = null, + string|null $table = null, + string|null $column = null, + string|null $alias = null, + ) { if (($column === null) && ($alias === null)) { $this->expr = $database; // case 1 $this->alias = $table; // case 2 @@ -127,367 +84,36 @@ public function __construct($database = null, $table = null, $column = null, $al } } - /** - * Possible options:. - * - * `field` - * - * First field to be filled. - * If this is not specified, it takes the value of `parseField`. - * - * `parseField` - * - * Specifies the type of the field parsed. It may be `database`, - * `table` or `column`. These expressions may not include - * parentheses. - * - * `breakOnAlias` - * - * If not empty, breaks when the alias occurs (it is not included). - * - * `breakOnParentheses` - * - * If not empty, breaks when the first parentheses occurs. - * - * `parenthesesDelimited` - * - * If not empty, breaks after last parentheses occurred. - * - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Expression|null - * - * @throws ParserException - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = new static(); - - /** - * Whether current tokens make an expression or a table reference. - * - * @var bool - */ - $isExpr = false; - - /** - * Whether a period was previously found. - * - * @var bool - */ - $dot = false; - - /** - * Whether an alias is expected. Is 2 if `AS` keyword was found. - * - * @var bool - */ - $alias = false; - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * Keeps track of the last two previous tokens. - * - * @var Token[] - */ - $prev = [ - null, - null, - ]; - - // When a field is parsed, no parentheses are expected. - if (! empty($options['parseField'])) { - $options['breakOnParentheses'] = true; - $options['field'] = $options['parseField']; - } - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - // If the token is a closing C comment from a MySQL command, it must be ignored. - if ($isExpr && $token->token !== '*/') { - $ret->expr .= $token->token; - } - - continue; - } - - if ($token->type === Token::TYPE_KEYWORD) { - if (($brackets > 0) && empty($ret->subquery) && ! empty(Parser::$STATEMENT_PARSERS[$token->keyword])) { - // A `(` was previously found and this keyword is the - // beginning of a statement, so this is a subquery. - $ret->subquery = $token->keyword; - } elseif ( - ($token->flags & Token::FLAG_KEYWORD_FUNCTION) - && (empty($options['parseField']) - && ! $alias) - ) { - $isExpr = true; - } elseif (($token->flags & Token::FLAG_KEYWORD_RESERVED) && ($brackets === 0)) { - if (empty(self::$ALLOWED_KEYWORDS[$token->keyword])) { - // A reserved keyword that is not allowed in the - // expression was found so the expression must have - // ended and a new clause is starting. - break; - } - - if ($token->keyword === 'AS') { - if (! empty($options['breakOnAlias'])) { - break; - } - - if ($alias) { - $parser->error('An alias was expected.', $token); - break; - } - - $alias = true; - continue; - } - - if ($token->keyword === 'CASE') { - // For a use of CASE like - // 'SELECT a = CASE .... END, b=1, `id`, ... FROM ...' - $tempCaseExpr = CaseExpression::parse($parser, $list); - $ret->expr .= CaseExpression::build($tempCaseExpr); - $isExpr = true; - continue; - } - - $isExpr = true; - } elseif ( - $brackets === 0 && strlen((string) $ret->expr) > 0 && ! $alias - && ($ret->table === null || $ret->table === '') - ) { - /* End of expression */ - break; - } - } - - if ( - ($token->type === Token::TYPE_NUMBER) - || ($token->type === Token::TYPE_BOOL) - || (($token->type === Token::TYPE_SYMBOL) - && ($token->flags & Token::FLAG_SYMBOL_VARIABLE)) - || (($token->type === Token::TYPE_SYMBOL) - && ($token->flags & Token::FLAG_SYMBOL_PARAMETER)) - || (($token->type === Token::TYPE_OPERATOR) - && ($token->value !== '.')) - ) { - if (! empty($options['parseField'])) { - break; - } - - // Numbers, booleans and operators (except dot) are usually part - // of expressions. - $isExpr = true; + if ($this->expr !== '' && $this->expr !== null) { + $ret = $this->expr; + } else { + $fields = []; + if (isset($this->database) && ($this->database !== '')) { + $fields[] = $this->database; } - if ($token->type === Token::TYPE_OPERATOR) { - if (! empty($options['breakOnParentheses']) && (($token->value === '(') || ($token->value === ')'))) { - // No brackets were expected. - break; - } - - if ($token->value === '(') { - ++$brackets; - if ( - empty($ret->function) && ($prev[1] !== null) - && (($prev[1]->type === Token::TYPE_NONE) - || ($prev[1]->type === Token::TYPE_SYMBOL) - || (($prev[1]->type === Token::TYPE_KEYWORD) - && ($prev[1]->flags & Token::FLAG_KEYWORD_FUNCTION))) - ) { - $ret->function = $prev[1]->value; - } - } elseif ($token->value === ')') { - if ($brackets === 0) { - // Not our bracket - break; - } - - --$brackets; - if ($brackets === 0) { - if (! empty($options['parenthesesDelimited'])) { - // The current token is the last bracket, the next - // one will be outside the expression. - $ret->expr .= $token->token; - ++$list->idx; - break; - } - } elseif ($brackets < 0) { - // $parser->error('Unexpected closing bracket.', $token); - // $brackets = 0; - break; - } - } elseif ($token->value === ',') { - // Expressions are comma-delimited. - if ($brackets === 0) { - break; - } - } + if (isset($this->table) && ($this->table !== '')) { + $fields[] = $this->table; } - // Saving the previous tokens. - $prev[0] = $prev[1]; - $prev[1] = $token; - - if ($alias) { - // An alias is expected (the keyword `AS` was previously found). - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - - $ret->alias = $token->value; - $alias = false; - } elseif ($isExpr) { - // Handling aliases. - if ( - $brackets === 0 - && ($prev[0] === null - || (($prev[0]->type !== Token::TYPE_OPERATOR || $prev[0]->token === ')') - && ($prev[0]->type !== Token::TYPE_KEYWORD - || ! ($prev[0]->flags & Token::FLAG_KEYWORD_RESERVED)))) - && (($prev[1]->type === Token::TYPE_STRING) - || ($prev[1]->type === Token::TYPE_SYMBOL - && ! ($prev[1]->flags & Token::FLAG_SYMBOL_VARIABLE) - && ! ($prev[1]->flags & Token::FLAG_SYMBOL_PARAMETER)) - || ($prev[1]->type === Token::TYPE_NONE - && $prev[1]->token !== 'OVER')) - ) { - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - - $ret->alias = $prev[1]->value; - } else { - $currIdx = $list->idx; - --$list->idx; - $beforeToken = $list->getPrevious(); - $list->idx = $currIdx; - // columns names tokens are of type NONE, or SYMBOL (`col`), and the columns options - // would start with a token of type KEYWORD, in that case, we want to have a space - // between the tokens. - if ( - $ret->expr !== null && - $beforeToken && - ($beforeToken->type === Token::TYPE_NONE || - $beforeToken->type === Token::TYPE_SYMBOL || $beforeToken->type === Token::TYPE_STRING) && - $token->type === Token::TYPE_KEYWORD - ) { - $ret->expr = rtrim($ret->expr, ' ') . ' '; - } - - $ret->expr .= $token->token; - } - } elseif (! $isExpr) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '.')) { - // Found a `.` which means we expect a column name and - // the column name we parsed is actually the table name - // and the table name is actually a database name. - if (! empty($ret->database) || $dot) { - $parser->error('Unexpected dot.', $token); - } - - $ret->database = $ret->table; - $ret->table = $ret->column; - $ret->column = null; - $dot = true; - $ret->expr .= $token->token; - } else { - $field = empty($options['field']) ? 'column' : $options['field']; - if (empty($ret->$field)) { - $ret->$field = $token->value; - $ret->expr .= $token->token; - $dot = false; - } else { - // No alias is expected. - if (! empty($options['breakOnAlias'])) { - break; - } - - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - - $ret->alias = $token->value; - } - } + if (isset($this->column) && ($this->column !== '')) { + $fields[] = $this->column; } - } - if ($alias) { - $parser->error('An alias was expected.', $list->tokens[$list->idx - 1]); + $ret = implode('.', Context::escapeAll($fields)); } - // White-spaces might be added at the end. - $ret->expr = trim((string) $ret->expr); - - if ($ret->expr === '') { - return null; + if (! empty($this->alias)) { + $ret .= ' AS ' . Context::escape($this->alias); } - --$list->idx; - return $ret; } - /** - * @param Expression|Expression[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(', ', $component); - } - - if ($component->expr !== '' && $component->expr !== null) { - $ret = $component->expr; - } else { - $fields = []; - if (isset($component->database) && ($component->database !== '')) { - $fields[] = $component->database; - } - - if (isset($component->table) && ($component->table !== '')) { - $fields[] = $component->table; - } - - if (isset($component->column) && ($component->column !== '')) { - $fields[] = $component->column; - } - - $ret = implode('.', Context::escape($fields)); - } - - if (! empty($component->alias)) { - $ret .= ' AS ' . Context::escape($component->alias); - } - - return $ret; + return $this->build(); } } diff --git a/src/Components/FunctionCall.php b/src/Components/FunctionCall.php index 4d6c0ed05..5c7c2d8d0 100644 --- a/src/Components/FunctionCall.php +++ b/src/Components/FunctionCall.php @@ -5,38 +5,29 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; use function is_array; /** * Parses a function call. - * - * @final */ -class FunctionCall extends Component +final class FunctionCall implements Component { /** * The name of this function. - * - * @var string|null */ - public $name; + public string|null $name = null; /** * The list of parameters. - * - * @var ArrayObj|null */ - public $parameters; + public ArrayObj|null $parameters = null; /** * @param string|null $name the name of the function to be called * @param string[]|ArrayObj|null $parameters the parameters of this function */ - public function __construct($name = null, $parameters = null) + public function __construct(string|null $name = null, array|ArrayObj|null $parameters = null) { $this->name = $name; if (is_array($parameters)) { @@ -46,72 +37,13 @@ public function __construct($name = null, $parameters = null) } } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return FunctionCall - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ----------------------[ name ]-----------------------> 1 - * - * 1 --------------------[ parameters ]-------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - --$list->idx; // Let last token to previous one to avoid "This type of clause was previously parsed." - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_OPERATOR && $token->value === '(') { - --$list->idx; // ArrayObj needs to start with `(` - $state = 1; - continue;// do not add this token to the name - } - - $ret->name .= $token->value; - } elseif ($state === 1) { - $ret->parameters = ArrayObj::parse($parser, $list); - break; - } - } - - return $ret; + return $this->name . $this->parameters; } - /** - * @param FunctionCall $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - return $component->name . $component->parameters; + return $this->build(); } } diff --git a/src/Components/GroupKeyword.php b/src/Components/GroupKeyword.php index 91f889d89..e19a4c1f0 100644 --- a/src/Components/GroupKeyword.php +++ b/src/Components/GroupKeyword.php @@ -5,126 +5,34 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; -use function implode; -use function is_array; use function trim; /** * `GROUP BY` keyword parser. - * - * @final */ -class GroupKeyword extends Component +final class GroupKeyword implements Component { - /** @var mixed */ - public $type; + public OrderSortKeyword|null $type = null; /** * The expression that is used for grouping. - * - * @var Expression */ - public $expr; + public Expression|null $expr = null; - /** - * @param Expression $expr the expression that we are sorting by - */ - public function __construct($expr = null) + /** @param Expression|null $expr the expression that we are sorting by */ + public function __construct(Expression|null $expr = null) { $this->expr = $expr; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return GroupKeyword[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 --------------------[ expression ]-------------------> 1 - * - * 1 ------------------------[ , ]------------------------> 0 - * 1 -------------------[ ASC / DESC ]--------------------> 1 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $expr->expr = Expression::parse($parser, $list); - $state = 1; - } elseif ($state === 1) { - if ( - ($token->type === Token::TYPE_KEYWORD) - && (($token->keyword === 'ASC') || ($token->keyword === 'DESC')) - ) { - $expr->type = $token->keyword; - } elseif (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - $expr = new static(); - $state = 0; - } else { - break; - } - } - } - - // Last iteration was not processed. - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; + return trim((string) $this->expr); } - /** - * @param GroupKeyword|GroupKeyword[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(', ', $component); - } - - return trim((string) $component->expr); + return $this->build(); } } diff --git a/src/Components/IndexHint.php b/src/Components/IndexHint.php index 5ff53862c..5b6cc30d6 100644 --- a/src/Components/IndexHint.php +++ b/src/Components/IndexHint.php @@ -5,203 +5,39 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; - -use function implode; -use function is_array; +use PhpMyAdmin\SqlParser\Parsers\Expressions; /** * Parses an Index hint. - * - * @final */ -class IndexHint extends Component +final class IndexHint implements Component { /** - * The type of hint (USE/FORCE/IGNORE) - * - * @var string|null - */ - public $type; - - /** - * What the hint is for (INDEX/KEY) - * - * @var string|null - */ - public $indexOrKey; - - /** - * The clause for which this hint is (JOIN/ORDER BY/GROUP BY) - * - * @var string|null - */ - public $for; - - /** - * List of indexes in this hint - * - * @var Expression[] - */ - public $indexes = []; - - /** - * @param string $type the type of hint (USE/FORCE/IGNORE) + * @param string $type The type of hint (USE/FORCE/IGNORE) * @param string $indexOrKey What the hint is for (INDEX/KEY) - * @param string $for the clause for which this hint is (JOIN/ORDER BY/GROUP BY) + * @param string|null $for The clause for which this hint is (JOIN/ORDER BY/GROUP BY) * @param Expression[] $indexes List of indexes in this hint */ public function __construct( - ?string $type = null, - ?string $indexOrKey = null, - ?string $for = null, - array $indexes = [] + public string $type = '', + public string $indexOrKey = '', + public string|null $for = null, + public array $indexes = [], ) { - $this->type = $type; - $this->indexOrKey = $indexOrKey; - $this->for = $for; - $this->indexes = $indexes; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return IndexHint|Component[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = []; - $expr = new static(); - $expr->type = $options['type'] ?? null; - /** - * The state of the parser. - * - * Below are the states of the parser. - * 0 ----------------- [ USE/IGNORE/FORCE ]-----------------> 1 - * 1 -------------------- [ INDEX/KEY ] --------------------> 2 - * 2 ----------------------- [ FOR ] -----------------------> 3 - * 2 -------------------- [ expr_list ] --------------------> 0 - * 3 -------------- [ JOIN/GROUP BY/ORDER BY ] -------------> 4 - * 4 -------------------- [ expr_list ] --------------------> 0 - * - * @var int - */ - $state = 0; - - // By design, the parser will parse first token after the keyword. So, the keyword - // must be analyzed too, in order to determine the type of this index hint. - if ($list->idx > 0) { - --$list->idx; + $ret = $this->type . ' ' . $this->indexOrKey . ' '; + if ($this->for !== null) { + $ret .= 'FOR ' . $this->for . ' '; } - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - switch ($state) { - case 0: - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword !== 'USE' && $token->keyword !== 'IGNORE' && $token->keyword !== 'FORCE') { - break 2; - } - - $expr->type = $token->keyword; - $state = 1; - } - - break; - case 1: - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'INDEX' || $token->keyword === 'KEY') { - $expr->indexOrKey = $token->keyword; - } else { - $parser->error('Unexpected keyword.', $token); - } - - $state = 2; - } else { - // we expect the token to be a keyword - $parser->error('Unexpected token.', $token); - } - - break; - case 2: - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'FOR') { - $state = 3; - } else { - $expr->indexes = ExpressionArray::parse($parser, $list); - $state = 0; - $ret[] = $expr; - $expr = new static(); - } - - break; - case 3: - if ($token->type === Token::TYPE_KEYWORD) { - if ( - $token->keyword === 'JOIN' - || $token->keyword === 'GROUP BY' - || $token->keyword === 'ORDER BY' - ) { - $expr->for = $token->keyword; - } else { - $parser->error('Unexpected keyword.', $token); - } - - $state = 4; - } else { - // we expect the token to be a keyword - $parser->error('Unexpected token.', $token); - } - - break; - case 4: - $expr->indexes = ExpressionArray::parse($parser, $list); - $state = 0; - $ret[] = $expr; - $expr = new static(); - break; - } - } - - --$list->idx; - - return $ret; + return $ret . Expressions::buildAll($this->indexes); } - /** - * @param IndexHint|IndexHint[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(' ', $component); - } - - $ret = $component->type . ' ' . $component->indexOrKey . ' '; - if ($component->for !== null) { - $ret .= 'FOR ' . $component->for . ' '; - } - - return $ret . ExpressionArray::build($component->indexes); + return $this->build(); } } diff --git a/src/Components/IntoKeyword.php b/src/Components/IntoKeyword.php index 8ff178c9b..d0ee5cf8b 100644 --- a/src/Components/IntoKeyword.php +++ b/src/Components/IntoKeyword.php @@ -5,8 +5,10 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; +use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; +use PhpMyAdmin\SqlParser\Parsers\Expressions; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\TokensList; use function implode; @@ -14,18 +16,13 @@ /** * `INTO` keyword parser. - * - * @final */ -class IntoKeyword extends Component +final class IntoKeyword implements Component { /** * FIELDS/COLUMNS Options for `SELECT...INTO` statements. - * - * @var array> - * @psalm-var array [ 1, 'expr', @@ -43,11 +40,8 @@ class IntoKeyword extends Component /** * LINES Options for `SELECT...INTO` statements. - * - * @var array> - * @psalm-var array [ 1, 'expr', @@ -60,56 +54,46 @@ class IntoKeyword extends Component /** * Type of target (OUTFILE or SYMBOL). - * - * @var string|null */ - public $type; + public string|null $type = null; /** * The destination, which can be a table or a file. - * - * @var string|Expression|null */ - public $dest; + public string|Expression|null $dest = null; /** * The name of the columns. * * @var string[]|null */ - public $columns; + public array|null $columns = null; /** * The values to be selected into (SELECT .. INTO @var1). * * @var Expression[]|null */ - public $values; + public array|null $values = null; /** * Options for FIELDS/COLUMNS keyword. * - * @see static::$FIELDS_OPTIONS - * - * @var OptionsArray|null + * @see IntoKeyword::STATEMENT_FIELDS_OPTIONS */ - public $fields_options; + public OptionsArray|null $fieldsOptions = null; /** * Whether to use `FIELDS` or `COLUMNS` while building. - * - * @var bool|null */ - public $fields_keyword; + public bool|null $fieldsKeyword = null; /** * Options for OPTIONS keyword. * - * @see static::$LINES_OPTIONS - * - * @var OptionsArray|null + * @see IntoKeyword::STATEMENT_LINES_OPTIONS */ - public $lines_options; + public OptionsArray|null $linesOptions = null; /** * @param string|null $type type of destination (may be OUTFILE) @@ -120,179 +104,73 @@ class IntoKeyword extends Component * @param bool|null $fieldsKeyword options for OPTIONS keyword */ public function __construct( - $type = null, - $dest = null, - $columns = null, - $values = null, - $fieldsOptions = null, - $fieldsKeyword = null + string|null $type = null, + string|Expression|null $dest = null, + array|null $columns = null, + array|null $values = null, + OptionsArray|null $fieldsOptions = null, + bool|null $fieldsKeyword = null, ) { $this->type = $type; $this->dest = $dest; $this->columns = $columns; $this->values = $values; - $this->fields_options = $fieldsOptions; - $this->fields_keyword = $fieldsKeyword; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return IntoKeyword - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ name ]----------------------> 1 - * 0 ---------------------[ OUTFILE ]---------------------> 2 - * - * 1 ------------------------[ ( ]------------------------> (END) - * - * 2 ---------------------[ filename ]--------------------> 1 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { - if (($state === 0) && ($token->keyword === 'OUTFILE')) { - $ret->type = 'OUTFILE'; - $state = 2; - continue; - } - - // No other keyword is expected except for $state = 4, which expects `LINES` - if ($state !== 4) { - break; - } - } - - if ($state === 0) { - if ( - (isset($options['fromInsert']) - && $options['fromInsert']) - || (isset($options['fromReplace']) - && $options['fromReplace']) - ) { - $ret->dest = Expression::parse( - $parser, - $list, - [ - 'parseField' => 'table', - 'breakOnAlias' => true, - ] - ); - } else { - $ret->values = ExpressionArray::parse($parser, $list); - } - - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $ret->columns = ArrayObj::parse($parser, $list)->values; - ++$list->idx; - } - - break; - } elseif ($state === 2) { - $ret->dest = $token->value; - - $state = 3; - } elseif ($state === 3) { - $ret->parseFileOptions($parser, $list, $token->keyword); - $state = 4; - } elseif ($state === 4) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword !== 'LINES') { - break; - } - - $ret->parseFileOptions($parser, $list, $token->keyword); - $state = 5; - } - } - - --$list->idx; - - return $ret; + $this->fieldsOptions = $fieldsOptions; + $this->fieldsKeyword = $fieldsKeyword; } /** * @param Parser $parser The parser * @param TokensList $list A token list * @param string $keyword The keyword - * - * @return void */ - public function parseFileOptions(Parser $parser, TokensList $list, $keyword = 'FIELDS') + public function parseFileOptions(Parser $parser, TokensList $list, string $keyword = 'FIELDS'): void { ++$list->idx; if ($keyword === 'FIELDS' || $keyword === 'COLUMNS') { // parse field options - $this->fields_options = OptionsArray::parse($parser, $list, static::$FIELDS_OPTIONS); + $this->fieldsOptions = OptionsArrays::parse($parser, $list, self::STATEMENT_FIELDS_OPTIONS); - $this->fields_keyword = ($keyword === 'FIELDS'); + $this->fieldsKeyword = ($keyword === 'FIELDS'); } else { // parse line options - $this->lines_options = OptionsArray::parse($parser, $list, static::$LINES_OPTIONS); + $this->linesOptions = OptionsArrays::parse($parser, $list, self::STATEMENT_LINES_OPTIONS); } } - /** - * @param IntoKeyword $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { - if ($component->dest instanceof Expression) { - $columns = ! empty($component->columns) ? '(`' . implode('`, `', $component->columns) . '`)' : ''; + if ($this->dest instanceof Expression) { + $columns = $this->columns === null || $this->columns === [] + ? '' + : '(' . implode(', ', Context::escapeAll($this->columns)) . ')'; - return $component->dest . $columns; + return $this->dest . $columns; } - if (isset($component->values)) { - return ExpressionArray::build($component->values); + if (isset($this->values)) { + return Expressions::buildAll($this->values); } - $ret = 'OUTFILE "' . $component->dest . '"'; + $ret = 'OUTFILE "' . $this->dest . '"'; - $fieldsOptionsString = OptionsArray::build($component->fields_options); + $fieldsOptionsString = $this->fieldsOptions?->build() ?? ''; if (trim($fieldsOptionsString) !== '') { - $ret .= $component->fields_keyword ? ' FIELDS' : ' COLUMNS'; + $ret .= $this->fieldsKeyword ? ' FIELDS' : ' COLUMNS'; $ret .= ' ' . $fieldsOptionsString; } - $linesOptionsString = OptionsArray::build($component->lines_options, ['expr' => true]); + $linesOptionsString = $this->linesOptions?->build() ?? ''; if (trim($linesOptionsString) !== '') { $ret .= ' LINES ' . $linesOptionsString; } return $ret; } + + public function __toString(): string + { + return $this->build(); + } } diff --git a/src/Components/JoinKeyword.php b/src/Components/JoinKeyword.php index 6f964993a..53e23167f 100644 --- a/src/Components/JoinKeyword.php +++ b/src/Components/JoinKeyword.php @@ -5,26 +5,20 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\Parsers\Conditions; +use PhpMyAdmin\SqlParser\Parsers\IndexHints; use function array_search; -use function implode; /** * `JOIN` keyword parser. - * - * @final */ -class JoinKeyword extends Component +final class JoinKeyword implements Component { /** * Types of join. - * - * @var array */ - public static $JOINS = [ + public const JOINS = [ 'CROSS JOIN' => 'CROSS', 'FULL JOIN' => 'FULL', 'FULL OUTER JOIN' => 'FULL', @@ -45,177 +39,67 @@ class JoinKeyword extends Component /** * Type of this join. * - * @see static::$JOINS - * - * @var string + * @see JoinKeyword::JOINS */ - public $type; + public string|null $type = null; /** * Join expression. - * - * @var Expression */ - public $expr; + public Expression|null $expr = null; /** * Join conditions. * - * @var Condition[] + * @var Condition[]|null */ - public $on; + public array|null $on = null; /** * Columns in Using clause. + */ + public ArrayObj|null $using = null; + + /** + * Index hints * - * @var ArrayObj + * @var IndexHint[] */ - public $using; + public array $indexHints = []; /** - * @see JoinKeyword::$JOINS + * @see JoinKeyword::JOINS * - * @param string $type Join type - * @param Expression $expr join expression - * @param Condition[] $on join conditions - * @param ArrayObj $using columns joined + * @param string|null $type Join type + * @param Expression|null $expr join expression + * @param Condition[]|null $on join conditions + * @param ArrayObj|null $using columns joined + * @param IndexHint[] $indexHints index hints */ - public function __construct($type = null, $expr = null, $on = null, $using = null) - { + public function __construct( + string|null $type = null, + Expression|null $expr = null, + array|null $on = null, + ArrayObj|null $using = null, + array $indexHints = [], + ) { $this->type = $type; $this->expr = $expr; $this->on = $on; $this->using = $using; + $this->indexHints = $indexHints; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return JoinKeyword[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ JOIN ]----------------------> 1 - * - * 1 -----------------------[ expr ]----------------------> 2 - * - * 2 ------------------------[ ON ]-----------------------> 3 - * 2 -----------------------[ USING ]---------------------> 4 - * - * 3 --------------------[ conditions ]-------------------> 0 - * - * 4 ----------------------[ columns ]--------------------> 0 - * - * @var int - */ - $state = 0; - - // By design, the parser will parse first token after the keyword. - // In this case, the keyword must be analyzed too, in order to determine - // the type of this join. - if ($list->idx > 0) { - --$list->idx; - } - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if (($token->type !== Token::TYPE_KEYWORD) || empty(static::$JOINS[$token->keyword])) { - break; - } - - $expr->type = static::$JOINS[$token->keyword]; - $state = 1; - } elseif ($state === 1) { - $expr->expr = Expression::parse($parser, $list, ['field' => 'table']); - $state = 2; - } elseif ($state === 2) { - if ($token->type === Token::TYPE_KEYWORD) { - switch ($token->keyword) { - case 'ON': - $state = 3; - break; - case 'USING': - $state = 4; - break; - default: - if (empty(static::$JOINS[$token->keyword])) { - /* Next clause is starting */ - break 2; - } - - $ret[] = $expr; - $expr = new static(); - $expr->type = static::$JOINS[$token->keyword]; - $state = 1; - - break; - } - } - } elseif ($state === 3) { - $expr->on = Condition::parse($parser, $list); - $ret[] = $expr; - $expr = new static(); - $state = 0; - } elseif ($state === 4) { - $expr->using = ArrayObj::parse($parser, $list); - $ret[] = $expr; - $expr = new static(); - $state = 0; - } - } - - if (! empty($expr->type)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; + return array_search($this->type, self::JOINS) . ' ' . $this->expr + . ($this->indexHints !== [] ? ' ' . IndexHints::buildAll($this->indexHints) : '') + . (! empty($this->on) ? ' ON ' . Conditions::buildAll($this->on) : '') + . (! empty($this->using) ? ' USING ' . $this->using->build() : ''); } - /** - * @param JoinKeyword[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - $ret = []; - foreach ($component as $c) { - $ret[] = array_search($c->type, static::$JOINS) . ' ' . $c->expr - . (! empty($c->on) - ? ' ON ' . Condition::build($c->on) : '') - . (! empty($c->using) - ? ' USING ' . ArrayObj::build($c->using) : ''); - } - - return implode(' ', $ret); + return $this->build(); } } diff --git a/src/Components/Key.php b/src/Components/Key.php index 9c0ff839b..fa0744d9a 100644 --- a/src/Components/Key.php +++ b/src/Components/Key.php @@ -6,9 +6,6 @@ use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Context; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; use function implode; use function trim; @@ -17,103 +14,48 @@ * Parses the definition of a key. * * Used for parsing `CREATE TABLE` statement. - * - * @final */ -class Key extends Component +final class Key implements Component { - /** - * All key options. - * - * @var array> - * @psalm-var array [ - 1, - 'var=', - ], - 'USING' => [ - 2, - 'var', - ], - 'WITH PARSER' => [ - 3, - 'var', - ], - 'COMMENT' => [ - 4, - 'var', - ], - // MariaDB options - 'CLUSTERING' => [ - 4, - 'var=', - ], - 'ENGINE_ATTRIBUTE' => [ - 5, - 'var=', - ], - 'SECONDARY_ENGINE_ATTRIBUTE' => [ - 5, - 'var=', - ], - // MariaDB & MySQL options - 'VISIBLE' => 6, - 'INVISIBLE' => 6, - // MariaDB options - 'IGNORED' => 10, - 'NOT IGNORED' => 10, - ]; - /** * The name of this key. - * - * @var string */ - public $name; + public string|null $name = null; /** * The key columns * - * @var array> - * @phpstan-var array{name?: string, length?: int, order?: string}[] + * @var array{name?: string, length?: int, order?: string}[] */ - public $columns; + public array $columns; /** * The type of this key. - * - * @var string */ - public $type; + public string|null $type = null; /** * The expression if the Key is not using column names - * - * @var string|null */ - public $expr = null; + public string|null $expr = null; /** * The options of this key or null if none where found. - * - * @var OptionsArray|null */ - public $options; + public OptionsArray|null $options = null; /** - * @param string $name the name of the key + * @param string|null $name the name of the key * @param array> $columns the columns covered by this key - * @param string $type the type of this key - * @param OptionsArray $options the options of this key + * @param string|null $type the type of this key + * @param OptionsArray|null $options the options of this key * @phpstan-param array{name?: string, length?: int, order?: string}[] $columns */ public function __construct( - $name = null, + string|null $name = null, array $columns = [], - $type = null, - $options = null + string|null $type = null, + OptionsArray|null $options = null, ) { $this->name = $name; $this->columns = $columns; @@ -121,169 +63,19 @@ public function __construct( $this->options = $options; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Key - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * Last parsed column. - * - * @var array - */ - $lastColumn = []; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ type ]---------------------------> 1 - * - * 1 ---------------------[ name ]---------------------------> 1 - * 1 ---------------------[ columns ]------------------------> 2 - * 1 ---------------------[ expression ]---------------------> 5 - * - * 2 ---------------------[ column length ]------------------> 3 - * 3 ---------------------[ column length ]------------------> 2 - * 2 ---------------------[ options ]------------------------> 4 - * 5 ---------------------[ expression ]---------------------> 4 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->type = $token->value; - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $positionBeforeSearch = $list->idx; - $list->idx++;// Ignore the current token "(" or the search condition will always be true - $nextToken = $list->getNext(); - $list->idx = $positionBeforeSearch;// Restore the position - - if ($nextToken !== null && $nextToken->value === '(') { - // Switch to expression mode - $state = 5; - } else { - $state = 2; - } - } else { - $ret->name = $token->value; - } - } elseif ($state === 2) { - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - $state = 3; - } elseif (($token->value === ',') || ($token->value === ')')) { - $state = $token->value === ',' ? 2 : 4; - if (! empty($lastColumn)) { - $ret->columns[] = $lastColumn; - $lastColumn = []; - } - } - } elseif ( - ( - $token->type === Token::TYPE_KEYWORD - ) - && - ( - ($token->keyword === 'ASC') || ($token->keyword === 'DESC') - ) - ) { - $lastColumn['order'] = $token->keyword; - } else { - $lastColumn['name'] = $token->value; - } - } elseif ($state === 3) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ')')) { - $state = 2; - } else { - $lastColumn['length'] = $token->value; - } - } elseif ($state === 4) { - $ret->options = OptionsArray::parse($parser, $list, static::$KEY_OPTIONS); - ++$list->idx; - break; - } elseif ($state === 5) { - if ($token->type === Token::TYPE_OPERATOR) { - // This got back to here and we reached the end of the expression - if ($token->value === ')') { - $state = 4;// go back to state 4 to fetch options - continue; - } - - // The expression is not finished, adding a separator for the next expression - if ($token->value === ',') { - $ret->expr .= ', '; - continue; - } - - // Start of the expression - if ($token->value === '(') { - // This is the first expression, set to empty - if ($ret->expr === null) { - $ret->expr = ''; - } - - $ret->expr .= Expression::parse($parser, $list, ['parenthesesDelimited' => true]); - continue; - } - // Another unexpected operator was found - } - - // Something else than an operator was found - $parser->error('Unexpected token.', $token); - } - } - - --$list->idx; - - return $ret; - } - - /** - * @param Key $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { - $ret = $component->type . ' '; - if (! empty($component->name)) { - $ret .= Context::escape($component->name) . ' '; + $ret = $this->type . ' '; + if (! empty($this->name)) { + $ret .= Context::escape($this->name) . ' '; } - if ($component->expr !== null) { - return $ret . '(' . $component->expr . ') ' . $component->options; + if ($this->expr !== null) { + return $ret . '(' . $this->expr . ') ' . $this->options; } $columns = []; - foreach ($component->columns as $column) { + foreach ($this->columns as $column) { $tmp = ''; if (isset($column['name'])) { $tmp .= Context::escape($column['name']); @@ -300,8 +92,13 @@ public static function build($component, array $options = []) $columns[] = $tmp; } - $ret .= '(' . implode(',', $columns) . ') ' . $component->options; + $ret .= '(' . implode(',', $columns) . ') ' . $this->options; return trim($ret); } + + public function __toString(): string + { + return $this->build(); + } } diff --git a/src/Components/Limit.php b/src/Components/Limit.php index 172fd3074..32deb2c8d 100644 --- a/src/Components/Limit.php +++ b/src/Components/Limit.php @@ -5,122 +5,39 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; /** * `LIMIT` keyword parser. - * - * @final */ -class Limit extends Component +final class Limit implements Component { /** * The number of rows skipped. - * - * @var int|string */ - public $offset; + public int|string $offset; /** * The number of rows to be returned. - * - * @var int|string */ - public $rowCount; + public int|string $rowCount; /** * @param int|string $rowCount the row count * @param int|string $offset the offset */ - public function __construct($rowCount = 0, $offset = 0) + public function __construct(int|string $rowCount = 0, int|string $offset = 0) { $this->rowCount = $rowCount; $this->offset = $offset; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Limit - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = new static(); - - $offset = false; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { - break; - } - - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'OFFSET') { - if ($offset) { - $parser->error('An offset was expected.', $token); - } - - $offset = true; - continue; - } - - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { - $ret->offset = $ret->rowCount; - $ret->rowCount = 0; - continue; - } - - // Skip if not a number or a bind parameter (?) - if ( - ! ($token->type === Token::TYPE_NUMBER - || ($token->type === Token::TYPE_SYMBOL && ($token->flags & Token::FLAG_SYMBOL_PARAMETER))) - ) { - break; - } - - if ($offset) { - $ret->offset = $token->value; - $offset = false; - } else { - $ret->rowCount = $token->value; - } - } - - if ($offset) { - $parser->error('An offset was expected.', $list->tokens[$list->idx - 1]); - } - - --$list->idx; - - return $ret; + return $this->offset . ', ' . $this->rowCount; } - /** - * @param Limit $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - return $component->offset . ', ' . $component->rowCount; + return $this->build(); } } diff --git a/src/Components/LockExpression.php b/src/Components/LockExpression.php index 05eeb5e88..adbc00d5b 100644 --- a/src/Components/LockExpression.php +++ b/src/Components/LockExpression.php @@ -5,202 +5,37 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; use function implode; -use function is_array; /** * Parses a reference to a LOCK expression. - * - * @final */ -class LockExpression extends Component +final class LockExpression implements Component { /** * The table to be locked. - * - * @var Expression */ - public $table; + public Expression|null $table = null; /** * The type of lock to be applied. - * - * @var string */ - public $type; + public string|null $type = null; - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return LockExpression - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------- [ tbl_name ] -----------------> 1 - * 1 ---------------- [ lock_type ] ----------------> 2 - * 2 -------------------- [ , ] --------------------> break - * - * @var int - */ - $state = 0; - - $prevToken = null; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ( - $token->type === Token::TYPE_DELIMITER - || ($token->type === Token::TYPE_OPERATOR - && $token->value === ',') - ) { - break; - } - - if ($state === 0) { - $ret->table = Expression::parse($parser, $list, ['parseField' => 'table']); - $state = 1; - } elseif ($state === 1) { - // parse lock type - $ret->type = self::parseLockType($parser, $list); - $state = 2; - } - - $prevToken = $token; - } - - // 2 is the only valid end state - if ($state !== 2) { - $parser->error('Unexpected end of LOCK expression.', $prevToken); - } - - --$list->idx; - - return $ret; + return $this->table . ' ' . $this->type; } - /** - * @param LockExpression|LockExpression[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + /** @param LockExpression[] $component the component to be built */ + public static function buildAll(array $component): string { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->table . ' ' . $component->type; + return implode(', ', $component); } - /** - * @return string - */ - private static function parseLockType(Parser $parser, TokensList $list) + public function __toString(): string { - $lockType = ''; - - /** - * The state of the parser while parsing for lock type. - * - * Below are the states of the parser. - * - * 0 ---------------- [ READ ] -----------------> 1 - * 0 ------------- [ LOW_PRIORITY ] ------------> 2 - * 0 ---------------- [ WRITE ] ----------------> 3 - * 1 ---------------- [ LOCAL ] ----------------> 3 - * 2 ---------------- [ WRITE ] ----------------> 3 - * - * @var int - */ - $state = 0; - - $prevToken = null; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ( - $token->type === Token::TYPE_DELIMITER - || ($token->type === Token::TYPE_OPERATOR - && $token->value === ',') - ) { - --$list->idx; - break; - } - - // Skipping whitespaces and comments. - if ($token->type === Token::TYPE_WHITESPACE || $token->type === Token::TYPE_COMMENT) { - continue; - } - - // We only expect keywords - if ($token->type !== Token::TYPE_KEYWORD) { - $parser->error('Unexpected token.', $token); - break; - } - - if ($state === 0) { - if ($token->keyword === 'READ') { - $state = 1; - } elseif ($token->keyword === 'LOW_PRIORITY') { - $state = 2; - } elseif ($token->keyword === 'WRITE') { - $state = 3; - } else { - $parser->error('Unexpected keyword.', $token); - break; - } - - $lockType .= $token->keyword; - } elseif ($state === 1) { - if ($token->keyword !== 'LOCAL') { - $parser->error('Unexpected keyword.', $token); - break; - } - - $lockType .= ' ' . $token->keyword; - $state = 3; - } elseif ($state === 2) { - if ($token->keyword !== 'WRITE') { - $parser->error('Unexpected keyword.', $token); - break; - } - - $lockType .= ' ' . $token->keyword; - $state = 3; // parsing over - } - - $prevToken = $token; - } - - // Only two possible end states - if ($state !== 1 && $state !== 3) { - $parser->error('Unexpected end of LOCK expression.', $prevToken); - } - - return $lockType; + return $this->build(); } } diff --git a/src/Components/OptionsArray.php b/src/Components/OptionsArray.php index 5c0815bc5..91ef873b3 100644 --- a/src/Components/OptionsArray.php +++ b/src/Components/OptionsArray.php @@ -5,325 +5,83 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; -use PhpMyAdmin\SqlParser\Translator; use function array_merge_recursive; -use function count; use function implode; use function is_array; -use function ksort; -use function sprintf; use function strcasecmp; -use function strtoupper; -/** - * Parses a list of options. - * - * @final - */ -class OptionsArray extends Component +final class OptionsArray implements Component { /** - * ArrayObj of selected options. - * - * @var array - */ - public $options = []; - - /** - * @param array $options The array of options. Options that have a value - * must be an array with at least two keys `name` and - * `expr` or `value`. - */ - public function __construct(array $options = []) - { - $this->options = $options; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return OptionsArray + * @param array> $options $options The array of options. + * Options that have a value must be an array with at least two keys `name` and `expr` or `value`. + * @psalm-param array $options */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function __construct(public array $options = []) { - $ret = new static(); - - /** - * The ID that will be assigned to duplicate options. - * - * @var int - */ - $lastAssignedId = count($options) + 1; - - /** - * The option that was processed last time. - */ - $lastOption = null; - - /** - * The index of the option that was processed last time. - * - * @var int - */ - $lastOptionId = 0; - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ option ]----------------------> 1 - * - * 1 -------------------[ = (optional) ]------------------> 2 - * - * 2 ----------------------[ value ]----------------------> 0 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping comments. - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - // Skipping whitespace if not parsing value. - if (($token->type === Token::TYPE_WHITESPACE) && ($brackets === 0)) { - continue; - } - - if ($lastOption === null) { - $upper = strtoupper($token->token); - if (! isset($options[$upper])) { - // There is no option to be processed. - break; - } - - $lastOption = $options[$upper]; - $lastOptionId = is_array($lastOption) ? - $lastOption[0] : $lastOption; - $state = 0; - - // Checking for option conflicts. - // For example, in `SELECT` statements the keywords `ALL` - // and `DISTINCT` conflict and if used together, they - // produce an invalid query. - // - // Usually, tokens can be identified in the array by the - // option ID, but if conflicts occur, a generated option ID - // is used. - // - // The first pseudo duplicate ID is the maximum value of the - // real options (e.g. if there are 5 options, the first - // fake ID is 6). - if (isset($ret->options[$lastOptionId])) { - $parser->error( - sprintf( - Translator::gettext('This option conflicts with "%1$s".'), - is_array($ret->options[$lastOptionId]) - ? $ret->options[$lastOptionId]['name'] - : $ret->options[$lastOptionId] - ), - $token - ); - $lastOptionId = $lastAssignedId++; - } - } - - if ($state === 0) { - if (! is_array($lastOption)) { - // This is a just keyword option without any value. - // This is the beginning and the end of it. - $ret->options[$lastOptionId] = $token->value; - $lastOption = null; - $state = 0; - } elseif (($lastOption[1] === 'var') || ($lastOption[1] === 'var=')) { - // This is a keyword that is followed by a value. - // This is only the beginning. The value is parsed in state - // 1 and 2. State 1 is used to skip the first equals sign - // and state 2 to parse the actual value. - $ret->options[$lastOptionId] = [ - // @var string The name of the option. - 'name' => $token->value, - // @var bool Whether it contains an equal sign. - // This is used by the builder to rebuild it. - 'equals' => $lastOption[1] === 'var=', - // @var string Raw value. - 'expr' => '', - // @var string Processed value. - 'value' => '', - ]; - $state = 1; - } elseif ($lastOption[1] === 'expr' || $lastOption[1] === 'expr=') { - // This is a keyword that is followed by an expression. - // The expression is used by the specialized parser. - - // Skipping this option in order to parse the expression. - ++$list->idx; - $ret->options[$lastOptionId] = [ - // @var string The name of the option. - 'name' => $token->value, - // @var bool Whether it contains an equal sign. - // This is used by the builder to rebuild it. - 'equals' => $lastOption[1] === 'expr=', - // @var Expression The parsed expression. - 'expr' => '', - ]; - $state = 1; - } - } elseif ($state === 1) { - $state = 2; - if ($token->token === '=') { - $ret->options[$lastOptionId]['equals'] = true; - continue; - } - } - - // This is outside the `elseif` group above because the change might - // change this iteration. - if ($state !== 2) { - continue; - } - - if ($lastOption[1] === 'expr' || $lastOption[1] === 'expr=') { - $ret->options[$lastOptionId]['expr'] = Expression::parse( - $parser, - $list, - empty($lastOption[2]) ? [] : $lastOption[2] - ); - if ($ret->options[$lastOptionId]['expr'] !== null) { - $ret->options[$lastOptionId]['value'] - = $ret->options[$lastOptionId]['expr']->expr; - } - - $lastOption = null; - $state = 0; - } else { - if ($token->token === '(') { - ++$brackets; - } elseif ($token->token === ')') { - --$brackets; - } - - $ret->options[$lastOptionId]['expr'] .= $token->token; - - if ( - ! (($token->token === '(') && ($brackets === 1) - || (($token->token === ')') && ($brackets === 0))) - ) { - // First pair of brackets is being skipped. - $ret->options[$lastOptionId]['value'] .= $token->value; - } - - // Checking if we finished parsing. - if ($brackets === 0) { - $lastOption = null; - } - } - } - - /* - * We reached the end of statement without getting a value - * for an option for which a value was required - */ - if ( - $state === 1 - && $lastOption - && ($lastOption[1] === 'expr' - || $lastOption[1] === 'var' - || $lastOption[1] === 'var=' - || $lastOption[1] === 'expr=') - ) { - $parser->error( - sprintf( - 'Value/Expression for the option %1$s was expected.', - $ret->options[$lastOptionId]['name'] - ), - $list->tokens[$list->idx - 1] - ); - } - - if (empty($options['_UNSORTED'])) { - ksort($ret->options); - } - - --$list->idx; - - return $ret; } - /** - * @param OptionsArray $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { - if (empty($component->options)) { + if ($this->options === []) { return ''; } $options = []; - foreach ($component->options as $option) { + foreach ($this->options as $option) { if (! is_array($option)) { $options[] = $option; } else { $options[] = $option['name'] - . (! empty($option['equals']) && $option['equals'] ? '=' : ' ') - . (! empty($option['expr']) ? $option['expr'] : $option['value']); + . ($option['equals'] ? '=' : ' ') + . ($option['expr'] !== '' ? $option['expr'] : ($option['value'] ?? '')); } } return implode(' ', $options); } + public function has(string $key): bool + { + foreach ($this->options as $option) { + if (is_array($option)) { + if (strcasecmp($key, $option['name']) === 0) { + return ($option['value'] ?? '') !== ''; + } + } elseif (strcasecmp($key, $option) === 0) { + return true; + } + } + + return false; + } + /** - * Checks if it has the specified option and returns it value or true. + * Checks if it has the specified option and returns its value. * * @param string $key the key to be checked * @param bool $getExpr Gets the expression instead of the value. * The value is the processed form of the expression. - * - * @return mixed */ - public function has($key, $getExpr = false) + public function get(string $key, bool $getExpr = false): string|Expression { foreach ($this->options as $option) { if (is_array($option)) { - if (! strcasecmp($key, $option['name'])) { - return $getExpr ? $option['expr'] : $option['value']; + if (strcasecmp($key, $option['name']) === 0) { + return $getExpr ? $option['expr'] : ($option['value'] ?? ''); } - } elseif (! strcasecmp($key, $option)) { - return true; + } elseif (strcasecmp($key, $option) === 0) { + return $option; } } - return false; + return ''; } /** @@ -333,16 +91,16 @@ public function has($key, $getExpr = false) * * @return bool whether the key was found and deleted or not */ - public function remove($key) + public function remove(string $key): bool { foreach ($this->options as $idx => $option) { if (is_array($option)) { - if (! strcasecmp($key, $option['name'])) { + if (strcasecmp($key, $option['name']) === 0) { unset($this->options[$idx]); return true; } - } elseif (! strcasecmp($key, $option)) { + } elseif (strcasecmp($key, $option) === 0) { unset($this->options[$idx]); return true; @@ -355,27 +113,22 @@ public function remove($key) /** * Merges the specified options with these ones. Values with same ID will be * replaced. - * - * @param array|OptionsArray $options the options to be merged - * - * @return void */ - public function merge($options) + public function merge(OptionsArray $options): void { - if (is_array($options)) { - $this->options = array_merge_recursive($this->options, $options); - } elseif ($options instanceof self) { - $this->options = array_merge_recursive($this->options, $options->options); - } + $this->options = array_merge_recursive($this->options, $options->options); } /** * Checks tf there are no options set. - * - * @return bool */ - public function isEmpty() + public function isEmpty(): bool + { + return $this->options === []; + } + + public function __toString(): string { - return empty($this->options); + return $this->build(); } } diff --git a/src/Components/OrderKeyword.php b/src/Components/OrderKeyword.php index c7eab49ed..59bf0458b 100644 --- a/src/Components/OrderKeyword.php +++ b/src/Components/OrderKeyword.php @@ -5,131 +5,39 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; - -use function implode; -use function is_array; /** * `ORDER BY` keyword parser. - * - * @final */ -class OrderKeyword extends Component +final class OrderKeyword implements Component { /** * The expression that is used for ordering. - * - * @var Expression */ - public $expr; + public Expression|null $expr = null; /** * The order type. - * - * @var string */ - public $type; + public OrderSortKeyword $type; /** - * @param Expression $expr the expression that we are sorting by - * @param string $type the sorting type + * @param Expression|null $expr the expression that we are sorting by + * @param OrderSortKeyword $type the sorting type */ - public function __construct($expr = null, $type = 'ASC') + public function __construct(Expression|null $expr = null, OrderSortKeyword $type = OrderSortKeyword::Asc) { $this->expr = $expr; $this->type = $type; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return OrderKeyword[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 --------------------[ expression ]-------------------> 1 - * - * 1 ------------------------[ , ]------------------------> 0 - * 1 -------------------[ ASC / DESC ]--------------------> 1 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $expr->expr = Expression::parse($parser, $list); - $state = 1; - } elseif ($state === 1) { - if ( - ($token->type === Token::TYPE_KEYWORD) - && (($token->keyword === 'ASC') || ($token->keyword === 'DESC')) - ) { - $expr->type = $token->keyword; - } elseif (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - $expr = new static(); - $state = 0; - } else { - break; - } - } - } - - // Last iteration was not processed. - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; + return $this->expr . ' ' . $this->type->value; } - /** - * @param OrderKeyword|OrderKeyword[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->expr . ' ' . $component->type; + return $this->build(); } } diff --git a/src/Components/OrderSortKeyword.php b/src/Components/OrderSortKeyword.php new file mode 100644 index 000000000..109b593d4 --- /dev/null +++ b/src/Components/OrderSortKeyword.php @@ -0,0 +1,11 @@ +name = $name; $this->inOut = $inOut; $this->type = $type; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return ParameterDefinition[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ ( ]------------------------> 1 - * - * 1 ----------------[ IN / OUT / INOUT ]----------------> 1 - * 1 ----------------------[ name ]----------------------> 2 - * - * 2 -------------------[ data type ]--------------------> 3 - * - * 3 ------------------------[ , ]-----------------------> 1 - * 3 ------------------------[ ) ]-----------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $state = 1; - } - - continue; - } elseif ($state === 1) { - if (($token->value === 'IN') || ($token->value === 'OUT') || ($token->value === 'INOUT')) { - $expr->inOut = $token->value; - ++$list->idx; - } elseif ($token->value === ')') { - ++$list->idx; - break; - } else { - $expr->name = $token->value; - $state = 2; - } - } elseif ($state === 2) { - $expr->type = DataType::parse($parser, $list); - $state = 3; - } elseif ($state === 3) { - $ret[] = $expr; - $expr = new static(); - if ($token->value === ',') { - $state = 1; - } elseif ($token->value === ')') { - ++$list->idx; - break; - } - } - } - - // Last iteration was not saved. - if (isset($expr->name) && ($expr->name !== '')) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; - } - - /** - * @param ParameterDefinition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { - if (is_array($component)) { - return '(' . implode(', ', $component) . ')'; - } - $tmp = ''; - if (! empty($component->inOut)) { - $tmp .= $component->inOut . ' '; + if (! empty($this->inOut)) { + $tmp .= $this->inOut . ' '; } return trim( - $tmp . Context::escape($component->name) . ' ' . $component->type + $tmp . Context::escape($this->name) . ' ' . $this->type, ); } + + public function __toString(): string + { + return $this->build(); + } } diff --git a/src/Components/PartitionDefinition.php b/src/Components/PartitionDefinition.php index d101e96fd..ce3874857 100644 --- a/src/Components/PartitionDefinition.php +++ b/src/Components/PartitionDefinition.php @@ -5,22 +5,16 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\Parsers\PartitionDefinitions; -use function implode; -use function is_array; use function trim; /** * Parses the create definition of a partition. * * Used for parsing `CREATE TABLE` statement. - * - * @final */ -class PartitionDefinition extends Component +final class PartitionDefinition implements Component { /** * All field options. @@ -28,7 +22,7 @@ class PartitionDefinition extends Component * @var array> * @psalm-var array [ 1, 'var', @@ -69,185 +63,54 @@ class PartitionDefinition extends Component /** * Whether this entry is a subpartition or a partition. - * - * @var bool */ - public $isSubpartition; + public bool|null $isSubpartition = null; /** * The name of this partition. - * - * @var string */ - public $name; + public string|null $name = null; /** * The type of this partition (what follows the `VALUES` keyword). - * - * @var string */ - public $type; + public string|null $type = null; /** * The expression used to defined this partition. - * - * @var Expression|string */ - public $expr; + public Expression|string|null $expr = null; /** * The subpartitions of this partition. * - * @var PartitionDefinition[] + * @var PartitionDefinition[]|null */ - public $subpartitions; + public array|null $subpartitions = null; /** * The options of this field. - * - * @var OptionsArray */ - public $options; + public OptionsArray|null $options = null; - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return PartitionDefinition - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -------------[ PARTITION | SUBPARTITION ]------------> 1 - * - * 1 -----------------------[ name ]----------------------> 2 - * - * 2 ----------------------[ VALUES ]---------------------> 3 - * - * 3 ---------------------[ LESS THAN ]-------------------> 4 - * 3 ------------------------[ IN ]-----------------------> 4 - * - * 4 -----------------------[ expr ]----------------------> 5 - * - * 5 ----------------------[ options ]--------------------> 6 - * - * 6 ------------------[ subpartitions ]------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->isSubpartition = ($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'SUBPARTITION'); - $state = 1; - } elseif ($state === 1) { - $ret->name = $token->value; - - // Looking ahead for a 'VALUES' keyword. - // Loop until the end of the partition name (delimited by a whitespace) - while ($nextToken = $list->tokens[++$list->idx]) { - if ($nextToken->type !== Token::TYPE_NONE) { - break; - } - - $ret->name .= $nextToken->value; - } - - $idx = $list->idx--; - // Get the first token after the white space. - $nextToken = $list->tokens[++$idx]; - - $state = ($nextToken->type === Token::TYPE_KEYWORD) - && ($nextToken->value === 'VALUES') - ? 2 : 5; - } elseif ($state === 2) { - $state = 3; - } elseif ($state === 3) { - $ret->type = $token->value; - $state = 4; - } elseif ($state === 4) { - if ($token->value === 'MAXVALUE') { - $ret->expr = $token->value; - } else { - $ret->expr = Expression::parse( - $parser, - $list, - [ - 'parenthesesDelimited' => true, - 'breakOnAlias' => true, - ] - ); - } - - $state = 5; - } elseif ($state === 5) { - $ret->options = OptionsArray::parse($parser, $list, static::$OPTIONS); - $state = 6; - } elseif ($state === 6) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $ret->subpartitions = ArrayObj::parse( - $parser, - $list, - ['type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition'] - ); - ++$list->idx; - } - - break; - } + if ($this->isSubpartition) { + return trim('SUBPARTITION ' . $this->name . ' ' . $this->options); } - --$list->idx; + $subpartitions = empty($this->subpartitions) ? '' : ' ' . PartitionDefinitions::buildAll($this->subpartitions); - return $ret; + return trim( + 'PARTITION ' . $this->name + . (empty($this->type) ? '' : ' VALUES ' . $this->type . ' ' . $this->expr . ' ') + . (! empty($this->options) && ! empty($this->type) ? '' : ' ') + . $this->options . $subpartitions, + ); } - /** - * @param PartitionDefinition|PartitionDefinition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return "(\n" . implode(",\n", $component) . "\n)"; - } - - if ($component->isSubpartition) { - return trim('SUBPARTITION ' . $component->name . ' ' . $component->options); - } - - $subpartitions = empty($component->subpartitions) ? '' : ' ' . self::build($component->subpartitions); - - return trim( - 'PARTITION ' . $component->name - . (empty($component->type) ? '' : ' VALUES ' . $component->type . ' ' . $component->expr . ' ') - . (! empty($component->options) && ! empty($component->type) ? '' : ' ') - . $component->options . $subpartitions - ); + return $this->build(); } } diff --git a/src/Components/Reference.php b/src/Components/Reference.php index 15bdd0bf8..8f9e90403 100644 --- a/src/Components/Reference.php +++ b/src/Components/Reference.php @@ -6,153 +6,55 @@ use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Context; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; use function implode; use function trim; /** * `REFERENCES` keyword parser. - * - * @final */ -class Reference extends Component +final class Reference implements Component { - /** - * All references options. - * - * @var array> - * @psalm-var array [ - 1, - 'var', - ], - 'ON DELETE' => [ - 2, - 'var', - ], - 'ON UPDATE' => [ - 3, - 'var', - ], - ]; - /** * The referenced table. - * - * @var Expression */ - public $table; + public Expression|null $table = null; /** * The referenced columns. * * @var string[] */ - public $columns; + public array $columns; /** * The options of the referencing. - * - * @var OptionsArray */ - public $options; + public OptionsArray|null $options = null; /** - * @param Expression $table the name of the table referenced - * @param string[] $columns the columns referenced - * @param OptionsArray $options the options + * @param Expression|null $table the name of the table referenced + * @param string[] $columns the columns referenced + * @param OptionsArray|null $options the options */ - public function __construct($table = null, array $columns = [], $options = null) + public function __construct(Expression|null $table = null, array $columns = [], OptionsArray|null $options = null) { $this->table = $table; $this->columns = $columns; $this->options = $options; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Reference - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ----------------------[ table ]---------------------> 1 - * - * 1 ---------------------[ columns ]--------------------> 2 - * - * 2 ---------------------[ options ]--------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->table = Expression::parse( - $parser, - $list, - [ - 'parseField' => 'table', - 'breakOnAlias' => true, - ] - ); - $state = 1; - } elseif ($state === 1) { - $ret->columns = ArrayObj::parse($parser, $list)->values; - $state = 2; - } elseif ($state === 2) { - $ret->options = OptionsArray::parse($parser, $list, static::$REFERENCES_OPTIONS); - ++$list->idx; - break; - } - } - - --$list->idx; - - return $ret; + return trim( + $this->table + . ' (' . implode(', ', Context::escapeAll($this->columns)) . ') ' + . $this->options, + ); } - /** - * @param Reference $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - return trim( - $component->table - . ' (' . implode(', ', Context::escape($component->columns)) . ') ' - . $component->options - ); + return $this->build(); } } diff --git a/src/Components/RenameOperation.php b/src/Components/RenameOperation.php index e8c0f8f0f..43e207208 100644 --- a/src/Components/RenameOperation.php +++ b/src/Components/RenameOperation.php @@ -5,163 +5,39 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; - -use function implode; -use function is_array; /** * `RENAME TABLE` keyword parser. - * - * @final */ -class RenameOperation extends Component +final class RenameOperation implements Component { /** * The old table name. - * - * @var Expression */ - public $old; + public Expression|null $old = null; /** * The new table name. - * - * @var Expression */ - public $new; + public Expression|null $new = null; /** - * @param Expression $old old expression - * @param Expression $new new expression containing new name + * @param Expression|null $old old expression + * @param Expression|null $new new expression containing new name */ - public function __construct($old = null, $new = null) + public function __construct(Expression|null $old = null, Expression|null $new = null) { $this->old = $old; $this->new = $new; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return RenameOperation[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ old name ]--------------------> 1 - * - * 1 ------------------------[ TO ]-----------------------> 2 - * - * 2 ---------------------[ new name ]--------------------> 3 - * - * 3 ------------------------[ , ]------------------------> 0 - * 3 -----------------------[ else ]----------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $expr->old = Expression::parse( - $parser, - $list, - [ - 'breakOnAlias' => true, - 'parseField' => 'table', - ] - ); - if (empty($expr->old)) { - $parser->error('The old name of the table was expected.', $token); - } - - $state = 1; - } elseif ($state === 1) { - if ($token->type !== Token::TYPE_KEYWORD || $token->keyword !== 'TO') { - $parser->error('Keyword "TO" was expected.', $token); - break; - } - - $state = 2; - } elseif ($state === 2) { - $expr->new = Expression::parse( - $parser, - $list, - [ - 'breakOnAlias' => true, - 'parseField' => 'table', - ] - ); - if (empty($expr->new)) { - $parser->error('The new name of the table was expected.', $token); - } - - $state = 3; - } elseif ($state === 3) { - if (($token->type !== Token::TYPE_OPERATOR) || ($token->value !== ',')) { - break; - } - - $ret[] = $expr; - $expr = new static(); - $state = 0; - } - } - - if ($state !== 3) { - $parser->error('A rename operation was expected.', $list->tokens[$list->idx - 1]); - } - - // Last iteration was not saved. - if (! empty($expr->old)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; + return $this->old . ' TO ' . $this->new; } - /** - * @param RenameOperation $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->old . ' TO ' . $component->new; + return $this->build(); } } diff --git a/src/Components/SetOperation.php b/src/Components/SetOperation.php index 2faf0c611..af2dd4c39 100644 --- a/src/Components/SetOperation.php +++ b/src/Components/SetOperation.php @@ -5,155 +5,36 @@ namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Token; -use PhpMyAdmin\SqlParser\TokensList; -use function implode; -use function in_array; -use function is_array; -use function trim; - -/** - * `SET` keyword parser. - * - * @final - */ -class SetOperation extends Component +final class SetOperation implements Component { /** * The name of the column that is being updated. - * - * @var string */ - public $column; + public string $column; /** * The new value. - * - * @var string */ - public $value; + public string $value; /** * @param string $column Field's name.. * @param string $value new value */ - public function __construct($column = '', $value = '') + public function __construct(string $column = '', string $value = '') { $this->column = $column; $this->value = $value; } - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return SetOperation[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public function build(): string { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ col_name ]--------------------> 0 - * 0 ---------------------[ = or := ]---------------------> 1 - * 1 -----------------------[ value ]---------------------> 1 - * 1 ------------------------[ , ]------------------------> 0 - * - * @var int - */ - $state = 0; - - /** - * Token when the parser has seen the latest comma - * - * @var Token - */ - $commaLastSeenAt = null; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - // No keyword is expected. - if ( - ($token->type === Token::TYPE_KEYWORD) - && ($token->flags & Token::FLAG_KEYWORD_RESERVED) - && ($state === 0) - ) { - break; - } - - if ($state === 0) { - if (in_array($token->token, ['=', ':='], true)) { - $state = 1; - } elseif ($token->value !== ',') { - $expr->column .= $token->token; - } elseif ($token->value === ',') { - $commaLastSeenAt = $token; - } - } elseif ($state === 1) { - $tmp = Expression::parse( - $parser, - $list, - ['breakOnAlias' => true] - ); - if ($tmp === null) { - $parser->error('Missing expression.', $token); - break; - } - - $expr->column = trim($expr->column); - $expr->value = $tmp->expr; - $ret[] = $expr; - $expr = new static(); - $state = 0; - $commaLastSeenAt = null; - } - } - - --$list->idx; - - // We saw a comma, but didn't see a column-value pair after it - if ($commaLastSeenAt !== null) { - $parser->error('Unexpected token.', $commaLastSeenAt); - } - - return $ret; + return $this->column . ' = ' . $this->value; } - /** - * @param SetOperation|SetOperation[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + public function __toString(): string { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->column . ' = ' . $component->value; + return $this->build(); } } diff --git a/src/Components/UnionKeyword.php b/src/Components/UnionKeyword.php deleted file mode 100644 index 010cbeca4..000000000 --- a/src/Components/UnionKeyword.php +++ /dev/null @@ -1,33 +0,0 @@ - $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $tmp = []; - foreach ($component as $componentPart) { - $tmp[] = $componentPart[0] . ' ' . $componentPart[1]; - } - - return implode(' ', $tmp); - } -} diff --git a/src/Components/WithKeyword.php b/src/Components/WithKeyword.php index 93bb4052d..af8600216 100644 --- a/src/Components/WithKeyword.php +++ b/src/Components/WithKeyword.php @@ -6,54 +6,38 @@ use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\ArrayObjs; use RuntimeException; /** * `WITH` keyword builder. - * - * @final */ -final class WithKeyword extends Component +final class WithKeyword implements Component { - /** @var string */ - public $name; - /** @var ArrayObj[] */ - public $columns = []; + public array $columns = []; - /** @var Parser|null */ - public $statement; + public Parser|null $statement = null; - public function __construct(string $name) + public function __construct(public string $name) { - $this->name = $name; } - /** - * @param WithKeyword $component - * @param array $options - * - * @return string - */ - public static function build($component, array $options = []) + public function build(): string { - if (! $component instanceof WithKeyword) { - throw new RuntimeException('Can not build a component that is not a WithKeyword'); - } - - if (! isset($component->statement)) { + if (! isset($this->statement)) { throw new RuntimeException('No statement inside WITH'); } - $str = $component->name; + $str = $this->name; - if ($component->columns) { - $str .= ArrayObj::build($component->columns); + if ($this->columns) { + $str .= ArrayObjs::buildAll($this->columns); } $str .= ' AS ('; - foreach ($component->statement->statements as $statement) { + foreach ($this->statement->statements as $statement) { $str .= $statement->build(); } @@ -61,4 +45,9 @@ public static function build($component, array $options = []) return $str; } + + public function __toString(): string + { + return $this->build(); + } } diff --git a/src/Context.php b/src/Context.php index 3a67e142d..6924423b5 100644 --- a/src/Context.php +++ b/src/Context.php @@ -4,14 +4,16 @@ namespace PhpMyAdmin\SqlParser; -use PhpMyAdmin\SqlParser\Exceptions\LoaderException; +use PhpMyAdmin\SqlParser\Contexts\ContextMySql50700; +use function array_map; use function class_exists; use function explode; +use function in_array; use function intval; -use function is_array; use function is_int; use function is_numeric; +use function preg_match; use function str_replace; use function str_starts_with; use function strlen; @@ -25,51 +27,35 @@ * * Holds the configuration of the context that is currently used. */ -abstract class Context +final class Context { /** * The maximum length of a keyword. - * - * @see static::$TOKEN_KEYWORD */ public const KEYWORD_MAX_LENGTH = 30; /** * The maximum length of a label. * - * @see static::$TOKEN_LABEL * Ref: https://dev.mysql.com/doc/refman/5.7/en/statement-labels.html */ public const LABEL_MAX_LENGTH = 16; /** * The maximum length of an operator. - * - * @see static::$TOKEN_OPERATOR */ public const OPERATOR_MAX_LENGTH = 4; - /** - * The name of the default content. - * - * @var string - */ - public static $defaultContext = '\\PhpMyAdmin\\SqlParser\\Contexts\\ContextMySql50700'; - /** * The name of the loaded context. - * - * @var string */ - public static $loadedContext = '\\PhpMyAdmin\\SqlParser\\Contexts\\ContextMySql50700'; + public static string $loadedContext = ContextMySql50700::class; /** * The prefix concatenated to the context name when an incomplete class name * is specified. - * - * @var string */ - public static $contextPrefix = '\\PhpMyAdmin\\SqlParser\\Contexts\\Context'; + private const CONTEXT_PREFIX = 'PhpMyAdmin\\SqlParser\\Contexts\\Context'; /** * List of keywords. @@ -86,16 +72,15 @@ abstract class Context * Elements are sorted by flags, length and keyword. * * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = []; + public static array $keywords = []; /** * List of operators and their flags. - * - * @var array */ - public static $OPERATORS = [ + private const OPERATORS = [ // Some operators (*, =) may have ambiguous flags, because they depend on // the context they are being used in. // For example: 1. SELECT * FROM table; # SQL specific (wildcard) @@ -139,6 +124,8 @@ abstract class Context ')' => 16, '.' => 16, ',' => 16, + '->' => 16, + '->>' => 16, ';' => 16, ]; @@ -149,10 +136,8 @@ abstract class Context * * @link https://dev.mysql.com/doc/refman/en/sql-mode.html * @link https://mariadb.com/kb/en/sql-mode/ - * - * @var int */ - public static $MODE = self::SQL_MODE_NONE; + public static int $mode = self::SQL_MODE_NONE; public const SQL_MODE_NONE = 0; @@ -358,227 +343,134 @@ abstract class Context */ public const SQL_MODE_TRADITIONAL = 1622052; - // ------------------------------------------------------------------------- - // Keyword. - /** * Checks if the given string is a keyword. * - * @param string $str string to be checked - * @param bool $isReserved checks if the keyword is reserved - * - * @return int|null + * @param bool $isReserved checks if the keyword is reserved */ - public static function isKeyword($str, $isReserved = false) + public static function isKeyword(string $string, bool $isReserved = false): int|null { - $str = strtoupper($str); + $upperString = strtoupper($string); - if (isset(static::$KEYWORDS[$str])) { - if ($isReserved && ! (static::$KEYWORDS[$str] & Token::FLAG_KEYWORD_RESERVED)) { - return null; - } - - return static::$KEYWORDS[$str]; + if ( + ! isset(static::$keywords[$upperString]) + || ($isReserved && ! (static::$keywords[$upperString] & Token::FLAG_KEYWORD_RESERVED)) + ) { + return null; } - return null; + return static::$keywords[$upperString]; } - // ------------------------------------------------------------------------- - // Operator. - /** - * Checks if the given string is an operator. - * - * @param string $str string to be checked - * - * @return int|null the appropriate flag for the operator + * Checks if the given string is an operator and returns the appropriate flag for the operator. */ - public static function isOperator($str) + public static function isOperator(string $string): int|null { - if (! isset(static::$OPERATORS[$str])) { - return null; - } - - return static::$OPERATORS[$str]; + return self::OPERATORS[$string] ?? null; } - // ------------------------------------------------------------------------- - // Whitespace. - /** * Checks if the given character is a whitespace. - * - * @param string $str string to be checked - * - * @return bool */ - public static function isWhitespace($str) + public static function isWhitespace(string $character): bool { - return ($str === ' ') || ($str === "\r") || ($str === "\n") || ($str === "\t"); + return match ($character) { + ' ', "\r", "\n", "\t" => true, + default => false, + }; } - // ------------------------------------------------------------------------- - // Comment. - /** * Checks if the given string is the beginning of a whitespace. * - * @param string $str string to be checked - * @param mixed $end - * * @return int|null the appropriate flag for the comment type */ - public static function isComment($str, $end = false) + public static function isComment(string $string, bool $end = false): int|null { - $len = strlen($str); - if ($len === 0) { - return null; - } - - // If comment is Bash style (#): - if ($str[0] === '#') { - return Token::FLAG_COMMENT_BASH; - } - - // If comment is opening C style (/*), warning, it could be a MySQL command (/*!) - if (($len > 1) && ($str[0] === '/') && ($str[1] === '*')) { - return ($len > 2) && ($str[2] === '!') ? - Token::FLAG_COMMENT_MYSQL_CMD : Token::FLAG_COMMENT_C; - } - - // If comment is closing C style (*/), warning, it could conflicts with wildcard and a real opening C style. - // It would looks like the following valid SQL statement: "SELECT */* comment */ FROM...". - if (($len > 1) && ($str[0] === '*') && ($str[1] === '/')) { - return Token::FLAG_COMMENT_C; - } - - // If comment is SQL style (--\s?): - if (($len > 2) && ($str[0] === '-') && ($str[1] === '-') && static::isWhitespace($str[2])) { - return Token::FLAG_COMMENT_SQL; - } - - if (($len === 2) && $end && ($str[0] === '-') && ($str[1] === '-')) { - return Token::FLAG_COMMENT_SQL; - } - - return null; + return match (true) { + str_starts_with($string, '#') => Token::FLAG_COMMENT_BASH, + str_starts_with($string, '/*!') => Token::FLAG_COMMENT_MYSQL_CMD, + // If comment is opening C style (/*) or is closing C style (*/), warning, it could conflict + // with wildcard and a real opening C style. + // It would look like the following valid SQL statement: "SELECT */* comment */ FROM...". + str_starts_with($string, '/*') || str_starts_with($string, '*/') => Token::FLAG_COMMENT_C, + str_starts_with($string, '-- ') + || str_starts_with($string, "--\r") + || str_starts_with($string, "--\n") + || str_starts_with($string, "--\t") + || ($string === '--' && $end) => Token::FLAG_COMMENT_SQL, + default => null, + }; } - // ------------------------------------------------------------------------- - // Bool. - /** * Checks if the given string is a boolean value. * This actually check only for `TRUE` and `FALSE` because `1` or `0` are * actually numbers and are parsed by specific methods. - * - * @param string $str string to be checked - * - * @return bool */ - public static function isBool($str) + public static function isBool(string $string): bool { - $str = strtoupper($str); + $upperString = strtoupper($string); - return ($str === 'TRUE') || ($str === 'FALSE'); + return $upperString === 'TRUE' || $upperString === 'FALSE'; } - // ------------------------------------------------------------------------- - // Number. - /** * Checks if the given character can be a part of a number. - * - * @param string $str string to be checked - * - * @return bool */ - public static function isNumber($str) + public static function isNumber(string $string): bool { - return ($str >= '0') && ($str <= '9') || ($str === '.') - || ($str === '-') || ($str === '+') || ($str === 'e') || ($str === 'E'); + return in_array($string, ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '-', '+', 'e', 'E'], true); } - // ------------------------------------------------------------------------- - // Symbol. - /** * Checks if the given character is the beginning of a symbol. A symbol * can be either a variable or a field name. * - * @param string $str string to be checked - * * @return int|null the appropriate flag for the symbol type */ - public static function isSymbol($str) + public static function isSymbol(string $character): int|null { - if (strlen($str) === 0) { - return null; - } - - if ($str[0] === '@') { - return Token::FLAG_SYMBOL_VARIABLE; - } - - if ($str[0] === '`') { - return Token::FLAG_SYMBOL_BACKTICK; - } - - if ($str[0] === ':' || $str[0] === '?') { - return Token::FLAG_SYMBOL_PARAMETER; - } - - return null; + return match ($character) { + '@' => Token::FLAG_SYMBOL_VARIABLE, + '`' => Token::FLAG_SYMBOL_BACKTICK, + ':', '?' => Token::FLAG_SYMBOL_PARAMETER, + default => null, + }; } - // ------------------------------------------------------------------------- - // String. - /** * Checks if the given character is the beginning of a string. * - * @param string $str string to be checked + * @param string $character a character to be checked * * @return int|null the appropriate flag for the string type */ - public static function isString($str) + public static function isString(string $character): int|null { - if (strlen($str) === 0) { - return null; - } - - if ($str[0] === '\'') { - return Token::FLAG_STRING_SINGLE_QUOTES; - } - - if ($str[0] === '"') { - return Token::FLAG_STRING_DOUBLE_QUOTES; - } - - return null; + return match ($character) { + '\'' => Token::FLAG_STRING_SINGLE_QUOTES, + '"' => Token::FLAG_STRING_DOUBLE_QUOTES, + default => null, + }; } - // ------------------------------------------------------------------------- - // Delimiter. - /** * Checks if the given character can be a separator for two lexeme. * - * @param string $str string to be checked - * - * @return bool + * @param string $string string to be checked */ - public static function isSeparator($str) + public static function isSeparator(string $string): bool { - // NOTES: Only non alphanumeric ASCII characters may be separators. + // NOTES: Only non-alphanumeric ASCII characters may be separators. // `~` is the last printable ASCII character. - return ($str <= '~') - && ($str !== '_') - && ($str !== '$') - && (($str < '0') || ($str > '9')) - && (($str < 'a') || ($str > 'z')) - && (($str < 'A') || ($str > 'Z')); + return $string <= '~' + && $string !== '_' + && $string !== '$' + && ($string < '0' || $string > '9') + && ($string < 'a' || $string > 'z') + && ($string < 'A' || $string > 'Z'); } /** @@ -588,32 +480,29 @@ public static function isSeparator($str) * * @param string $context name of the context or full class name that defines the context * - * @return void - * - * @throws LoaderException if the specified context doesn't exist. + * @return bool true if the context was loaded, false otherwise */ - public static function load($context = '') + public static function load(string $context = ''): bool { - if (empty($context)) { - $context = self::$defaultContext; + if ($context === '') { + $context = ContextMySql50700::class; } - if ($context[0] !== '\\') { - // Could be the fully qualified class name was given, like `ContextDBMS::class`. - if (class_exists('\\' . $context)) { - $context = '\\' . $context; - } else { - // Short context name (must be formatted into class name). - $context = self::$contextPrefix . $context; + $contextClass = $context; + if (! class_exists($contextClass)) { + $contextClass = self::CONTEXT_PREFIX . $context; + if (! class_exists($contextClass)) { + $contextClass = '\\' . $context; + if (! class_exists($contextClass)) { + return false; + } } } - if (! class_exists($context)) { - throw @new LoaderException('Specified context ("' . $context . '") does not exist.', $context); - } + self::$loadedContext = $contextClass; + self::$keywords = $contextClass::KEYWORDS; - self::$loadedContext = $context; - self::$KEYWORDS = $context::$KEYWORDS; + return true; } /** @@ -624,33 +513,30 @@ public static function load($context = '') * * @see Context::load() * - * @param string $context name of the context or full class name that - * defines the context + * @param string $context name of the context or full class name that defines the context * * @return string|null The loaded context. `null` if no context was loaded. */ - public static function loadClosest($context = '') + public static function loadClosest(string $context = ''): string|null { $length = strlen($context); for ($i = $length; $i > 0;) { - try { - /* Trying to load the new context */ - static::load($context); - + /* Trying to load the new context */ + if (static::load($context)) { return $context; - } catch (LoaderException $e) { - /* Replace last two non zero digits by zeroes */ - do { - $i -= 2; - $part = substr($context, $i, 2); - /* No more numeric parts to strip */ - if (! is_numeric($part)) { - break 2; - } - } while (intval($part) === 0 && $i > 0); - - $context = substr($context, 0, $i) . '00' . substr($context, $i + 2); } + + /* Replace last two non zero digits by zeroes */ + do { + $i -= 2; + $part = substr($context, $i, 2); + /* No more numeric parts to strip */ + if (! is_numeric($part)) { + break 2; + } + } while (intval($part) === 0 && $i > 0); + + $context = substr($context, 0, $i) . '00' . substr($context, $i + 2); } /* Fallback to loading at least matching engine */ @@ -670,161 +556,86 @@ public static function loadClosest($context = '') */ public static function getMode(): int { - return static::$MODE; + return static::$mode; } /** * Sets the SQL mode. - * - * @param int|string $mode - * - * @return void */ - public static function setMode($mode = self::SQL_MODE_NONE) + public static function setMode(int|string $mode = self::SQL_MODE_NONE): void { if (is_int($mode)) { - static::$MODE = $mode; + static::$mode = $mode; return; } - static::$MODE = self::SQL_MODE_NONE; + static::$mode = self::SQL_MODE_NONE; if ($mode === '') { return; } $modes = explode(',', $mode); foreach ($modes as $sqlMode) { - static::$MODE |= self::getModeFromString($sqlMode); + static::$mode |= self::getModeFromString($sqlMode); } } - /** - * @psalm-suppress MixedReturnStatement, MixedInferredReturnType Is caused by the LSB of the constants - */ + /** @psalm-suppress MixedReturnStatement, MixedInferredReturnType Is caused by the LSB of the constants */ private static function getModeFromString(string $mode): int { - // phpcs:disable SlevomatCodingStandard.Classes.DisallowLateStaticBindingForConstants.DisallowedLateStaticBindingForConstant - switch ($mode) { - case 'ALLOW_INVALID_DATES': - return static::SQL_MODE_ALLOW_INVALID_DATES; - - case 'ANSI_QUOTES': - return static::SQL_MODE_ANSI_QUOTES; - - case 'COMPAT_MYSQL': - return static::SQL_MODE_COMPAT_MYSQL; - - case 'ERROR_FOR_DIVISION_BY_ZERO': - return static::SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO; - - case 'HIGH_NOT_PRECEDENCE': - return static::SQL_MODE_HIGH_NOT_PRECEDENCE; - - case 'IGNORE_SPACE': - return static::SQL_MODE_IGNORE_SPACE; - - case 'NO_AUTO_CREATE_USER': - return static::SQL_MODE_NO_AUTO_CREATE_USER; - - case 'NO_AUTO_VALUE_ON_ZERO': - return static::SQL_MODE_NO_AUTO_VALUE_ON_ZERO; - - case 'NO_BACKSLASH_ESCAPES': - return static::SQL_MODE_NO_BACKSLASH_ESCAPES; - - case 'NO_DIR_IN_CREATE': - return static::SQL_MODE_NO_DIR_IN_CREATE; - - case 'NO_ENGINE_SUBSTITUTION': - return static::SQL_MODE_NO_ENGINE_SUBSTITUTION; - - case 'NO_FIELD_OPTIONS': - return static::SQL_MODE_NO_FIELD_OPTIONS; - - case 'NO_KEY_OPTIONS': - return static::SQL_MODE_NO_KEY_OPTIONS; - - case 'NO_TABLE_OPTIONS': - return static::SQL_MODE_NO_TABLE_OPTIONS; - - case 'NO_UNSIGNED_SUBTRACTION': - return static::SQL_MODE_NO_UNSIGNED_SUBTRACTION; - - case 'NO_ZERO_DATE': - return static::SQL_MODE_NO_ZERO_DATE; - - case 'NO_ZERO_IN_DATE': - return static::SQL_MODE_NO_ZERO_IN_DATE; - - case 'ONLY_FULL_GROUP_BY': - return static::SQL_MODE_ONLY_FULL_GROUP_BY; - - case 'PIPES_AS_CONCAT': - return static::SQL_MODE_PIPES_AS_CONCAT; - - case 'REAL_AS_FLOAT': - return static::SQL_MODE_REAL_AS_FLOAT; - - case 'STRICT_ALL_TABLES': - return static::SQL_MODE_STRICT_ALL_TABLES; - - case 'STRICT_TRANS_TABLES': - return static::SQL_MODE_STRICT_TRANS_TABLES; - - case 'NO_ENCLOSING_QUOTES': - return static::SQL_MODE_NO_ENCLOSING_QUOTES; - - case 'ANSI': - return static::SQL_MODE_ANSI; - - case 'DB2': - return static::SQL_MODE_DB2; - - case 'MAXDB': - return static::SQL_MODE_MAXDB; - - case 'MSSQL': - return static::SQL_MODE_MSSQL; - - case 'ORACLE': - return static::SQL_MODE_ORACLE; - - case 'POSTGRESQL': - return static::SQL_MODE_POSTGRESQL; - - case 'TRADITIONAL': - return static::SQL_MODE_TRADITIONAL; - - default: - return self::SQL_MODE_NONE; - } - // phpcs:enable + return match ($mode) { + 'ALLOW_INVALID_DATES' => self::SQL_MODE_ALLOW_INVALID_DATES, + 'ANSI_QUOTES' => self::SQL_MODE_ANSI_QUOTES, + 'COMPAT_MYSQL' => self::SQL_MODE_COMPAT_MYSQL, + 'ERROR_FOR_DIVISION_BY_ZERO' => self::SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO, + 'HIGH_NOT_PRECEDENCE' => self::SQL_MODE_HIGH_NOT_PRECEDENCE, + 'IGNORE_SPACE' => self::SQL_MODE_IGNORE_SPACE, + 'NO_AUTO_CREATE_USER' => self::SQL_MODE_NO_AUTO_CREATE_USER, + 'NO_AUTO_VALUE_ON_ZERO' => self::SQL_MODE_NO_AUTO_VALUE_ON_ZERO, + 'NO_BACKSLASH_ESCAPES' => self::SQL_MODE_NO_BACKSLASH_ESCAPES, + 'NO_DIR_IN_CREATE' => self::SQL_MODE_NO_DIR_IN_CREATE, + 'NO_ENGINE_SUBSTITUTION' => self::SQL_MODE_NO_ENGINE_SUBSTITUTION, + 'NO_FIELD_OPTIONS' => self::SQL_MODE_NO_FIELD_OPTIONS, + 'NO_KEY_OPTIONS' => self::SQL_MODE_NO_KEY_OPTIONS, + 'NO_TABLE_OPTIONS' => self::SQL_MODE_NO_TABLE_OPTIONS, + 'NO_UNSIGNED_SUBTRACTION' => self::SQL_MODE_NO_UNSIGNED_SUBTRACTION, + 'NO_ZERO_DATE' => self::SQL_MODE_NO_ZERO_DATE, + 'NO_ZERO_IN_DATE' => self::SQL_MODE_NO_ZERO_IN_DATE, + 'ONLY_FULL_GROUP_BY' => self::SQL_MODE_ONLY_FULL_GROUP_BY, + 'PIPES_AS_CONCAT' => self::SQL_MODE_PIPES_AS_CONCAT, + 'REAL_AS_FLOAT' => self::SQL_MODE_REAL_AS_FLOAT, + 'STRICT_ALL_TABLES' => self::SQL_MODE_STRICT_ALL_TABLES, + 'STRICT_TRANS_TABLES' => self::SQL_MODE_STRICT_TRANS_TABLES, + 'NO_ENCLOSING_QUOTES' => self::SQL_MODE_NO_ENCLOSING_QUOTES, + 'ANSI' => self::SQL_MODE_ANSI, + 'DB2' => self::SQL_MODE_DB2, + 'MAXDB' => self::SQL_MODE_MAXDB, + 'MSSQL' => self::SQL_MODE_MSSQL, + 'ORACLE' => self::SQL_MODE_ORACLE, + 'POSTGRESQL' => self::SQL_MODE_POSTGRESQL, + 'TRADITIONAL' => self::SQL_MODE_TRADITIONAL, + default => self::SQL_MODE_NONE, + }; } /** * Escapes the symbol by adding surrounding backticks. * - * @param string[]|string $str the string to be escaped - * @param string $quote quote to be used when escaping - * - * @return string|string[] + * @param string $str the string to be escaped + * @param string $quote quote to be used when escaping */ - public static function escape($str, $quote = '`') + public static function escape(string $str, string $quote = '`'): string { - if (is_array($str)) { - foreach ($str as $key => $value) { - $str[$key] = static::escape($value); - } - + if ( + (static::$mode & self::SQL_MODE_NO_ENCLOSING_QUOTES) && ! ( + static::isKeyword($str, true) || self::doesIdentifierRequireQuoting($str) + ) + ) { return $str; } - if ((static::$MODE & self::SQL_MODE_NO_ENCLOSING_QUOTES) && (! static::isKeyword($str, true))) { - return $str; - } - - if (static::$MODE & self::SQL_MODE_ANSI_QUOTES) { + if (static::$mode & self::SQL_MODE_ANSI_QUOTES) { $quote = '"'; } @@ -832,13 +643,15 @@ public static function escape($str, $quote = '`') } /** - * Returns char used to quote identifiers based on currently set SQL Mode (ie. standard or ANSI_QUOTES) + * Escapes the symbol by adding surrounding backticks. * - * @return string either " (double quote, ansi_quotes mode) or ` (backtick, standard mode) + * @param string[] $strings the string to be escaped + * + * @return string[] */ - public static function getIdentifierQuote() + public static function escapeAll(array $strings): array { - return self::hasMode(self::SQL_MODE_ANSI_QUOTES) ? '"' : '`'; + return array_map(static::escape(...), $strings); } /** @@ -848,15 +661,17 @@ public static function getIdentifierQuote() * * @return bool false on empty param, true/false on given constant/int value */ - public static function hasMode($flag = null) + public static function hasMode(int|null $flag = null): bool { if (empty($flag)) { return false; } - return (self::$MODE & $flag) === $flag; + return (self::$mode & $flag) === $flag; } -} -// Initializing the default context. -Context::load(); + private static function doesIdentifierRequireQuoting(string $identifier): bool + { + return preg_match('/^[$]|^\d+$|[^0-9a-zA-Z$_\x80-\xffff]/', $identifier) === 1; + } +} diff --git a/src/Contexts/ContextMariaDb100000.php b/src/Contexts/ContextMariaDb100000.php index 8401038b7..0c8118c4b 100644 --- a/src/Contexts/ContextMariaDb100000.php +++ b/src/Contexts/ContextMariaDb100000.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100000 extends Context +final class ContextMariaDb100000 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100000 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, 'AGGREGATE' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100100.php b/src/Contexts/ContextMariaDb100100.php index d76b86c9f..266ae81ff 100644 --- a/src/Contexts/ContextMariaDb100100.php +++ b/src/Contexts/ContextMariaDb100100.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100100 extends Context +final class ContextMariaDb100100 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100100 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100200.php b/src/Contexts/ContextMariaDb100200.php index 7a7b37964..fab2e37bf 100644 --- a/src/Contexts/ContextMariaDb100200.php +++ b/src/Contexts/ContextMariaDb100200.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100200 extends Context +final class ContextMariaDb100200 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100200 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100300.php b/src/Contexts/ContextMariaDb100300.php index 7fcbcbe3e..9fdc07a5e 100644 --- a/src/Contexts/ContextMariaDb100300.php +++ b/src/Contexts/ContextMariaDb100300.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100300 extends Context +final class ContextMariaDb100300 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100300 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100400.php b/src/Contexts/ContextMariaDb100400.php index e215f9c24..f7ad1e407 100644 --- a/src/Contexts/ContextMariaDb100400.php +++ b/src/Contexts/ContextMariaDb100400.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100400 extends Context +final class ContextMariaDb100400 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100400 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100500.php b/src/Contexts/ContextMariaDb100500.php index 3c471f496..0f0b7395e 100644 --- a/src/Contexts/ContextMariaDb100500.php +++ b/src/Contexts/ContextMariaDb100500.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100500 extends Context +final class ContextMariaDb100500 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100500 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100600.php b/src/Contexts/ContextMariaDb100600.php index d1525200d..9efa5f9b9 100644 --- a/src/Contexts/ContextMariaDb100600.php +++ b/src/Contexts/ContextMariaDb100600.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100600 extends Context +final class ContextMariaDb100600 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100600 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100700.php b/src/Contexts/ContextMariaDb100700.php index 2b2840b41..d20a179f4 100644 --- a/src/Contexts/ContextMariaDb100700.php +++ b/src/Contexts/ContextMariaDb100700.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100700 extends Context +final class ContextMariaDb100700 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100700 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100800.php b/src/Contexts/ContextMariaDb100800.php index 538a9a857..794fd7c5f 100644 --- a/src/Contexts/ContextMariaDb100800.php +++ b/src/Contexts/ContextMariaDb100800.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100800 extends Context +final class ContextMariaDb100800 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100800 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb100900.php b/src/Contexts/ContextMariaDb100900.php index 3b72fc34f..93a4d5537 100644 --- a/src/Contexts/ContextMariaDb100900.php +++ b/src/Contexts/ContextMariaDb100900.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb100900 extends Context +final class ContextMariaDb100900 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb100900 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb101000.php b/src/Contexts/ContextMariaDb101000.php index f600d24d5..d7a89e703 100644 --- a/src/Contexts/ContextMariaDb101000.php +++ b/src/Contexts/ContextMariaDb101000.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb101000 extends Context +final class ContextMariaDb101000 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb101000 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb101100.php b/src/Contexts/ContextMariaDb101100.php index 35f43fa8a..58e70ff94 100644 --- a/src/Contexts/ContextMariaDb101100.php +++ b/src/Contexts/ContextMariaDb101100.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb101100 extends Context +final class ContextMariaDb101100 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb101100 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110000.php b/src/Contexts/ContextMariaDb110000.php index 7d937bedd..77b0a39ba 100644 --- a/src/Contexts/ContextMariaDb110000.php +++ b/src/Contexts/ContextMariaDb110000.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110000 extends Context +final class ContextMariaDb110000 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110000 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110100.php b/src/Contexts/ContextMariaDb110100.php index a3971d011..21a879b57 100644 --- a/src/Contexts/ContextMariaDb110100.php +++ b/src/Contexts/ContextMariaDb110100.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110100 extends Context +final class ContextMariaDb110100 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110100 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110200.php b/src/Contexts/ContextMariaDb110200.php index de24e201f..ec1421ae9 100644 --- a/src/Contexts/ContextMariaDb110200.php +++ b/src/Contexts/ContextMariaDb110200.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110200 extends Context +final class ContextMariaDb110200 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110200 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110300.php b/src/Contexts/ContextMariaDb110300.php index 2597c5eaf..7895baa58 100644 --- a/src/Contexts/ContextMariaDb110300.php +++ b/src/Contexts/ContextMariaDb110300.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110300 extends Context +final class ContextMariaDb110300 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110300 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110400.php b/src/Contexts/ContextMariaDb110400.php index 2580ff9d8..2fc65a015 100644 --- a/src/Contexts/ContextMariaDb110400.php +++ b/src/Contexts/ContextMariaDb110400.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110400 extends Context +final class ContextMariaDb110400 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110400 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110500.php b/src/Contexts/ContextMariaDb110500.php index 26e741980..54b4ff506 100644 --- a/src/Contexts/ContextMariaDb110500.php +++ b/src/Contexts/ContextMariaDb110500.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110500 extends Context +final class ContextMariaDb110500 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110500 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110600.php b/src/Contexts/ContextMariaDb110600.php index 979bfb2a0..28d58eb07 100644 --- a/src/Contexts/ContextMariaDb110600.php +++ b/src/Contexts/ContextMariaDb110600.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110600 extends Context +final class ContextMariaDb110600 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110600 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMariaDb110700.php b/src/Contexts/ContextMariaDb110700.php index 647d533e3..c528ba54b 100644 --- a/src/Contexts/ContextMariaDb110700.php +++ b/src/Contexts/ContextMariaDb110700.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://mariadb.com/kb/en/reserved-words/ */ -class ContextMariaDb110700 extends Context +final class ContextMariaDb110700 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMariaDb110700 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, @@ -1038,9 +1037,9 @@ class ContextMariaDb110700 extends Context 'UPPER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, 'USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, 'UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, - 'UUIDV4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, - 'UUIDV7' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, 'UUID_SHORT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V7' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, 'VALIDATE_PASSWORD_STRENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, 'VARIANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, 'VAR_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMariaDb110800.php b/src/Contexts/ContextMariaDb110800.php new file mode 100644 index 000000000..e076d9043 --- /dev/null +++ b/src/Contexts/ContextMariaDb110800.php @@ -0,0 +1,1104 @@ + + * @phpstan-var non-empty-array + */ + public const KEYWORDS = [ + 'ACCOUNT' => Token::FLAG_KEYWORD, + 'ACTION' => Token::FLAG_KEYWORD, + 'AFTER' => Token::FLAG_KEYWORD, + 'AGGREGATE' => Token::FLAG_KEYWORD, + 'ALGORITHM' => Token::FLAG_KEYWORD, + 'ALWAYS' => Token::FLAG_KEYWORD, + 'ANALYSE' => Token::FLAG_KEYWORD, + 'ANY' => Token::FLAG_KEYWORD, + 'AT' => Token::FLAG_KEYWORD, + 'AUTOEXTEND_SIZE' => Token::FLAG_KEYWORD, + 'AUTO_INCREMENT' => Token::FLAG_KEYWORD, + 'AVG_ROW_LENGTH' => Token::FLAG_KEYWORD, + 'BACKUP' => Token::FLAG_KEYWORD, + 'BEGIN' => Token::FLAG_KEYWORD, + 'BINLOG' => Token::FLAG_KEYWORD, + 'BLOCK' => Token::FLAG_KEYWORD, + 'BTREE' => Token::FLAG_KEYWORD, + 'BYTE' => Token::FLAG_KEYWORD, + 'CACHE' => Token::FLAG_KEYWORD, + 'CASCADED' => Token::FLAG_KEYWORD, + 'CATALOG_NAME' => Token::FLAG_KEYWORD, + 'CHAIN' => Token::FLAG_KEYWORD, + 'CHANGED' => Token::FLAG_KEYWORD, + 'CHANNEL' => Token::FLAG_KEYWORD, + 'CHECKSUM' => Token::FLAG_KEYWORD, + 'CIPHER' => Token::FLAG_KEYWORD, + 'CLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'CLIENT' => Token::FLAG_KEYWORD, + 'CLOSE' => Token::FLAG_KEYWORD, + 'CODE' => Token::FLAG_KEYWORD, + 'COLUMNS' => Token::FLAG_KEYWORD, + 'COLUMN_FORMAT' => Token::FLAG_KEYWORD, + 'COLUMN_NAME' => Token::FLAG_KEYWORD, + 'COMMENT' => Token::FLAG_KEYWORD, + 'COMMIT' => Token::FLAG_KEYWORD, + 'COMMITTED' => Token::FLAG_KEYWORD, + 'COMPACT' => Token::FLAG_KEYWORD, + 'COMPLETION' => Token::FLAG_KEYWORD, + 'COMPRESSED' => Token::FLAG_KEYWORD, + 'COMPRESSION' => Token::FLAG_KEYWORD, + 'CONCURRENT' => Token::FLAG_KEYWORD, + 'CONNECTION' => Token::FLAG_KEYWORD, + 'CONSISTENT' => Token::FLAG_KEYWORD, + 'CONSTRAINT_CATALOG' => Token::FLAG_KEYWORD, + 'CONSTRAINT_NAME' => Token::FLAG_KEYWORD, + 'CONSTRAINT_SCHEMA' => Token::FLAG_KEYWORD, + 'CONTEXT' => Token::FLAG_KEYWORD, + 'CPU' => Token::FLAG_KEYWORD, + 'CUBE' => Token::FLAG_KEYWORD, + 'CURRENT' => Token::FLAG_KEYWORD, + 'CURSOR_NAME' => Token::FLAG_KEYWORD, + 'DATA' => Token::FLAG_KEYWORD, + 'DATAFILE' => Token::FLAG_KEYWORD, + 'DEALLOCATE' => Token::FLAG_KEYWORD, + 'DEFAULT_AUTH' => Token::FLAG_KEYWORD, + 'DEFINER' => Token::FLAG_KEYWORD, + 'DELAY_KEY_WRITE' => Token::FLAG_KEYWORD, + 'DES_KEY_FILE' => Token::FLAG_KEYWORD, + 'DIAGNOSTICS' => Token::FLAG_KEYWORD, + 'DIRECTORY' => Token::FLAG_KEYWORD, + 'DISABLE' => Token::FLAG_KEYWORD, + 'DISCARD' => Token::FLAG_KEYWORD, + 'DISK' => Token::FLAG_KEYWORD, + 'DO' => Token::FLAG_KEYWORD, + 'DUMPFILE' => Token::FLAG_KEYWORD, + 'DUPLICATE' => Token::FLAG_KEYWORD, + 'DYNAMIC' => Token::FLAG_KEYWORD, + 'ENABLE' => Token::FLAG_KEYWORD, + 'END' => Token::FLAG_KEYWORD, + 'ENDS' => Token::FLAG_KEYWORD, + 'ENGINE' => Token::FLAG_KEYWORD, + 'ENGINES' => Token::FLAG_KEYWORD, + 'ERROR' => Token::FLAG_KEYWORD, + 'ERRORS' => Token::FLAG_KEYWORD, + 'ESCAPE' => Token::FLAG_KEYWORD, + 'EVENT' => Token::FLAG_KEYWORD, + 'EVENTS' => Token::FLAG_KEYWORD, + 'EVERY' => Token::FLAG_KEYWORD, + 'EXCHANGE' => Token::FLAG_KEYWORD, + 'EXECUTE' => Token::FLAG_KEYWORD, + 'EXPANSION' => Token::FLAG_KEYWORD, + 'EXPIRE' => Token::FLAG_KEYWORD, + 'EXPORT' => Token::FLAG_KEYWORD, + 'EXTENDED' => Token::FLAG_KEYWORD, + 'EXTENT_SIZE' => Token::FLAG_KEYWORD, + 'FAST' => Token::FLAG_KEYWORD, + 'FAULTS' => Token::FLAG_KEYWORD, + 'FIELDS' => Token::FLAG_KEYWORD, + 'FILE' => Token::FLAG_KEYWORD, + 'FILE_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'FILTER' => Token::FLAG_KEYWORD, + 'FIRST' => Token::FLAG_KEYWORD, + 'FLUSH' => Token::FLAG_KEYWORD, + 'FOLLOWS' => Token::FLAG_KEYWORD, + 'FOUND' => Token::FLAG_KEYWORD, + 'FULL' => Token::FLAG_KEYWORD, + 'FUNCTION' => Token::FLAG_KEYWORD, + 'GENERAL' => Token::FLAG_KEYWORD, + 'GLOBAL' => Token::FLAG_KEYWORD, + 'GRANTS' => Token::FLAG_KEYWORD, + 'GROUP_REPLICATION' => Token::FLAG_KEYWORD, + 'HANDLER' => Token::FLAG_KEYWORD, + 'HASH' => Token::FLAG_KEYWORD, + 'HELP' => Token::FLAG_KEYWORD, + 'HOST' => Token::FLAG_KEYWORD, + 'HOSTS' => Token::FLAG_KEYWORD, + 'IDENTIFIED' => Token::FLAG_KEYWORD, + 'IGNORE_SERVER_IDS' => Token::FLAG_KEYWORD, + 'IMPORT' => Token::FLAG_KEYWORD, + 'INDEXES' => Token::FLAG_KEYWORD, + 'INITIAL_SIZE' => Token::FLAG_KEYWORD, + 'INSERT_METHOD' => Token::FLAG_KEYWORD, + 'INSTALL' => Token::FLAG_KEYWORD, + 'INVISIBLE' => Token::FLAG_KEYWORD, + 'INVOKER' => Token::FLAG_KEYWORD, + 'IO' => Token::FLAG_KEYWORD, + 'IO_THREAD' => Token::FLAG_KEYWORD, + 'IPC' => Token::FLAG_KEYWORD, + 'ISOLATION' => Token::FLAG_KEYWORD, + 'ISSUER' => Token::FLAG_KEYWORD, + 'KEY_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'LANGUAGE' => Token::FLAG_KEYWORD, + 'LAST' => Token::FLAG_KEYWORD, + 'LEAVES' => Token::FLAG_KEYWORD, + 'LESS' => Token::FLAG_KEYWORD, + 'LEVEL' => Token::FLAG_KEYWORD, + 'LIST' => Token::FLAG_KEYWORD, + 'LOCAL' => Token::FLAG_KEYWORD, + 'LOCKS' => Token::FLAG_KEYWORD, + 'LOGFILE' => Token::FLAG_KEYWORD, + 'LOGS' => Token::FLAG_KEYWORD, + 'MASTER' => Token::FLAG_KEYWORD, + 'MASTER_AUTO_POSITION' => Token::FLAG_KEYWORD, + 'MASTER_CONNECT_RETRY' => Token::FLAG_KEYWORD, + 'MASTER_DELAY' => Token::FLAG_KEYWORD, + 'MASTER_HEARTBEAT_PERIOD' => Token::FLAG_KEYWORD, + 'MASTER_HOST' => Token::FLAG_KEYWORD, + 'MASTER_LOG_FILE' => Token::FLAG_KEYWORD, + 'MASTER_LOG_POS' => Token::FLAG_KEYWORD, + 'MASTER_PASSWORD' => Token::FLAG_KEYWORD, + 'MASTER_PORT' => Token::FLAG_KEYWORD, + 'MASTER_RETRY_COUNT' => Token::FLAG_KEYWORD, + 'MASTER_SERVER_ID' => Token::FLAG_KEYWORD, + 'MASTER_SSL' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CA' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CAPATH' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CERT' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CIPHER' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CRL' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CRLPATH' => Token::FLAG_KEYWORD, + 'MASTER_SSL_KEY' => Token::FLAG_KEYWORD, + 'MASTER_USER' => Token::FLAG_KEYWORD, + 'MAX_CONNECTIONS_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_QUERIES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_ROWS' => Token::FLAG_KEYWORD, + 'MAX_SIZE' => Token::FLAG_KEYWORD, + 'MAX_STATEMENT_TIME' => Token::FLAG_KEYWORD, + 'MAX_UPDATES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_USER_CONNECTIONS' => Token::FLAG_KEYWORD, + 'MEDIUM' => Token::FLAG_KEYWORD, + 'MEMORY' => Token::FLAG_KEYWORD, + 'MERGE' => Token::FLAG_KEYWORD, + 'MESSAGE_TEXT' => Token::FLAG_KEYWORD, + 'MIGRATE' => Token::FLAG_KEYWORD, + 'MIN_ROWS' => Token::FLAG_KEYWORD, + 'MODE' => Token::FLAG_KEYWORD, + 'MODIFY' => Token::FLAG_KEYWORD, + 'MUTEX' => Token::FLAG_KEYWORD, + 'MYSQL_ERRNO' => Token::FLAG_KEYWORD, + 'NAME' => Token::FLAG_KEYWORD, + 'NAMES' => Token::FLAG_KEYWORD, + 'NATIONAL' => Token::FLAG_KEYWORD, + 'NCHAR' => Token::FLAG_KEYWORD, + 'NDB' => Token::FLAG_KEYWORD, + 'NDBCLUSTER' => Token::FLAG_KEYWORD, + 'NEVER' => Token::FLAG_KEYWORD, + 'NEW' => Token::FLAG_KEYWORD, + 'NEXT' => Token::FLAG_KEYWORD, + 'NO' => Token::FLAG_KEYWORD, + 'NODEGROUP' => Token::FLAG_KEYWORD, + 'NONBLOCKING' => Token::FLAG_KEYWORD, + 'NONE' => Token::FLAG_KEYWORD, + 'NO_WAIT' => Token::FLAG_KEYWORD, + 'NUMBER' => Token::FLAG_KEYWORD, + 'NVARCHAR' => Token::FLAG_KEYWORD, + 'ONE' => Token::FLAG_KEYWORD, + 'ONLY' => Token::FLAG_KEYWORD, + 'OPEN' => Token::FLAG_KEYWORD, + 'OPTIONS' => Token::FLAG_KEYWORD, + 'OWNER' => Token::FLAG_KEYWORD, + 'PACK_KEYS' => Token::FLAG_KEYWORD, + 'PAGE' => Token::FLAG_KEYWORD, + 'PARSER' => Token::FLAG_KEYWORD, + 'PARSE_GCOL_EXPR' => Token::FLAG_KEYWORD, + 'PARTIAL' => Token::FLAG_KEYWORD, + 'PARTITIONING' => Token::FLAG_KEYWORD, + 'PARTITIONS' => Token::FLAG_KEYWORD, + 'PERSISTENT' => Token::FLAG_KEYWORD, + 'PHASE' => Token::FLAG_KEYWORD, + 'PLUGIN' => Token::FLAG_KEYWORD, + 'PLUGINS' => Token::FLAG_KEYWORD, + 'PLUGIN_DIR' => Token::FLAG_KEYWORD, + 'PORT' => Token::FLAG_KEYWORD, + 'PRECEDES' => Token::FLAG_KEYWORD, + 'PREPARE' => Token::FLAG_KEYWORD, + 'PRESERVE' => Token::FLAG_KEYWORD, + 'PREV' => Token::FLAG_KEYWORD, + 'PRIVILEGES' => Token::FLAG_KEYWORD, + 'PROCESSLIST' => Token::FLAG_KEYWORD, + 'PROFILE' => Token::FLAG_KEYWORD, + 'PROFILES' => Token::FLAG_KEYWORD, + 'PROXY' => Token::FLAG_KEYWORD, + 'QUERY' => Token::FLAG_KEYWORD, + 'QUICK' => Token::FLAG_KEYWORD, + 'READ_ONLY' => Token::FLAG_KEYWORD, + 'REBUILD' => Token::FLAG_KEYWORD, + 'RECOVER' => Token::FLAG_KEYWORD, + 'REDOFILE' => Token::FLAG_KEYWORD, + 'REDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'REDUNDANT' => Token::FLAG_KEYWORD, + 'RELAY' => Token::FLAG_KEYWORD, + 'RELAYLOG' => Token::FLAG_KEYWORD, + 'RELAY_LOG_FILE' => Token::FLAG_KEYWORD, + 'RELAY_LOG_POS' => Token::FLAG_KEYWORD, + 'RELAY_THREAD' => Token::FLAG_KEYWORD, + 'RELOAD' => Token::FLAG_KEYWORD, + 'REMOVE' => Token::FLAG_KEYWORD, + 'REORGANIZE' => Token::FLAG_KEYWORD, + 'REPAIR' => Token::FLAG_KEYWORD, + 'REPEATABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_REWRITE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATION' => Token::FLAG_KEYWORD, + 'RESET' => Token::FLAG_KEYWORD, + 'RESTORE' => Token::FLAG_KEYWORD, + 'RESUME' => Token::FLAG_KEYWORD, + 'RETURNED_SQLSTATE' => Token::FLAG_KEYWORD, + 'RETURNS' => Token::FLAG_KEYWORD, + 'ROLLBACK' => Token::FLAG_KEYWORD, + 'ROLLUP' => Token::FLAG_KEYWORD, + 'ROUTINE' => Token::FLAG_KEYWORD, + 'ROW' => Token::FLAG_KEYWORD, + 'ROW_FORMAT' => Token::FLAG_KEYWORD, + 'RTREE' => Token::FLAG_KEYWORD, + 'SAVEPOINT' => Token::FLAG_KEYWORD, + 'SCHEDULE' => Token::FLAG_KEYWORD, + 'SCHEMA_NAME' => Token::FLAG_KEYWORD, + 'SECURITY' => Token::FLAG_KEYWORD, + 'SEQUENCE' => Token::FLAG_KEYWORD, + 'SERIALIZABLE' => Token::FLAG_KEYWORD, + 'SERVER' => Token::FLAG_KEYWORD, + 'SESSION' => Token::FLAG_KEYWORD, + 'SHARE' => Token::FLAG_KEYWORD, + 'SHUTDOWN' => Token::FLAG_KEYWORD, + 'SIGNED' => Token::FLAG_KEYWORD, + 'SIMPLE' => Token::FLAG_KEYWORD, + 'SLAVE' => Token::FLAG_KEYWORD, + 'SLOW' => Token::FLAG_KEYWORD, + 'SNAPSHOT' => Token::FLAG_KEYWORD, + 'SOCKET' => Token::FLAG_KEYWORD, + 'SOME' => Token::FLAG_KEYWORD, + 'SONAME' => Token::FLAG_KEYWORD, + 'SOUNDS' => Token::FLAG_KEYWORD, + 'SOURCE' => Token::FLAG_KEYWORD, + 'SQL_AFTER_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_AFTER_MTS_GAPS' => Token::FLAG_KEYWORD, + 'SQL_BEFORE_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_BUFFER_RESULT' => Token::FLAG_KEYWORD, + 'SQL_CACHE' => Token::FLAG_KEYWORD, + 'SQL_NO_CACHE' => Token::FLAG_KEYWORD, + 'SQL_THREAD' => Token::FLAG_KEYWORD, + 'SQL_TSI_DAY' => Token::FLAG_KEYWORD, + 'SQL_TSI_HOUR' => Token::FLAG_KEYWORD, + 'SQL_TSI_MINUTE' => Token::FLAG_KEYWORD, + 'SQL_TSI_MONTH' => Token::FLAG_KEYWORD, + 'SQL_TSI_QUARTER' => Token::FLAG_KEYWORD, + 'SQL_TSI_SECOND' => Token::FLAG_KEYWORD, + 'SQL_TSI_WEEK' => Token::FLAG_KEYWORD, + 'SQL_TSI_YEAR' => Token::FLAG_KEYWORD, + 'STACKED' => Token::FLAG_KEYWORD, + 'START' => Token::FLAG_KEYWORD, + 'STARTS' => Token::FLAG_KEYWORD, + 'STATS_AUTO_RECALC' => Token::FLAG_KEYWORD, + 'STATS_PERSISTENT' => Token::FLAG_KEYWORD, + 'STATS_SAMPLE_PAGES' => Token::FLAG_KEYWORD, + 'STATUS' => Token::FLAG_KEYWORD, + 'STOP' => Token::FLAG_KEYWORD, + 'STORAGE' => Token::FLAG_KEYWORD, + 'STRING' => Token::FLAG_KEYWORD, + 'SUBCLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'SUBJECT' => Token::FLAG_KEYWORD, + 'SUBPARTITION' => Token::FLAG_KEYWORD, + 'SUBPARTITIONS' => Token::FLAG_KEYWORD, + 'SUPER' => Token::FLAG_KEYWORD, + 'SUSPEND' => Token::FLAG_KEYWORD, + 'SWAPS' => Token::FLAG_KEYWORD, + 'SWITCHES' => Token::FLAG_KEYWORD, + 'TABLES' => Token::FLAG_KEYWORD, + 'TABLESPACE' => Token::FLAG_KEYWORD, + 'TABLE_CHECKSUM' => Token::FLAG_KEYWORD, + 'TABLE_NAME' => Token::FLAG_KEYWORD, + 'TEMPORARY' => Token::FLAG_KEYWORD, + 'TEMPTABLE' => Token::FLAG_KEYWORD, + 'THAN' => Token::FLAG_KEYWORD, + 'TRANSACTION' => Token::FLAG_KEYWORD, + 'TRIGGERS' => Token::FLAG_KEYWORD, + 'TYPE' => Token::FLAG_KEYWORD, + 'TYPES' => Token::FLAG_KEYWORD, + 'UNCOMMITTED' => Token::FLAG_KEYWORD, + 'UNDEFINED' => Token::FLAG_KEYWORD, + 'UNDOFILE' => Token::FLAG_KEYWORD, + 'UNDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'UNICODE' => Token::FLAG_KEYWORD, + 'UNINSTALL' => Token::FLAG_KEYWORD, + 'UNKNOWN' => Token::FLAG_KEYWORD, + 'UNTIL' => Token::FLAG_KEYWORD, + 'UPGRADE' => Token::FLAG_KEYWORD, + 'USER_RESOURCES' => Token::FLAG_KEYWORD, + 'USE_FRM' => Token::FLAG_KEYWORD, + 'VALIDATION' => Token::FLAG_KEYWORD, + 'VALUE' => Token::FLAG_KEYWORD, + 'VARIABLES' => Token::FLAG_KEYWORD, + 'VIEW' => Token::FLAG_KEYWORD, + 'WAIT' => Token::FLAG_KEYWORD, + 'WARNINGS' => Token::FLAG_KEYWORD, + 'WITHOUT' => Token::FLAG_KEYWORD, + 'WORK' => Token::FLAG_KEYWORD, + 'WRAPPER' => Token::FLAG_KEYWORD, + 'X509' => Token::FLAG_KEYWORD, + 'XA' => Token::FLAG_KEYWORD, + 'XID' => Token::FLAG_KEYWORD, + 'ACCESSIBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ANALYZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BEFORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BETWEEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BOTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASCADE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHECK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLUMN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONDITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONSTRAINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONTINUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CREATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CROSS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CURSOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DATABASES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DECLARE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELAYED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESCRIBE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DETERMINISTIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCTROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DIV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DROP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EACH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSEIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ENCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ESCAPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXCEPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXPLAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FALSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FETCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FORCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOREIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FROM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GENERATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GRANT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GROUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HAVING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HIGH_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IGNORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INNER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INOUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INSENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTERSECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_BEFORE_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ITERATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEADING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIMIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOOP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOW_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MASTER_BIND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MASTER_SSL_VERIFY_SERVER_CERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MAXVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MODIFIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NATURAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NO_WRITE_TO_BINLOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OFFSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZER_COSTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIONALLY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ORDER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OVER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRECISION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRIMARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PROCEDURE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PURGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ_WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RECURSIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REFERENCES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REGEXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RENAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REQUIRE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESTRICT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RETURN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REVOKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RLIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ROW_NUMBER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SCHEMAS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SECOND_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SELECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SEPARATOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SHOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SPECIFIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLEXCEPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLSTATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLWARNING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_BIG_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_CALC_FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_SMALL_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SSL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STARTING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STORED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STRAIGHT_JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TABLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TERMINATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'THEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRAILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRIGGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNDO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNLOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNSIGNED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USAGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'YEAR_MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ZEROFILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'AND NO CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'COALESCE PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CONTAINS SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CROSS JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DATA DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DISABLE ON SLAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ENCLOSED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ESCAPED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR EACH ROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GENERATED ALWAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GROUP BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF NOT EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INDEX DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INNER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LANGUAGE SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LESS THAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR HASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOAD DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOCK IN SHARE MODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'MODIFIES SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO ACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NOT NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION NOT PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON SCHEDULE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'OR REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ORDER BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'PARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'READS SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SELECT TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SQL SECURITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'START TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'STARTING BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SUBPARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'TERMINATED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH CONSISTENT SNAPSHOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH ROLLUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOLEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'DATETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'ENUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'FIXED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'GEOMETRY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'JSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTISET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'SERIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'TEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'XML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIGINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DECIMAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DOUBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT3' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INTEGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MIDDLEINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'NUMERIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'REAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SMALLINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BINARY VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FULLTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'FOREIGN KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED VIA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'INDEX KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ACOS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AGAINST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ANY_VALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASCII' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AVG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BENCHMARK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEIL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARACTER_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COALESCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COERCIBILITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COLLATION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT_WS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONNECTION_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT_TZ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CRC32' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_SUB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFMONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DECODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DEGREES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ELT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXPORT_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACTVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIELD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIND_IN_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FLOOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_UNIXTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GLENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GREATEST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GROUP_CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IFNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_FREE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_COMPAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_MAPPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV6' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_USED_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_APPEND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS_PATH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_DEPTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_OBJECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_PRETTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REMOVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SEARCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_FREE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_SIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_TYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_UNQUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_VALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LAST_INSERT_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LEAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOAD_FILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG10' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKEDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKE_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MASTER_POS_WAIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVEREDBY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVERS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRDISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRINTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBROVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRTOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRWITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MD5' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTHNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NAME_CONST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NULLIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCTET_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OLD_PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_DIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PI' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POSITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUARTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RADIANS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RAND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RANDOM_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_ALL_LOCKS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'REVERSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROUND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROW_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SEC_TO_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SESSION_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SLEEP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SOUNDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SPACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SQRT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STRCMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STR_TO_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER_STRATEGY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_COLLECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE_SPHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISVALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LATFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LONGFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MAKEENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SIMPLIFY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SYMDIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_VALIDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING_INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSTEM_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_TO_SEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_SECONDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRUNCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESSED_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNHEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNIX_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPDATEXML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPPER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_SHORT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V7' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VALIDATE_PASSWORD_STRENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VARIANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE_COSINE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE_EUCLIDEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_FROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_TOTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VERSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_FOR_EXECUTED_GTID_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKDAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEIGHT_STRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'YEARWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DATABASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DEFAULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LEFT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MOD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPEAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'RIGHT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'SCHEMA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'VALUES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'NOT IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_FUNCTION, + 'DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'YEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'BINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'INTERVAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + ]; +} diff --git a/src/Contexts/ContextMariaDb120000.php b/src/Contexts/ContextMariaDb120000.php new file mode 100644 index 000000000..2dab4fc4c --- /dev/null +++ b/src/Contexts/ContextMariaDb120000.php @@ -0,0 +1,1104 @@ + + * @phpstan-var non-empty-array + */ + public const KEYWORDS = [ + 'ACCOUNT' => Token::FLAG_KEYWORD, + 'ACTION' => Token::FLAG_KEYWORD, + 'AFTER' => Token::FLAG_KEYWORD, + 'AGGREGATE' => Token::FLAG_KEYWORD, + 'ALGORITHM' => Token::FLAG_KEYWORD, + 'ALWAYS' => Token::FLAG_KEYWORD, + 'ANALYSE' => Token::FLAG_KEYWORD, + 'ANY' => Token::FLAG_KEYWORD, + 'AT' => Token::FLAG_KEYWORD, + 'AUTOEXTEND_SIZE' => Token::FLAG_KEYWORD, + 'AUTO_INCREMENT' => Token::FLAG_KEYWORD, + 'AVG_ROW_LENGTH' => Token::FLAG_KEYWORD, + 'BACKUP' => Token::FLAG_KEYWORD, + 'BEGIN' => Token::FLAG_KEYWORD, + 'BINLOG' => Token::FLAG_KEYWORD, + 'BLOCK' => Token::FLAG_KEYWORD, + 'BTREE' => Token::FLAG_KEYWORD, + 'BYTE' => Token::FLAG_KEYWORD, + 'CACHE' => Token::FLAG_KEYWORD, + 'CASCADED' => Token::FLAG_KEYWORD, + 'CATALOG_NAME' => Token::FLAG_KEYWORD, + 'CHAIN' => Token::FLAG_KEYWORD, + 'CHANGED' => Token::FLAG_KEYWORD, + 'CHANNEL' => Token::FLAG_KEYWORD, + 'CHECKSUM' => Token::FLAG_KEYWORD, + 'CIPHER' => Token::FLAG_KEYWORD, + 'CLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'CLIENT' => Token::FLAG_KEYWORD, + 'CLOSE' => Token::FLAG_KEYWORD, + 'CODE' => Token::FLAG_KEYWORD, + 'COLUMNS' => Token::FLAG_KEYWORD, + 'COLUMN_FORMAT' => Token::FLAG_KEYWORD, + 'COLUMN_NAME' => Token::FLAG_KEYWORD, + 'COMMENT' => Token::FLAG_KEYWORD, + 'COMMIT' => Token::FLAG_KEYWORD, + 'COMMITTED' => Token::FLAG_KEYWORD, + 'COMPACT' => Token::FLAG_KEYWORD, + 'COMPLETION' => Token::FLAG_KEYWORD, + 'COMPRESSED' => Token::FLAG_KEYWORD, + 'COMPRESSION' => Token::FLAG_KEYWORD, + 'CONCURRENT' => Token::FLAG_KEYWORD, + 'CONNECTION' => Token::FLAG_KEYWORD, + 'CONSISTENT' => Token::FLAG_KEYWORD, + 'CONSTRAINT_CATALOG' => Token::FLAG_KEYWORD, + 'CONSTRAINT_NAME' => Token::FLAG_KEYWORD, + 'CONSTRAINT_SCHEMA' => Token::FLAG_KEYWORD, + 'CONTEXT' => Token::FLAG_KEYWORD, + 'CPU' => Token::FLAG_KEYWORD, + 'CUBE' => Token::FLAG_KEYWORD, + 'CURRENT' => Token::FLAG_KEYWORD, + 'CURSOR_NAME' => Token::FLAG_KEYWORD, + 'DATA' => Token::FLAG_KEYWORD, + 'DATAFILE' => Token::FLAG_KEYWORD, + 'DEALLOCATE' => Token::FLAG_KEYWORD, + 'DEFAULT_AUTH' => Token::FLAG_KEYWORD, + 'DEFINER' => Token::FLAG_KEYWORD, + 'DELAY_KEY_WRITE' => Token::FLAG_KEYWORD, + 'DES_KEY_FILE' => Token::FLAG_KEYWORD, + 'DIAGNOSTICS' => Token::FLAG_KEYWORD, + 'DIRECTORY' => Token::FLAG_KEYWORD, + 'DISABLE' => Token::FLAG_KEYWORD, + 'DISCARD' => Token::FLAG_KEYWORD, + 'DISK' => Token::FLAG_KEYWORD, + 'DO' => Token::FLAG_KEYWORD, + 'DUMPFILE' => Token::FLAG_KEYWORD, + 'DUPLICATE' => Token::FLAG_KEYWORD, + 'DYNAMIC' => Token::FLAG_KEYWORD, + 'ENABLE' => Token::FLAG_KEYWORD, + 'END' => Token::FLAG_KEYWORD, + 'ENDS' => Token::FLAG_KEYWORD, + 'ENGINE' => Token::FLAG_KEYWORD, + 'ENGINES' => Token::FLAG_KEYWORD, + 'ERROR' => Token::FLAG_KEYWORD, + 'ERRORS' => Token::FLAG_KEYWORD, + 'ESCAPE' => Token::FLAG_KEYWORD, + 'EVENT' => Token::FLAG_KEYWORD, + 'EVENTS' => Token::FLAG_KEYWORD, + 'EVERY' => Token::FLAG_KEYWORD, + 'EXCHANGE' => Token::FLAG_KEYWORD, + 'EXECUTE' => Token::FLAG_KEYWORD, + 'EXPANSION' => Token::FLAG_KEYWORD, + 'EXPIRE' => Token::FLAG_KEYWORD, + 'EXPORT' => Token::FLAG_KEYWORD, + 'EXTENDED' => Token::FLAG_KEYWORD, + 'EXTENT_SIZE' => Token::FLAG_KEYWORD, + 'FAST' => Token::FLAG_KEYWORD, + 'FAULTS' => Token::FLAG_KEYWORD, + 'FIELDS' => Token::FLAG_KEYWORD, + 'FILE' => Token::FLAG_KEYWORD, + 'FILE_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'FILTER' => Token::FLAG_KEYWORD, + 'FIRST' => Token::FLAG_KEYWORD, + 'FLUSH' => Token::FLAG_KEYWORD, + 'FOLLOWS' => Token::FLAG_KEYWORD, + 'FOUND' => Token::FLAG_KEYWORD, + 'FULL' => Token::FLAG_KEYWORD, + 'FUNCTION' => Token::FLAG_KEYWORD, + 'GENERAL' => Token::FLAG_KEYWORD, + 'GLOBAL' => Token::FLAG_KEYWORD, + 'GRANTS' => Token::FLAG_KEYWORD, + 'GROUP_REPLICATION' => Token::FLAG_KEYWORD, + 'HANDLER' => Token::FLAG_KEYWORD, + 'HASH' => Token::FLAG_KEYWORD, + 'HELP' => Token::FLAG_KEYWORD, + 'HOST' => Token::FLAG_KEYWORD, + 'HOSTS' => Token::FLAG_KEYWORD, + 'IDENTIFIED' => Token::FLAG_KEYWORD, + 'IGNORE_SERVER_IDS' => Token::FLAG_KEYWORD, + 'IMPORT' => Token::FLAG_KEYWORD, + 'INDEXES' => Token::FLAG_KEYWORD, + 'INITIAL_SIZE' => Token::FLAG_KEYWORD, + 'INSERT_METHOD' => Token::FLAG_KEYWORD, + 'INSTALL' => Token::FLAG_KEYWORD, + 'INVISIBLE' => Token::FLAG_KEYWORD, + 'INVOKER' => Token::FLAG_KEYWORD, + 'IO' => Token::FLAG_KEYWORD, + 'IO_THREAD' => Token::FLAG_KEYWORD, + 'IPC' => Token::FLAG_KEYWORD, + 'ISOLATION' => Token::FLAG_KEYWORD, + 'ISSUER' => Token::FLAG_KEYWORD, + 'KEY_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'LANGUAGE' => Token::FLAG_KEYWORD, + 'LAST' => Token::FLAG_KEYWORD, + 'LEAVES' => Token::FLAG_KEYWORD, + 'LESS' => Token::FLAG_KEYWORD, + 'LEVEL' => Token::FLAG_KEYWORD, + 'LIST' => Token::FLAG_KEYWORD, + 'LOCAL' => Token::FLAG_KEYWORD, + 'LOCKS' => Token::FLAG_KEYWORD, + 'LOGFILE' => Token::FLAG_KEYWORD, + 'LOGS' => Token::FLAG_KEYWORD, + 'MASTER' => Token::FLAG_KEYWORD, + 'MASTER_AUTO_POSITION' => Token::FLAG_KEYWORD, + 'MASTER_CONNECT_RETRY' => Token::FLAG_KEYWORD, + 'MASTER_DELAY' => Token::FLAG_KEYWORD, + 'MASTER_HEARTBEAT_PERIOD' => Token::FLAG_KEYWORD, + 'MASTER_HOST' => Token::FLAG_KEYWORD, + 'MASTER_LOG_FILE' => Token::FLAG_KEYWORD, + 'MASTER_LOG_POS' => Token::FLAG_KEYWORD, + 'MASTER_PASSWORD' => Token::FLAG_KEYWORD, + 'MASTER_PORT' => Token::FLAG_KEYWORD, + 'MASTER_RETRY_COUNT' => Token::FLAG_KEYWORD, + 'MASTER_SERVER_ID' => Token::FLAG_KEYWORD, + 'MASTER_SSL' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CA' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CAPATH' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CERT' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CIPHER' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CRL' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CRLPATH' => Token::FLAG_KEYWORD, + 'MASTER_SSL_KEY' => Token::FLAG_KEYWORD, + 'MASTER_USER' => Token::FLAG_KEYWORD, + 'MAX_CONNECTIONS_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_QUERIES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_ROWS' => Token::FLAG_KEYWORD, + 'MAX_SIZE' => Token::FLAG_KEYWORD, + 'MAX_STATEMENT_TIME' => Token::FLAG_KEYWORD, + 'MAX_UPDATES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_USER_CONNECTIONS' => Token::FLAG_KEYWORD, + 'MEDIUM' => Token::FLAG_KEYWORD, + 'MEMORY' => Token::FLAG_KEYWORD, + 'MERGE' => Token::FLAG_KEYWORD, + 'MESSAGE_TEXT' => Token::FLAG_KEYWORD, + 'MIGRATE' => Token::FLAG_KEYWORD, + 'MIN_ROWS' => Token::FLAG_KEYWORD, + 'MODE' => Token::FLAG_KEYWORD, + 'MODIFY' => Token::FLAG_KEYWORD, + 'MUTEX' => Token::FLAG_KEYWORD, + 'MYSQL_ERRNO' => Token::FLAG_KEYWORD, + 'NAME' => Token::FLAG_KEYWORD, + 'NAMES' => Token::FLAG_KEYWORD, + 'NATIONAL' => Token::FLAG_KEYWORD, + 'NCHAR' => Token::FLAG_KEYWORD, + 'NDB' => Token::FLAG_KEYWORD, + 'NDBCLUSTER' => Token::FLAG_KEYWORD, + 'NEVER' => Token::FLAG_KEYWORD, + 'NEW' => Token::FLAG_KEYWORD, + 'NEXT' => Token::FLAG_KEYWORD, + 'NO' => Token::FLAG_KEYWORD, + 'NODEGROUP' => Token::FLAG_KEYWORD, + 'NONBLOCKING' => Token::FLAG_KEYWORD, + 'NONE' => Token::FLAG_KEYWORD, + 'NO_WAIT' => Token::FLAG_KEYWORD, + 'NUMBER' => Token::FLAG_KEYWORD, + 'NVARCHAR' => Token::FLAG_KEYWORD, + 'ONE' => Token::FLAG_KEYWORD, + 'ONLY' => Token::FLAG_KEYWORD, + 'OPEN' => Token::FLAG_KEYWORD, + 'OPTIONS' => Token::FLAG_KEYWORD, + 'OWNER' => Token::FLAG_KEYWORD, + 'PACK_KEYS' => Token::FLAG_KEYWORD, + 'PAGE' => Token::FLAG_KEYWORD, + 'PARSER' => Token::FLAG_KEYWORD, + 'PARSE_GCOL_EXPR' => Token::FLAG_KEYWORD, + 'PARTIAL' => Token::FLAG_KEYWORD, + 'PARTITIONING' => Token::FLAG_KEYWORD, + 'PARTITIONS' => Token::FLAG_KEYWORD, + 'PERSISTENT' => Token::FLAG_KEYWORD, + 'PHASE' => Token::FLAG_KEYWORD, + 'PLUGIN' => Token::FLAG_KEYWORD, + 'PLUGINS' => Token::FLAG_KEYWORD, + 'PLUGIN_DIR' => Token::FLAG_KEYWORD, + 'PORT' => Token::FLAG_KEYWORD, + 'PRECEDES' => Token::FLAG_KEYWORD, + 'PREPARE' => Token::FLAG_KEYWORD, + 'PRESERVE' => Token::FLAG_KEYWORD, + 'PREV' => Token::FLAG_KEYWORD, + 'PRIVILEGES' => Token::FLAG_KEYWORD, + 'PROCESSLIST' => Token::FLAG_KEYWORD, + 'PROFILE' => Token::FLAG_KEYWORD, + 'PROFILES' => Token::FLAG_KEYWORD, + 'PROXY' => Token::FLAG_KEYWORD, + 'QUERY' => Token::FLAG_KEYWORD, + 'QUICK' => Token::FLAG_KEYWORD, + 'READ_ONLY' => Token::FLAG_KEYWORD, + 'REBUILD' => Token::FLAG_KEYWORD, + 'RECOVER' => Token::FLAG_KEYWORD, + 'REDOFILE' => Token::FLAG_KEYWORD, + 'REDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'REDUNDANT' => Token::FLAG_KEYWORD, + 'RELAY' => Token::FLAG_KEYWORD, + 'RELAYLOG' => Token::FLAG_KEYWORD, + 'RELAY_LOG_FILE' => Token::FLAG_KEYWORD, + 'RELAY_LOG_POS' => Token::FLAG_KEYWORD, + 'RELAY_THREAD' => Token::FLAG_KEYWORD, + 'RELOAD' => Token::FLAG_KEYWORD, + 'REMOVE' => Token::FLAG_KEYWORD, + 'REORGANIZE' => Token::FLAG_KEYWORD, + 'REPAIR' => Token::FLAG_KEYWORD, + 'REPEATABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_REWRITE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATION' => Token::FLAG_KEYWORD, + 'RESET' => Token::FLAG_KEYWORD, + 'RESTORE' => Token::FLAG_KEYWORD, + 'RESUME' => Token::FLAG_KEYWORD, + 'RETURNED_SQLSTATE' => Token::FLAG_KEYWORD, + 'RETURNS' => Token::FLAG_KEYWORD, + 'ROLLBACK' => Token::FLAG_KEYWORD, + 'ROLLUP' => Token::FLAG_KEYWORD, + 'ROUTINE' => Token::FLAG_KEYWORD, + 'ROW' => Token::FLAG_KEYWORD, + 'ROW_FORMAT' => Token::FLAG_KEYWORD, + 'RTREE' => Token::FLAG_KEYWORD, + 'SAVEPOINT' => Token::FLAG_KEYWORD, + 'SCHEDULE' => Token::FLAG_KEYWORD, + 'SCHEMA_NAME' => Token::FLAG_KEYWORD, + 'SECURITY' => Token::FLAG_KEYWORD, + 'SEQUENCE' => Token::FLAG_KEYWORD, + 'SERIALIZABLE' => Token::FLAG_KEYWORD, + 'SERVER' => Token::FLAG_KEYWORD, + 'SESSION' => Token::FLAG_KEYWORD, + 'SHARE' => Token::FLAG_KEYWORD, + 'SHUTDOWN' => Token::FLAG_KEYWORD, + 'SIGNED' => Token::FLAG_KEYWORD, + 'SIMPLE' => Token::FLAG_KEYWORD, + 'SLAVE' => Token::FLAG_KEYWORD, + 'SLOW' => Token::FLAG_KEYWORD, + 'SNAPSHOT' => Token::FLAG_KEYWORD, + 'SOCKET' => Token::FLAG_KEYWORD, + 'SOME' => Token::FLAG_KEYWORD, + 'SONAME' => Token::FLAG_KEYWORD, + 'SOUNDS' => Token::FLAG_KEYWORD, + 'SOURCE' => Token::FLAG_KEYWORD, + 'SQL_AFTER_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_AFTER_MTS_GAPS' => Token::FLAG_KEYWORD, + 'SQL_BEFORE_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_BUFFER_RESULT' => Token::FLAG_KEYWORD, + 'SQL_CACHE' => Token::FLAG_KEYWORD, + 'SQL_NO_CACHE' => Token::FLAG_KEYWORD, + 'SQL_THREAD' => Token::FLAG_KEYWORD, + 'SQL_TSI_DAY' => Token::FLAG_KEYWORD, + 'SQL_TSI_HOUR' => Token::FLAG_KEYWORD, + 'SQL_TSI_MINUTE' => Token::FLAG_KEYWORD, + 'SQL_TSI_MONTH' => Token::FLAG_KEYWORD, + 'SQL_TSI_QUARTER' => Token::FLAG_KEYWORD, + 'SQL_TSI_SECOND' => Token::FLAG_KEYWORD, + 'SQL_TSI_WEEK' => Token::FLAG_KEYWORD, + 'SQL_TSI_YEAR' => Token::FLAG_KEYWORD, + 'STACKED' => Token::FLAG_KEYWORD, + 'START' => Token::FLAG_KEYWORD, + 'STARTS' => Token::FLAG_KEYWORD, + 'STATS_AUTO_RECALC' => Token::FLAG_KEYWORD, + 'STATS_PERSISTENT' => Token::FLAG_KEYWORD, + 'STATS_SAMPLE_PAGES' => Token::FLAG_KEYWORD, + 'STATUS' => Token::FLAG_KEYWORD, + 'STOP' => Token::FLAG_KEYWORD, + 'STORAGE' => Token::FLAG_KEYWORD, + 'STRING' => Token::FLAG_KEYWORD, + 'SUBCLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'SUBJECT' => Token::FLAG_KEYWORD, + 'SUBPARTITION' => Token::FLAG_KEYWORD, + 'SUBPARTITIONS' => Token::FLAG_KEYWORD, + 'SUPER' => Token::FLAG_KEYWORD, + 'SUSPEND' => Token::FLAG_KEYWORD, + 'SWAPS' => Token::FLAG_KEYWORD, + 'SWITCHES' => Token::FLAG_KEYWORD, + 'TABLES' => Token::FLAG_KEYWORD, + 'TABLESPACE' => Token::FLAG_KEYWORD, + 'TABLE_CHECKSUM' => Token::FLAG_KEYWORD, + 'TABLE_NAME' => Token::FLAG_KEYWORD, + 'TEMPORARY' => Token::FLAG_KEYWORD, + 'TEMPTABLE' => Token::FLAG_KEYWORD, + 'THAN' => Token::FLAG_KEYWORD, + 'TRANSACTION' => Token::FLAG_KEYWORD, + 'TRIGGERS' => Token::FLAG_KEYWORD, + 'TYPE' => Token::FLAG_KEYWORD, + 'TYPES' => Token::FLAG_KEYWORD, + 'UNCOMMITTED' => Token::FLAG_KEYWORD, + 'UNDEFINED' => Token::FLAG_KEYWORD, + 'UNDOFILE' => Token::FLAG_KEYWORD, + 'UNDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'UNICODE' => Token::FLAG_KEYWORD, + 'UNINSTALL' => Token::FLAG_KEYWORD, + 'UNKNOWN' => Token::FLAG_KEYWORD, + 'UNTIL' => Token::FLAG_KEYWORD, + 'UPGRADE' => Token::FLAG_KEYWORD, + 'USER_RESOURCES' => Token::FLAG_KEYWORD, + 'USE_FRM' => Token::FLAG_KEYWORD, + 'VALIDATION' => Token::FLAG_KEYWORD, + 'VALUE' => Token::FLAG_KEYWORD, + 'VARIABLES' => Token::FLAG_KEYWORD, + 'VIEW' => Token::FLAG_KEYWORD, + 'WAIT' => Token::FLAG_KEYWORD, + 'WARNINGS' => Token::FLAG_KEYWORD, + 'WITHOUT' => Token::FLAG_KEYWORD, + 'WORK' => Token::FLAG_KEYWORD, + 'WRAPPER' => Token::FLAG_KEYWORD, + 'X509' => Token::FLAG_KEYWORD, + 'XA' => Token::FLAG_KEYWORD, + 'XID' => Token::FLAG_KEYWORD, + 'ACCESSIBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ANALYZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BEFORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BETWEEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BOTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASCADE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHECK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLUMN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONDITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONSTRAINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONTINUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CREATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CROSS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CURSOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DATABASES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DECLARE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELAYED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESCRIBE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DETERMINISTIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCTROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DIV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DROP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EACH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSEIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ENCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ESCAPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXCEPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXPLAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FALSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FETCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FORCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOREIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FROM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GENERATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GRANT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GROUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HAVING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HIGH_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IGNORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INNER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INOUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INSENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTERSECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_BEFORE_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ITERATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEADING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIMIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOOP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOW_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MASTER_BIND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MASTER_SSL_VERIFY_SERVER_CERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MAXVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MODIFIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NATURAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NO_WRITE_TO_BINLOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OFFSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZER_COSTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIONALLY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ORDER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OVER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRECISION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRIMARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PROCEDURE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PURGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ_WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RECURSIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REFERENCES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REGEXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RENAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REQUIRE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESTRICT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RETURN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REVOKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RLIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ROW_NUMBER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SCHEMAS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SECOND_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SELECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SEPARATOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SHOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SPECIFIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLEXCEPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLSTATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLWARNING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_BIG_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_CALC_FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_SMALL_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SSL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STARTING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STORED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STRAIGHT_JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TABLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TERMINATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'THEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRAILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRIGGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNDO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNLOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNSIGNED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USAGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'YEAR_MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ZEROFILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'AND NO CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'COALESCE PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CONTAINS SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CROSS JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DATA DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DISABLE ON SLAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ENCLOSED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ESCAPED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR EACH ROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GENERATED ALWAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GROUP BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF NOT EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INDEX DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INNER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LANGUAGE SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LESS THAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR HASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOAD DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOCK IN SHARE MODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'MODIFIES SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO ACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NOT NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION NOT PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON SCHEDULE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'OR REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ORDER BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'PARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'READS SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SELECT TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SQL SECURITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'START TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'STARTING BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SUBPARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'TERMINATED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH CONSISTENT SNAPSHOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH ROLLUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOLEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'DATETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'ENUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'FIXED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'GEOMETRY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'JSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTISET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'SERIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'TEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'XML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIGINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DECIMAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DOUBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT3' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INTEGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MIDDLEINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'NUMERIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'REAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SMALLINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BINARY VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FULLTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'FOREIGN KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED VIA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'INDEX KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ACOS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AGAINST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ANY_VALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASCII' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AVG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BENCHMARK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEIL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARACTER_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COALESCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COERCIBILITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COLLATION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT_WS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONNECTION_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT_TZ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CRC32' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_SUB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFMONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DECODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DEGREES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ELT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXPORT_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACTVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIELD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIND_IN_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FLOOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_UNIXTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GLENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GREATEST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GROUP_CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IFNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_FREE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_COMPAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_MAPPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV6' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_USED_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_APPEND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS_PATH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_DEPTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_OBJECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_PRETTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REMOVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SEARCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_FREE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_SIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_TYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_UNQUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_VALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LAST_INSERT_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LEAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOAD_FILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG10' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKEDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKE_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MASTER_POS_WAIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVEREDBY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVERS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRDISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRINTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBROVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRTOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRWITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MD5' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTHNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NAME_CONST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NULLIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCTET_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OLD_PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_DIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PI' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POSITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUARTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RADIANS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RAND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RANDOM_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_ALL_LOCKS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'REVERSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROUND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROW_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SEC_TO_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SESSION_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SLEEP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SOUNDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SPACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SQRT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STRCMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STR_TO_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER_STRATEGY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_COLLECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE_SPHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISVALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LATFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LONGFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MAKEENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SIMPLIFY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SYMDIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_VALIDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING_INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSTEM_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_TO_SEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_SECONDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRUNCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESSED_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNHEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNIX_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPDATEXML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPPER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_SHORT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V7' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VALIDATE_PASSWORD_STRENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VARIANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE_COSINE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE_EUCLIDEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_FROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_TOTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VERSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_FOR_EXECUTED_GTID_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKDAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEIGHT_STRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'YEARWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DATABASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DEFAULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LEFT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MOD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPEAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'RIGHT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'SCHEMA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'VALUES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'NOT IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_FUNCTION, + 'DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'YEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'BINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'INTERVAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + ]; +} diff --git a/src/Contexts/ContextMariaDb120100.php b/src/Contexts/ContextMariaDb120100.php new file mode 100644 index 000000000..53313c627 --- /dev/null +++ b/src/Contexts/ContextMariaDb120100.php @@ -0,0 +1,1104 @@ + + * @phpstan-var non-empty-array + */ + public const KEYWORDS = [ + 'ACCOUNT' => Token::FLAG_KEYWORD, + 'ACTION' => Token::FLAG_KEYWORD, + 'AFTER' => Token::FLAG_KEYWORD, + 'AGGREGATE' => Token::FLAG_KEYWORD, + 'ALGORITHM' => Token::FLAG_KEYWORD, + 'ALWAYS' => Token::FLAG_KEYWORD, + 'ANALYSE' => Token::FLAG_KEYWORD, + 'ANY' => Token::FLAG_KEYWORD, + 'AT' => Token::FLAG_KEYWORD, + 'AUTOEXTEND_SIZE' => Token::FLAG_KEYWORD, + 'AUTO_INCREMENT' => Token::FLAG_KEYWORD, + 'AVG_ROW_LENGTH' => Token::FLAG_KEYWORD, + 'BACKUP' => Token::FLAG_KEYWORD, + 'BEGIN' => Token::FLAG_KEYWORD, + 'BINLOG' => Token::FLAG_KEYWORD, + 'BLOCK' => Token::FLAG_KEYWORD, + 'BTREE' => Token::FLAG_KEYWORD, + 'BYTE' => Token::FLAG_KEYWORD, + 'CACHE' => Token::FLAG_KEYWORD, + 'CASCADED' => Token::FLAG_KEYWORD, + 'CATALOG_NAME' => Token::FLAG_KEYWORD, + 'CHAIN' => Token::FLAG_KEYWORD, + 'CHANGED' => Token::FLAG_KEYWORD, + 'CHANNEL' => Token::FLAG_KEYWORD, + 'CHECKSUM' => Token::FLAG_KEYWORD, + 'CIPHER' => Token::FLAG_KEYWORD, + 'CLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'CLIENT' => Token::FLAG_KEYWORD, + 'CLOSE' => Token::FLAG_KEYWORD, + 'CODE' => Token::FLAG_KEYWORD, + 'COLUMNS' => Token::FLAG_KEYWORD, + 'COLUMN_FORMAT' => Token::FLAG_KEYWORD, + 'COLUMN_NAME' => Token::FLAG_KEYWORD, + 'COMMENT' => Token::FLAG_KEYWORD, + 'COMMIT' => Token::FLAG_KEYWORD, + 'COMMITTED' => Token::FLAG_KEYWORD, + 'COMPACT' => Token::FLAG_KEYWORD, + 'COMPLETION' => Token::FLAG_KEYWORD, + 'COMPRESSED' => Token::FLAG_KEYWORD, + 'COMPRESSION' => Token::FLAG_KEYWORD, + 'CONCURRENT' => Token::FLAG_KEYWORD, + 'CONNECTION' => Token::FLAG_KEYWORD, + 'CONSISTENT' => Token::FLAG_KEYWORD, + 'CONSTRAINT_CATALOG' => Token::FLAG_KEYWORD, + 'CONSTRAINT_NAME' => Token::FLAG_KEYWORD, + 'CONSTRAINT_SCHEMA' => Token::FLAG_KEYWORD, + 'CONTEXT' => Token::FLAG_KEYWORD, + 'CPU' => Token::FLAG_KEYWORD, + 'CUBE' => Token::FLAG_KEYWORD, + 'CURRENT' => Token::FLAG_KEYWORD, + 'CURSOR_NAME' => Token::FLAG_KEYWORD, + 'DATA' => Token::FLAG_KEYWORD, + 'DATAFILE' => Token::FLAG_KEYWORD, + 'DEALLOCATE' => Token::FLAG_KEYWORD, + 'DEFAULT_AUTH' => Token::FLAG_KEYWORD, + 'DEFINER' => Token::FLAG_KEYWORD, + 'DELAY_KEY_WRITE' => Token::FLAG_KEYWORD, + 'DES_KEY_FILE' => Token::FLAG_KEYWORD, + 'DIAGNOSTICS' => Token::FLAG_KEYWORD, + 'DIRECTORY' => Token::FLAG_KEYWORD, + 'DISABLE' => Token::FLAG_KEYWORD, + 'DISCARD' => Token::FLAG_KEYWORD, + 'DISK' => Token::FLAG_KEYWORD, + 'DO' => Token::FLAG_KEYWORD, + 'DUMPFILE' => Token::FLAG_KEYWORD, + 'DUPLICATE' => Token::FLAG_KEYWORD, + 'DYNAMIC' => Token::FLAG_KEYWORD, + 'ENABLE' => Token::FLAG_KEYWORD, + 'END' => Token::FLAG_KEYWORD, + 'ENDS' => Token::FLAG_KEYWORD, + 'ENGINE' => Token::FLAG_KEYWORD, + 'ENGINES' => Token::FLAG_KEYWORD, + 'ERROR' => Token::FLAG_KEYWORD, + 'ERRORS' => Token::FLAG_KEYWORD, + 'ESCAPE' => Token::FLAG_KEYWORD, + 'EVENT' => Token::FLAG_KEYWORD, + 'EVENTS' => Token::FLAG_KEYWORD, + 'EVERY' => Token::FLAG_KEYWORD, + 'EXCHANGE' => Token::FLAG_KEYWORD, + 'EXECUTE' => Token::FLAG_KEYWORD, + 'EXPANSION' => Token::FLAG_KEYWORD, + 'EXPIRE' => Token::FLAG_KEYWORD, + 'EXPORT' => Token::FLAG_KEYWORD, + 'EXTENDED' => Token::FLAG_KEYWORD, + 'EXTENT_SIZE' => Token::FLAG_KEYWORD, + 'FAST' => Token::FLAG_KEYWORD, + 'FAULTS' => Token::FLAG_KEYWORD, + 'FIELDS' => Token::FLAG_KEYWORD, + 'FILE' => Token::FLAG_KEYWORD, + 'FILE_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'FILTER' => Token::FLAG_KEYWORD, + 'FIRST' => Token::FLAG_KEYWORD, + 'FLUSH' => Token::FLAG_KEYWORD, + 'FOLLOWS' => Token::FLAG_KEYWORD, + 'FOUND' => Token::FLAG_KEYWORD, + 'FULL' => Token::FLAG_KEYWORD, + 'FUNCTION' => Token::FLAG_KEYWORD, + 'GENERAL' => Token::FLAG_KEYWORD, + 'GLOBAL' => Token::FLAG_KEYWORD, + 'GRANTS' => Token::FLAG_KEYWORD, + 'GROUP_REPLICATION' => Token::FLAG_KEYWORD, + 'HANDLER' => Token::FLAG_KEYWORD, + 'HASH' => Token::FLAG_KEYWORD, + 'HELP' => Token::FLAG_KEYWORD, + 'HOST' => Token::FLAG_KEYWORD, + 'HOSTS' => Token::FLAG_KEYWORD, + 'IDENTIFIED' => Token::FLAG_KEYWORD, + 'IGNORE_SERVER_IDS' => Token::FLAG_KEYWORD, + 'IMPORT' => Token::FLAG_KEYWORD, + 'INDEXES' => Token::FLAG_KEYWORD, + 'INITIAL_SIZE' => Token::FLAG_KEYWORD, + 'INSERT_METHOD' => Token::FLAG_KEYWORD, + 'INSTALL' => Token::FLAG_KEYWORD, + 'INVISIBLE' => Token::FLAG_KEYWORD, + 'INVOKER' => Token::FLAG_KEYWORD, + 'IO' => Token::FLAG_KEYWORD, + 'IO_THREAD' => Token::FLAG_KEYWORD, + 'IPC' => Token::FLAG_KEYWORD, + 'ISOLATION' => Token::FLAG_KEYWORD, + 'ISSUER' => Token::FLAG_KEYWORD, + 'KEY_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'LANGUAGE' => Token::FLAG_KEYWORD, + 'LAST' => Token::FLAG_KEYWORD, + 'LEAVES' => Token::FLAG_KEYWORD, + 'LESS' => Token::FLAG_KEYWORD, + 'LEVEL' => Token::FLAG_KEYWORD, + 'LIST' => Token::FLAG_KEYWORD, + 'LOCAL' => Token::FLAG_KEYWORD, + 'LOCKS' => Token::FLAG_KEYWORD, + 'LOGFILE' => Token::FLAG_KEYWORD, + 'LOGS' => Token::FLAG_KEYWORD, + 'MASTER' => Token::FLAG_KEYWORD, + 'MASTER_AUTO_POSITION' => Token::FLAG_KEYWORD, + 'MASTER_CONNECT_RETRY' => Token::FLAG_KEYWORD, + 'MASTER_DELAY' => Token::FLAG_KEYWORD, + 'MASTER_HEARTBEAT_PERIOD' => Token::FLAG_KEYWORD, + 'MASTER_HOST' => Token::FLAG_KEYWORD, + 'MASTER_LOG_FILE' => Token::FLAG_KEYWORD, + 'MASTER_LOG_POS' => Token::FLAG_KEYWORD, + 'MASTER_PASSWORD' => Token::FLAG_KEYWORD, + 'MASTER_PORT' => Token::FLAG_KEYWORD, + 'MASTER_RETRY_COUNT' => Token::FLAG_KEYWORD, + 'MASTER_SERVER_ID' => Token::FLAG_KEYWORD, + 'MASTER_SSL' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CA' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CAPATH' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CERT' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CIPHER' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CRL' => Token::FLAG_KEYWORD, + 'MASTER_SSL_CRLPATH' => Token::FLAG_KEYWORD, + 'MASTER_SSL_KEY' => Token::FLAG_KEYWORD, + 'MASTER_USER' => Token::FLAG_KEYWORD, + 'MAX_CONNECTIONS_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_QUERIES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_ROWS' => Token::FLAG_KEYWORD, + 'MAX_SIZE' => Token::FLAG_KEYWORD, + 'MAX_STATEMENT_TIME' => Token::FLAG_KEYWORD, + 'MAX_UPDATES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_USER_CONNECTIONS' => Token::FLAG_KEYWORD, + 'MEDIUM' => Token::FLAG_KEYWORD, + 'MEMORY' => Token::FLAG_KEYWORD, + 'MERGE' => Token::FLAG_KEYWORD, + 'MESSAGE_TEXT' => Token::FLAG_KEYWORD, + 'MIGRATE' => Token::FLAG_KEYWORD, + 'MIN_ROWS' => Token::FLAG_KEYWORD, + 'MODE' => Token::FLAG_KEYWORD, + 'MODIFY' => Token::FLAG_KEYWORD, + 'MUTEX' => Token::FLAG_KEYWORD, + 'MYSQL_ERRNO' => Token::FLAG_KEYWORD, + 'NAME' => Token::FLAG_KEYWORD, + 'NAMES' => Token::FLAG_KEYWORD, + 'NATIONAL' => Token::FLAG_KEYWORD, + 'NCHAR' => Token::FLAG_KEYWORD, + 'NDB' => Token::FLAG_KEYWORD, + 'NDBCLUSTER' => Token::FLAG_KEYWORD, + 'NEVER' => Token::FLAG_KEYWORD, + 'NEW' => Token::FLAG_KEYWORD, + 'NEXT' => Token::FLAG_KEYWORD, + 'NO' => Token::FLAG_KEYWORD, + 'NODEGROUP' => Token::FLAG_KEYWORD, + 'NONBLOCKING' => Token::FLAG_KEYWORD, + 'NONE' => Token::FLAG_KEYWORD, + 'NO_WAIT' => Token::FLAG_KEYWORD, + 'NUMBER' => Token::FLAG_KEYWORD, + 'NVARCHAR' => Token::FLAG_KEYWORD, + 'ONE' => Token::FLAG_KEYWORD, + 'ONLY' => Token::FLAG_KEYWORD, + 'OPEN' => Token::FLAG_KEYWORD, + 'OPTIONS' => Token::FLAG_KEYWORD, + 'OWNER' => Token::FLAG_KEYWORD, + 'PACK_KEYS' => Token::FLAG_KEYWORD, + 'PAGE' => Token::FLAG_KEYWORD, + 'PARSER' => Token::FLAG_KEYWORD, + 'PARSE_GCOL_EXPR' => Token::FLAG_KEYWORD, + 'PARTIAL' => Token::FLAG_KEYWORD, + 'PARTITIONING' => Token::FLAG_KEYWORD, + 'PARTITIONS' => Token::FLAG_KEYWORD, + 'PERSISTENT' => Token::FLAG_KEYWORD, + 'PHASE' => Token::FLAG_KEYWORD, + 'PLUGIN' => Token::FLAG_KEYWORD, + 'PLUGINS' => Token::FLAG_KEYWORD, + 'PLUGIN_DIR' => Token::FLAG_KEYWORD, + 'PORT' => Token::FLAG_KEYWORD, + 'PRECEDES' => Token::FLAG_KEYWORD, + 'PREPARE' => Token::FLAG_KEYWORD, + 'PRESERVE' => Token::FLAG_KEYWORD, + 'PREV' => Token::FLAG_KEYWORD, + 'PRIVILEGES' => Token::FLAG_KEYWORD, + 'PROCESSLIST' => Token::FLAG_KEYWORD, + 'PROFILE' => Token::FLAG_KEYWORD, + 'PROFILES' => Token::FLAG_KEYWORD, + 'PROXY' => Token::FLAG_KEYWORD, + 'QUERY' => Token::FLAG_KEYWORD, + 'QUICK' => Token::FLAG_KEYWORD, + 'READ_ONLY' => Token::FLAG_KEYWORD, + 'REBUILD' => Token::FLAG_KEYWORD, + 'RECOVER' => Token::FLAG_KEYWORD, + 'REDOFILE' => Token::FLAG_KEYWORD, + 'REDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'REDUNDANT' => Token::FLAG_KEYWORD, + 'RELAY' => Token::FLAG_KEYWORD, + 'RELAYLOG' => Token::FLAG_KEYWORD, + 'RELAY_LOG_FILE' => Token::FLAG_KEYWORD, + 'RELAY_LOG_POS' => Token::FLAG_KEYWORD, + 'RELAY_THREAD' => Token::FLAG_KEYWORD, + 'RELOAD' => Token::FLAG_KEYWORD, + 'REMOVE' => Token::FLAG_KEYWORD, + 'REORGANIZE' => Token::FLAG_KEYWORD, + 'REPAIR' => Token::FLAG_KEYWORD, + 'REPEATABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_REWRITE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATION' => Token::FLAG_KEYWORD, + 'RESET' => Token::FLAG_KEYWORD, + 'RESTORE' => Token::FLAG_KEYWORD, + 'RESUME' => Token::FLAG_KEYWORD, + 'RETURNED_SQLSTATE' => Token::FLAG_KEYWORD, + 'RETURNS' => Token::FLAG_KEYWORD, + 'ROLLBACK' => Token::FLAG_KEYWORD, + 'ROLLUP' => Token::FLAG_KEYWORD, + 'ROUTINE' => Token::FLAG_KEYWORD, + 'ROW' => Token::FLAG_KEYWORD, + 'ROW_FORMAT' => Token::FLAG_KEYWORD, + 'RTREE' => Token::FLAG_KEYWORD, + 'SAVEPOINT' => Token::FLAG_KEYWORD, + 'SCHEDULE' => Token::FLAG_KEYWORD, + 'SCHEMA_NAME' => Token::FLAG_KEYWORD, + 'SECURITY' => Token::FLAG_KEYWORD, + 'SEQUENCE' => Token::FLAG_KEYWORD, + 'SERIALIZABLE' => Token::FLAG_KEYWORD, + 'SERVER' => Token::FLAG_KEYWORD, + 'SESSION' => Token::FLAG_KEYWORD, + 'SHARE' => Token::FLAG_KEYWORD, + 'SHUTDOWN' => Token::FLAG_KEYWORD, + 'SIGNED' => Token::FLAG_KEYWORD, + 'SIMPLE' => Token::FLAG_KEYWORD, + 'SLAVE' => Token::FLAG_KEYWORD, + 'SLOW' => Token::FLAG_KEYWORD, + 'SNAPSHOT' => Token::FLAG_KEYWORD, + 'SOCKET' => Token::FLAG_KEYWORD, + 'SOME' => Token::FLAG_KEYWORD, + 'SONAME' => Token::FLAG_KEYWORD, + 'SOUNDS' => Token::FLAG_KEYWORD, + 'SOURCE' => Token::FLAG_KEYWORD, + 'SQL_AFTER_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_AFTER_MTS_GAPS' => Token::FLAG_KEYWORD, + 'SQL_BEFORE_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_BUFFER_RESULT' => Token::FLAG_KEYWORD, + 'SQL_CACHE' => Token::FLAG_KEYWORD, + 'SQL_NO_CACHE' => Token::FLAG_KEYWORD, + 'SQL_THREAD' => Token::FLAG_KEYWORD, + 'SQL_TSI_DAY' => Token::FLAG_KEYWORD, + 'SQL_TSI_HOUR' => Token::FLAG_KEYWORD, + 'SQL_TSI_MINUTE' => Token::FLAG_KEYWORD, + 'SQL_TSI_MONTH' => Token::FLAG_KEYWORD, + 'SQL_TSI_QUARTER' => Token::FLAG_KEYWORD, + 'SQL_TSI_SECOND' => Token::FLAG_KEYWORD, + 'SQL_TSI_WEEK' => Token::FLAG_KEYWORD, + 'SQL_TSI_YEAR' => Token::FLAG_KEYWORD, + 'STACKED' => Token::FLAG_KEYWORD, + 'START' => Token::FLAG_KEYWORD, + 'STARTS' => Token::FLAG_KEYWORD, + 'STATS_AUTO_RECALC' => Token::FLAG_KEYWORD, + 'STATS_PERSISTENT' => Token::FLAG_KEYWORD, + 'STATS_SAMPLE_PAGES' => Token::FLAG_KEYWORD, + 'STATUS' => Token::FLAG_KEYWORD, + 'STOP' => Token::FLAG_KEYWORD, + 'STORAGE' => Token::FLAG_KEYWORD, + 'STRING' => Token::FLAG_KEYWORD, + 'SUBCLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'SUBJECT' => Token::FLAG_KEYWORD, + 'SUBPARTITION' => Token::FLAG_KEYWORD, + 'SUBPARTITIONS' => Token::FLAG_KEYWORD, + 'SUPER' => Token::FLAG_KEYWORD, + 'SUSPEND' => Token::FLAG_KEYWORD, + 'SWAPS' => Token::FLAG_KEYWORD, + 'SWITCHES' => Token::FLAG_KEYWORD, + 'TABLES' => Token::FLAG_KEYWORD, + 'TABLESPACE' => Token::FLAG_KEYWORD, + 'TABLE_CHECKSUM' => Token::FLAG_KEYWORD, + 'TABLE_NAME' => Token::FLAG_KEYWORD, + 'TEMPORARY' => Token::FLAG_KEYWORD, + 'TEMPTABLE' => Token::FLAG_KEYWORD, + 'THAN' => Token::FLAG_KEYWORD, + 'TRANSACTION' => Token::FLAG_KEYWORD, + 'TRIGGERS' => Token::FLAG_KEYWORD, + 'TYPE' => Token::FLAG_KEYWORD, + 'TYPES' => Token::FLAG_KEYWORD, + 'UNCOMMITTED' => Token::FLAG_KEYWORD, + 'UNDEFINED' => Token::FLAG_KEYWORD, + 'UNDOFILE' => Token::FLAG_KEYWORD, + 'UNDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'UNICODE' => Token::FLAG_KEYWORD, + 'UNINSTALL' => Token::FLAG_KEYWORD, + 'UNKNOWN' => Token::FLAG_KEYWORD, + 'UNTIL' => Token::FLAG_KEYWORD, + 'UPGRADE' => Token::FLAG_KEYWORD, + 'USER_RESOURCES' => Token::FLAG_KEYWORD, + 'USE_FRM' => Token::FLAG_KEYWORD, + 'VALIDATION' => Token::FLAG_KEYWORD, + 'VALUE' => Token::FLAG_KEYWORD, + 'VARIABLES' => Token::FLAG_KEYWORD, + 'VIEW' => Token::FLAG_KEYWORD, + 'WAIT' => Token::FLAG_KEYWORD, + 'WARNINGS' => Token::FLAG_KEYWORD, + 'WITHOUT' => Token::FLAG_KEYWORD, + 'WORK' => Token::FLAG_KEYWORD, + 'WRAPPER' => Token::FLAG_KEYWORD, + 'X509' => Token::FLAG_KEYWORD, + 'XA' => Token::FLAG_KEYWORD, + 'XID' => Token::FLAG_KEYWORD, + 'ACCESSIBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ANALYZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BEFORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BETWEEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BOTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASCADE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHECK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLUMN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONDITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONSTRAINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONTINUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CREATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CROSS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CURSOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DATABASES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DECLARE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELAYED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESCRIBE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DETERMINISTIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCTROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DIV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DROP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EACH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSEIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ENCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ESCAPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXCEPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXPLAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FALSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FETCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FORCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOREIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FROM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GENERATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GRANT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GROUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HAVING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HIGH_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IGNORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INNER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INOUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INSENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTERSECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_BEFORE_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ITERATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEADING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIMIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOOP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOW_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MASTER_BIND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MASTER_SSL_VERIFY_SERVER_CERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MAXVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MODIFIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NATURAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NO_WRITE_TO_BINLOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OFFSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZER_COSTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIONALLY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ORDER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OVER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRECISION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRIMARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PROCEDURE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PURGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ_WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RECURSIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REFERENCES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REGEXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RENAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REQUIRE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESTRICT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RETURN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REVOKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RLIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ROW_NUMBER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SCHEMAS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SECOND_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SELECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SEPARATOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SHOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SPECIFIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLEXCEPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLSTATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLWARNING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_BIG_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_CALC_FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_SMALL_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SSL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STARTING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STORED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STRAIGHT_JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TABLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TERMINATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'THEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRAILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRIGGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNDO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNLOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNSIGNED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USAGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'YEAR_MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ZEROFILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'AND NO CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'COALESCE PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CONTAINS SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CROSS JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DATA DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DISABLE ON SLAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ENCLOSED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ESCAPED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR EACH ROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GENERATED ALWAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GROUP BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF NOT EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INDEX DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INNER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LANGUAGE SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LESS THAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR HASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOAD DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOCK IN SHARE MODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'MODIFIES SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO ACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NOT NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION NOT PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON SCHEDULE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'OR REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ORDER BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'PARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'READS SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SELECT TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SQL SECURITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'START TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'STARTING BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SUBPARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'TERMINATED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH CONSISTENT SNAPSHOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH ROLLUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOLEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'DATETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'ENUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'FIXED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'GEOMETRY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'JSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTISET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'SERIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'TEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'XML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIGINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DECIMAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DOUBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT3' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INTEGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MIDDLEINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'NUMERIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'REAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SMALLINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BINARY VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FULLTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'FOREIGN KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED VIA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'INDEX KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ACOS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AGAINST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ANY_VALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASCII' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AVG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BENCHMARK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEIL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARACTER_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COALESCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COERCIBILITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COLLATION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT_WS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONNECTION_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT_TZ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CRC32' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_SUB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFMONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DECODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DEGREES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ELT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXPORT_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACTVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIELD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIND_IN_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FLOOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_UNIXTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GLENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GREATEST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GROUP_CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IFNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_FREE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_COMPAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_MAPPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV6' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_USED_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_APPEND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS_PATH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_DEPTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_OBJECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_PRETTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REMOVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SEARCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_FREE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_SIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_TYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_UNQUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_VALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LAST_INSERT_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LEAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOAD_FILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG10' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKEDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKE_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MASTER_POS_WAIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVEREDBY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVERS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRDISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRINTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBROVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRTOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRWITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MD5' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTHNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NAME_CONST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NULLIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCTET_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OLD_PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_DIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PI' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POSITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUARTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RADIANS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RAND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RANDOM_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_ALL_LOCKS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'REVERSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROUND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROW_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SEC_TO_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SESSION_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SLEEP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SOUNDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SPACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SQRT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STRCMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STR_TO_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER_STRATEGY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_COLLECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE_SPHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISVALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LATFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LONGFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MAKEENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SIMPLIFY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SYMDIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_VALIDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING_INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSTEM_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_TO_SEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_SECONDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRUNCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESSED_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNHEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNIX_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPDATEXML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPPER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_SHORT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_V7' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VALIDATE_PASSWORD_STRENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VARIANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE_COSINE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_DISTANCE_EUCLIDEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_FROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VEC_TOTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VERSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_FOR_EXECUTED_GTID_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKDAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEIGHT_STRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'YEARWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DATABASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DEFAULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LEFT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MOD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPEAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'RIGHT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'SCHEMA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'VALUES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'NOT IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_FUNCTION, + 'DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'YEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'BINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'INTERVAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + ]; +} diff --git a/src/Contexts/ContextMySql50000.php b/src/Contexts/ContextMySql50000.php index 78c8ad923..b147ea85f 100644 --- a/src/Contexts/ContextMySql50000.php +++ b/src/Contexts/ContextMySql50000.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/5.0/en/keywords.html */ -class ContextMySql50000 extends Context +final class ContextMySql50000 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql50000 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, 'AGGREGATE' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql50100.php b/src/Contexts/ContextMySql50100.php index 7f0609e97..289a25a0b 100644 --- a/src/Contexts/ContextMySql50100.php +++ b/src/Contexts/ContextMySql50100.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/5.1/en/keywords.html */ -class ContextMySql50100 extends Context +final class ContextMySql50100 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql50100 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, 'AGGREGATE' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql50500.php b/src/Contexts/ContextMySql50500.php index c17f9c9c7..d724cca50 100644 --- a/src/Contexts/ContextMySql50500.php +++ b/src/Contexts/ContextMySql50500.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/5.5/en/keywords.html */ -class ContextMySql50500 extends Context +final class ContextMySql50500 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql50500 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, 'AGGREGATE' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql50600.php b/src/Contexts/ContextMySql50600.php index 3710cb96c..c99c7b9ea 100644 --- a/src/Contexts/ContextMySql50600.php +++ b/src/Contexts/ContextMySql50600.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/5.6/en/keywords.html */ -class ContextMySql50600 extends Context +final class ContextMySql50600 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql50600 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, 'AGGREGATE' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql50700.php b/src/Contexts/ContextMySql50700.php index 31ed49406..0bb8cd306 100644 --- a/src/Contexts/ContextMySql50700.php +++ b/src/Contexts/ContextMySql50700.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/5.7/en/keywords.html */ -class ContextMySql50700 extends Context +final class ContextMySql50700 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql50700 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql80000.php b/src/Contexts/ContextMySql80000.php index 424e15a20..78d840b4b 100644 --- a/src/Contexts/ContextMySql80000.php +++ b/src/Contexts/ContextMySql80000.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/8.0/en/keywords.html */ -class ContextMySql80000 extends Context +final class ContextMySql80000 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql80000 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql80100.php b/src/Contexts/ContextMySql80100.php index 91cb1ef85..81a24964b 100644 --- a/src/Contexts/ContextMySql80100.php +++ b/src/Contexts/ContextMySql80100.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/8.1/en/keywords.html */ -class ContextMySql80100 extends Context +final class ContextMySql80100 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql80100 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql80200.php b/src/Contexts/ContextMySql80200.php index 84e9d82cd..d60709c15 100644 --- a/src/Contexts/ContextMySql80200.php +++ b/src/Contexts/ContextMySql80200.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/8.2/en/keywords.html */ -class ContextMySql80200 extends Context +final class ContextMySql80200 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql80200 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql80300.php b/src/Contexts/ContextMySql80300.php index 9471c0d70..1b8eb3f01 100644 --- a/src/Contexts/ContextMySql80300.php +++ b/src/Contexts/ContextMySql80300.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/8.3/en/keywords.html */ -class ContextMySql80300 extends Context +final class ContextMySql80300 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql80300 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql80400.php b/src/Contexts/ContextMySql80400.php index 707deea48..40b0ad4fb 100644 --- a/src/Contexts/ContextMySql80400.php +++ b/src/Contexts/ContextMySql80400.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/8.4/en/keywords.html */ -class ContextMySql80400 extends Context +final class ContextMySql80400 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql80400 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql90000.php b/src/Contexts/ContextMySql90000.php index 7b4ba9721..88939ac1a 100644 --- a/src/Contexts/ContextMySql90000.php +++ b/src/Contexts/ContextMySql90000.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/9.0/en/keywords.html */ -class ContextMySql90000 extends Context +final class ContextMySql90000 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql90000 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql90100.php b/src/Contexts/ContextMySql90100.php index aaea0d5fb..820296f70 100644 --- a/src/Contexts/ContextMySql90100.php +++ b/src/Contexts/ContextMySql90100.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://dev.mysql.com/doc/refman/9.1/en/keywords.html */ -class ContextMySql90100 extends Context +final class ContextMySql90100 { /** * List of keywords. @@ -24,10 +23,10 @@ class ContextMySql90100 extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'ACCOUNT' => Token::FLAG_KEYWORD, 'ACTION' => Token::FLAG_KEYWORD, 'AFTER' => Token::FLAG_KEYWORD, diff --git a/src/Contexts/ContextMySql90200.php b/src/Contexts/ContextMySql90200.php new file mode 100644 index 000000000..92e3eafec --- /dev/null +++ b/src/Contexts/ContextMySql90200.php @@ -0,0 +1,1089 @@ + + * @phpstan-var non-empty-array + */ + public const KEYWORDS = [ + 'ACCOUNT' => Token::FLAG_KEYWORD, + 'ACTION' => Token::FLAG_KEYWORD, + 'AFTER' => Token::FLAG_KEYWORD, + 'AGGREGATE' => Token::FLAG_KEYWORD, + 'ALGORITHM' => Token::FLAG_KEYWORD, + 'ALWAYS' => Token::FLAG_KEYWORD, + 'ANALYSE' => Token::FLAG_KEYWORD, + 'ANY' => Token::FLAG_KEYWORD, + 'AT' => Token::FLAG_KEYWORD, + 'AUTO' => Token::FLAG_KEYWORD, + 'AUTOEXTEND_SIZE' => Token::FLAG_KEYWORD, + 'AUTO_INCREMENT' => Token::FLAG_KEYWORD, + 'AVG_ROW_LENGTH' => Token::FLAG_KEYWORD, + 'BACKUP' => Token::FLAG_KEYWORD, + 'BEGIN' => Token::FLAG_KEYWORD, + 'BERNOULLI' => Token::FLAG_KEYWORD, + 'BINLOG' => Token::FLAG_KEYWORD, + 'BLOCK' => Token::FLAG_KEYWORD, + 'BTREE' => Token::FLAG_KEYWORD, + 'BYTE' => Token::FLAG_KEYWORD, + 'CACHE' => Token::FLAG_KEYWORD, + 'CASCADED' => Token::FLAG_KEYWORD, + 'CATALOG_NAME' => Token::FLAG_KEYWORD, + 'CHAIN' => Token::FLAG_KEYWORD, + 'CHANGED' => Token::FLAG_KEYWORD, + 'CHANNEL' => Token::FLAG_KEYWORD, + 'CHECKSUM' => Token::FLAG_KEYWORD, + 'CIPHER' => Token::FLAG_KEYWORD, + 'CLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'CLIENT' => Token::FLAG_KEYWORD, + 'CLOSE' => Token::FLAG_KEYWORD, + 'CODE' => Token::FLAG_KEYWORD, + 'COLUMNS' => Token::FLAG_KEYWORD, + 'COLUMN_FORMAT' => Token::FLAG_KEYWORD, + 'COLUMN_NAME' => Token::FLAG_KEYWORD, + 'COMMENT' => Token::FLAG_KEYWORD, + 'COMMIT' => Token::FLAG_KEYWORD, + 'COMMITTED' => Token::FLAG_KEYWORD, + 'COMPACT' => Token::FLAG_KEYWORD, + 'COMPLETION' => Token::FLAG_KEYWORD, + 'COMPRESSED' => Token::FLAG_KEYWORD, + 'COMPRESSION' => Token::FLAG_KEYWORD, + 'CONCURRENT' => Token::FLAG_KEYWORD, + 'CONNECTION' => Token::FLAG_KEYWORD, + 'CONSISTENT' => Token::FLAG_KEYWORD, + 'CONSTRAINT_CATALOG' => Token::FLAG_KEYWORD, + 'CONSTRAINT_NAME' => Token::FLAG_KEYWORD, + 'CONSTRAINT_SCHEMA' => Token::FLAG_KEYWORD, + 'CONTEXT' => Token::FLAG_KEYWORD, + 'CPU' => Token::FLAG_KEYWORD, + 'CUBE' => Token::FLAG_KEYWORD, + 'CURRENT' => Token::FLAG_KEYWORD, + 'CURSOR_NAME' => Token::FLAG_KEYWORD, + 'DATA' => Token::FLAG_KEYWORD, + 'DATAFILE' => Token::FLAG_KEYWORD, + 'DEALLOCATE' => Token::FLAG_KEYWORD, + 'DEFAULT_AUTH' => Token::FLAG_KEYWORD, + 'DEFINER' => Token::FLAG_KEYWORD, + 'DELAY_KEY_WRITE' => Token::FLAG_KEYWORD, + 'DES_KEY_FILE' => Token::FLAG_KEYWORD, + 'DIAGNOSTICS' => Token::FLAG_KEYWORD, + 'DIRECTORY' => Token::FLAG_KEYWORD, + 'DISABLE' => Token::FLAG_KEYWORD, + 'DISCARD' => Token::FLAG_KEYWORD, + 'DISK' => Token::FLAG_KEYWORD, + 'DO' => Token::FLAG_KEYWORD, + 'DUMPFILE' => Token::FLAG_KEYWORD, + 'DUPLICATE' => Token::FLAG_KEYWORD, + 'DYNAMIC' => Token::FLAG_KEYWORD, + 'ENABLE' => Token::FLAG_KEYWORD, + 'END' => Token::FLAG_KEYWORD, + 'ENDS' => Token::FLAG_KEYWORD, + 'ENGINE' => Token::FLAG_KEYWORD, + 'ENGINES' => Token::FLAG_KEYWORD, + 'ERROR' => Token::FLAG_KEYWORD, + 'ERRORS' => Token::FLAG_KEYWORD, + 'ESCAPE' => Token::FLAG_KEYWORD, + 'EVENT' => Token::FLAG_KEYWORD, + 'EVENTS' => Token::FLAG_KEYWORD, + 'EVERY' => Token::FLAG_KEYWORD, + 'EXCHANGE' => Token::FLAG_KEYWORD, + 'EXECUTE' => Token::FLAG_KEYWORD, + 'EXPANSION' => Token::FLAG_KEYWORD, + 'EXPIRE' => Token::FLAG_KEYWORD, + 'EXPORT' => Token::FLAG_KEYWORD, + 'EXTENDED' => Token::FLAG_KEYWORD, + 'EXTENT_SIZE' => Token::FLAG_KEYWORD, + 'FAST' => Token::FLAG_KEYWORD, + 'FAULTS' => Token::FLAG_KEYWORD, + 'FIELDS' => Token::FLAG_KEYWORD, + 'FILE' => Token::FLAG_KEYWORD, + 'FILE_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'FILTER' => Token::FLAG_KEYWORD, + 'FIRST' => Token::FLAG_KEYWORD, + 'FLUSH' => Token::FLAG_KEYWORD, + 'FOLLOWS' => Token::FLAG_KEYWORD, + 'FOUND' => Token::FLAG_KEYWORD, + 'FULL' => Token::FLAG_KEYWORD, + 'FUNCTION' => Token::FLAG_KEYWORD, + 'GENERAL' => Token::FLAG_KEYWORD, + 'GLOBAL' => Token::FLAG_KEYWORD, + 'GRANTS' => Token::FLAG_KEYWORD, + 'GROUP_REPLICATION' => Token::FLAG_KEYWORD, + 'GTIDS' => Token::FLAG_KEYWORD, + 'HANDLER' => Token::FLAG_KEYWORD, + 'HASH' => Token::FLAG_KEYWORD, + 'HELP' => Token::FLAG_KEYWORD, + 'HOST' => Token::FLAG_KEYWORD, + 'HOSTS' => Token::FLAG_KEYWORD, + 'IDENTIFIED' => Token::FLAG_KEYWORD, + 'IGNORE_SERVER_IDS' => Token::FLAG_KEYWORD, + 'IMPORT' => Token::FLAG_KEYWORD, + 'INDEXES' => Token::FLAG_KEYWORD, + 'INITIAL_SIZE' => Token::FLAG_KEYWORD, + 'INSERT_METHOD' => Token::FLAG_KEYWORD, + 'INSTALL' => Token::FLAG_KEYWORD, + 'INVISIBLE' => Token::FLAG_KEYWORD, + 'INVOKER' => Token::FLAG_KEYWORD, + 'IO' => Token::FLAG_KEYWORD, + 'IO_THREAD' => Token::FLAG_KEYWORD, + 'IPC' => Token::FLAG_KEYWORD, + 'ISOLATION' => Token::FLAG_KEYWORD, + 'ISSUER' => Token::FLAG_KEYWORD, + 'KEY_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'LANGUAGE' => Token::FLAG_KEYWORD, + 'LAST' => Token::FLAG_KEYWORD, + 'LEAVES' => Token::FLAG_KEYWORD, + 'LESS' => Token::FLAG_KEYWORD, + 'LEVEL' => Token::FLAG_KEYWORD, + 'LIST' => Token::FLAG_KEYWORD, + 'LOCAL' => Token::FLAG_KEYWORD, + 'LOCKS' => Token::FLAG_KEYWORD, + 'LOGFILE' => Token::FLAG_KEYWORD, + 'LOGS' => Token::FLAG_KEYWORD, + 'MASTER' => Token::FLAG_KEYWORD, + 'MASTER_SERVER_ID' => Token::FLAG_KEYWORD, + 'MAX_CONNECTIONS_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_QUERIES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_ROWS' => Token::FLAG_KEYWORD, + 'MAX_SIZE' => Token::FLAG_KEYWORD, + 'MAX_STATEMENT_TIME' => Token::FLAG_KEYWORD, + 'MAX_UPDATES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_USER_CONNECTIONS' => Token::FLAG_KEYWORD, + 'MEDIUM' => Token::FLAG_KEYWORD, + 'MEMORY' => Token::FLAG_KEYWORD, + 'MERGE' => Token::FLAG_KEYWORD, + 'MESSAGE_TEXT' => Token::FLAG_KEYWORD, + 'MIGRATE' => Token::FLAG_KEYWORD, + 'MIN_ROWS' => Token::FLAG_KEYWORD, + 'MODE' => Token::FLAG_KEYWORD, + 'MODIFY' => Token::FLAG_KEYWORD, + 'MUTEX' => Token::FLAG_KEYWORD, + 'MYSQL_ERRNO' => Token::FLAG_KEYWORD, + 'NAME' => Token::FLAG_KEYWORD, + 'NAMES' => Token::FLAG_KEYWORD, + 'NATIONAL' => Token::FLAG_KEYWORD, + 'NCHAR' => Token::FLAG_KEYWORD, + 'NDB' => Token::FLAG_KEYWORD, + 'NDBCLUSTER' => Token::FLAG_KEYWORD, + 'NEVER' => Token::FLAG_KEYWORD, + 'NEW' => Token::FLAG_KEYWORD, + 'NEXT' => Token::FLAG_KEYWORD, + 'NO' => Token::FLAG_KEYWORD, + 'NODEGROUP' => Token::FLAG_KEYWORD, + 'NONBLOCKING' => Token::FLAG_KEYWORD, + 'NONE' => Token::FLAG_KEYWORD, + 'NO_WAIT' => Token::FLAG_KEYWORD, + 'NUMBER' => Token::FLAG_KEYWORD, + 'NVARCHAR' => Token::FLAG_KEYWORD, + 'OFFSET' => Token::FLAG_KEYWORD, + 'ONE' => Token::FLAG_KEYWORD, + 'ONLY' => Token::FLAG_KEYWORD, + 'OPEN' => Token::FLAG_KEYWORD, + 'OPTIONS' => Token::FLAG_KEYWORD, + 'OWNER' => Token::FLAG_KEYWORD, + 'PACK_KEYS' => Token::FLAG_KEYWORD, + 'PAGE' => Token::FLAG_KEYWORD, + 'PARSER' => Token::FLAG_KEYWORD, + 'PARSE_GCOL_EXPR' => Token::FLAG_KEYWORD, + 'PARSE_TREE' => Token::FLAG_KEYWORD, + 'PARTIAL' => Token::FLAG_KEYWORD, + 'PARTITIONING' => Token::FLAG_KEYWORD, + 'PARTITIONS' => Token::FLAG_KEYWORD, + 'PERSIST' => Token::FLAG_KEYWORD, + 'PERSISTENT' => Token::FLAG_KEYWORD, + 'PERSIST_ONLY' => Token::FLAG_KEYWORD, + 'PHASE' => Token::FLAG_KEYWORD, + 'PLUGIN' => Token::FLAG_KEYWORD, + 'PLUGINS' => Token::FLAG_KEYWORD, + 'PLUGIN_DIR' => Token::FLAG_KEYWORD, + 'PORT' => Token::FLAG_KEYWORD, + 'PRECEDES' => Token::FLAG_KEYWORD, + 'PREPARE' => Token::FLAG_KEYWORD, + 'PRESERVE' => Token::FLAG_KEYWORD, + 'PREV' => Token::FLAG_KEYWORD, + 'PRIVILEGES' => Token::FLAG_KEYWORD, + 'PROCESSLIST' => Token::FLAG_KEYWORD, + 'PROFILE' => Token::FLAG_KEYWORD, + 'PROFILES' => Token::FLAG_KEYWORD, + 'PROXY' => Token::FLAG_KEYWORD, + 'QUERY' => Token::FLAG_KEYWORD, + 'QUICK' => Token::FLAG_KEYWORD, + 'READ_ONLY' => Token::FLAG_KEYWORD, + 'REBUILD' => Token::FLAG_KEYWORD, + 'RECOVER' => Token::FLAG_KEYWORD, + 'REDOFILE' => Token::FLAG_KEYWORD, + 'REDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'REDUNDANT' => Token::FLAG_KEYWORD, + 'RELAY' => Token::FLAG_KEYWORD, + 'RELAYLOG' => Token::FLAG_KEYWORD, + 'RELAY_LOG_FILE' => Token::FLAG_KEYWORD, + 'RELAY_LOG_POS' => Token::FLAG_KEYWORD, + 'RELAY_THREAD' => Token::FLAG_KEYWORD, + 'RELOAD' => Token::FLAG_KEYWORD, + 'REMOVE' => Token::FLAG_KEYWORD, + 'REORGANIZE' => Token::FLAG_KEYWORD, + 'REPAIR' => Token::FLAG_KEYWORD, + 'REPEATABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_REWRITE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATION' => Token::FLAG_KEYWORD, + 'RESET' => Token::FLAG_KEYWORD, + 'RESTORE' => Token::FLAG_KEYWORD, + 'RESUME' => Token::FLAG_KEYWORD, + 'RETURNED_SQLSTATE' => Token::FLAG_KEYWORD, + 'RETURNS' => Token::FLAG_KEYWORD, + 'ROLLBACK' => Token::FLAG_KEYWORD, + 'ROLLUP' => Token::FLAG_KEYWORD, + 'ROUTINE' => Token::FLAG_KEYWORD, + 'ROW' => Token::FLAG_KEYWORD, + 'ROWS' => Token::FLAG_KEYWORD, + 'ROW_FORMAT' => Token::FLAG_KEYWORD, + 'RTREE' => Token::FLAG_KEYWORD, + 'S3' => Token::FLAG_KEYWORD, + 'SAVEPOINT' => Token::FLAG_KEYWORD, + 'SCHEDULE' => Token::FLAG_KEYWORD, + 'SCHEMA_NAME' => Token::FLAG_KEYWORD, + 'SECURITY' => Token::FLAG_KEYWORD, + 'SERIALIZABLE' => Token::FLAG_KEYWORD, + 'SERVER' => Token::FLAG_KEYWORD, + 'SESSION' => Token::FLAG_KEYWORD, + 'SHARE' => Token::FLAG_KEYWORD, + 'SHUTDOWN' => Token::FLAG_KEYWORD, + 'SIGNED' => Token::FLAG_KEYWORD, + 'SIMPLE' => Token::FLAG_KEYWORD, + 'SLAVE' => Token::FLAG_KEYWORD, + 'SLOW' => Token::FLAG_KEYWORD, + 'SNAPSHOT' => Token::FLAG_KEYWORD, + 'SOCKET' => Token::FLAG_KEYWORD, + 'SOME' => Token::FLAG_KEYWORD, + 'SONAME' => Token::FLAG_KEYWORD, + 'SOUNDS' => Token::FLAG_KEYWORD, + 'SOURCE' => Token::FLAG_KEYWORD, + 'SQL_AFTER_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_AFTER_MTS_GAPS' => Token::FLAG_KEYWORD, + 'SQL_BEFORE_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_BUFFER_RESULT' => Token::FLAG_KEYWORD, + 'SQL_CACHE' => Token::FLAG_KEYWORD, + 'SQL_NO_CACHE' => Token::FLAG_KEYWORD, + 'SQL_THREAD' => Token::FLAG_KEYWORD, + 'SQL_TSI_DAY' => Token::FLAG_KEYWORD, + 'SQL_TSI_HOUR' => Token::FLAG_KEYWORD, + 'SQL_TSI_MINUTE' => Token::FLAG_KEYWORD, + 'SQL_TSI_MONTH' => Token::FLAG_KEYWORD, + 'SQL_TSI_QUARTER' => Token::FLAG_KEYWORD, + 'SQL_TSI_SECOND' => Token::FLAG_KEYWORD, + 'SQL_TSI_WEEK' => Token::FLAG_KEYWORD, + 'SQL_TSI_YEAR' => Token::FLAG_KEYWORD, + 'STACKED' => Token::FLAG_KEYWORD, + 'START' => Token::FLAG_KEYWORD, + 'STARTS' => Token::FLAG_KEYWORD, + 'STATS_AUTO_RECALC' => Token::FLAG_KEYWORD, + 'STATS_PERSISTENT' => Token::FLAG_KEYWORD, + 'STATS_SAMPLE_PAGES' => Token::FLAG_KEYWORD, + 'STATUS' => Token::FLAG_KEYWORD, + 'STOP' => Token::FLAG_KEYWORD, + 'STORAGE' => Token::FLAG_KEYWORD, + 'STRING' => Token::FLAG_KEYWORD, + 'SUBCLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'SUBJECT' => Token::FLAG_KEYWORD, + 'SUBPARTITION' => Token::FLAG_KEYWORD, + 'SUBPARTITIONS' => Token::FLAG_KEYWORD, + 'SUPER' => Token::FLAG_KEYWORD, + 'SUSPEND' => Token::FLAG_KEYWORD, + 'SWAPS' => Token::FLAG_KEYWORD, + 'SWITCHES' => Token::FLAG_KEYWORD, + 'TABLES' => Token::FLAG_KEYWORD, + 'TABLESPACE' => Token::FLAG_KEYWORD, + 'TABLE_CHECKSUM' => Token::FLAG_KEYWORD, + 'TABLE_NAME' => Token::FLAG_KEYWORD, + 'TEMPORARY' => Token::FLAG_KEYWORD, + 'TEMPTABLE' => Token::FLAG_KEYWORD, + 'THAN' => Token::FLAG_KEYWORD, + 'TRANSACTION' => Token::FLAG_KEYWORD, + 'TRIGGERS' => Token::FLAG_KEYWORD, + 'TYPE' => Token::FLAG_KEYWORD, + 'TYPES' => Token::FLAG_KEYWORD, + 'UNCOMMITTED' => Token::FLAG_KEYWORD, + 'UNDEFINED' => Token::FLAG_KEYWORD, + 'UNDOFILE' => Token::FLAG_KEYWORD, + 'UNDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'UNICODE' => Token::FLAG_KEYWORD, + 'UNINSTALL' => Token::FLAG_KEYWORD, + 'UNKNOWN' => Token::FLAG_KEYWORD, + 'UNTIL' => Token::FLAG_KEYWORD, + 'UPGRADE' => Token::FLAG_KEYWORD, + 'USER_RESOURCES' => Token::FLAG_KEYWORD, + 'USE_FRM' => Token::FLAG_KEYWORD, + 'VALIDATION' => Token::FLAG_KEYWORD, + 'VALUE' => Token::FLAG_KEYWORD, + 'VARIABLES' => Token::FLAG_KEYWORD, + 'VIEW' => Token::FLAG_KEYWORD, + 'WAIT' => Token::FLAG_KEYWORD, + 'WARNINGS' => Token::FLAG_KEYWORD, + 'WITHOUT' => Token::FLAG_KEYWORD, + 'WORK' => Token::FLAG_KEYWORD, + 'WRAPPER' => Token::FLAG_KEYWORD, + 'X509' => Token::FLAG_KEYWORD, + 'XA' => Token::FLAG_KEYWORD, + 'XID' => Token::FLAG_KEYWORD, + 'ACCESSIBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ANALYZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BEFORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BETWEEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BOTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASCADE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHECK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLUMN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONDITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONSTRAINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONTINUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CREATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CROSS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CURSOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DATABASES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DECLARE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELAYED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESCRIBE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DETERMINISTIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCTROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DIV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DROP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EACH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSEIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ENCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ESCAPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXPLAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FALSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FETCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FORCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOREIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FROM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GENERATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GRANT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GROUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HAVING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HIGH_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IGNORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INNER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INOUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INSENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_BEFORE_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ITERATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEADING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIMIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOOP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOW_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MANUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MAXVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MODIFIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NATURAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NO_WRITE_TO_BINLOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZER_COSTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIONALLY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ORDER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OVER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PARALLEL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRECISION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRIMARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PROCEDURE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PURGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'QUALIFY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ_WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REFERENCES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REGEXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RENAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REQUIRE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESTRICT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RETURN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REVOKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RLIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SCHEMAS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SECOND_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SELECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SEPARATOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SHOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SPECIFIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLEXCEPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLSTATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLWARNING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_BIG_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_CALC_FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_SMALL_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SSL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STARTING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STORED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STRAIGHT_JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TABLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TABLESAMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TERMINATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'THEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRAILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRIGGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNDO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNLOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNSIGNED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USAGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'YEAR_MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ZEROFILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'AND NO CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'COALESCE PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CONTAINS SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CROSS JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DATA DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DISABLE ON SLAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ENCLOSED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ESCAPED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR EACH ROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GENERATED ALWAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GROUP BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF NOT EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INDEX DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INNER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LANGUAGE SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LESS THAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR HASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOAD DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOCK IN SHARE MODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'MODIFIES SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO ACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NOT NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION NOT PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON SCHEDULE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'OR REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ORDER BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'PARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'READS SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SELECT TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SQL SECURITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'START TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'STARTING BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SUBPARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'TERMINATED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH CONSISTENT SNAPSHOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH PARSER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH ROLLUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOLEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'DATETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'ENUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'FIXED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'GEOMETRY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'JSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTISET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'SERIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'TEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'XML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIGINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DECIMAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DOUBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT3' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INTEGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MIDDLEINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'NUMERIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'REAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SMALLINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BINARY VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FULLTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'FOREIGN KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'INDEX KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ACOS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AGAINST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ANY_VALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASCII' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AVG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BENCHMARK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIN_TO_UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEIL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARACTER_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COALESCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COERCIBILITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COLLATION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT_WS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONNECTION_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT_TZ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CRC32' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_SUB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFMONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DECODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DEGREES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ELT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXPORT_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACTVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIELD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIND_IN_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FLOOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_UNIXTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GLENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GREATEST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GROUP_CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IFNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_FREE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_COMPAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_MAPPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV6' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_USED_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_APPEND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS_PATH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_DEPTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_OBJECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_PRETTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REMOVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SEARCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_FREE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_SIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_TYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_UNQUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_VALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LAST_INSERT_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LEAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOAD_FILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG10' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKEDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKE_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MASTER_POS_WAIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVEREDBY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVERS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRDISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRINTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBROVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRTOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRWITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MD5' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTHNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NAME_CONST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NULLIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCTET_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OLD_PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_DIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PI' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POSITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUARTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RADIANS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RAND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RANDOM_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_ALL_LOCKS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'REVERSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROUND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROW_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SEC_TO_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SESSION_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SLEEP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SOUNDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SPACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SQRT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STRCMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STRING_TO_VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STR_TO_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER_STRATEGY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE_SPHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISVALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LATFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LONGFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MAKEENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SIMPLIFY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SYMDIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_VALIDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING_INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSTEM_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_TO_SEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_SECONDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRUNCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESSED_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNHEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNIX_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPDATEXML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPPER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_SHORT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_TO_BIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VALIDATE_PASSWORD_STRENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VARIANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VECTOR_DIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VECTOR_TO_STRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VERSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_FOR_EXECUTED_GTID_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKDAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEIGHT_STRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'YEARWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DATABASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DEFAULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LEFT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MOD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPEAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'RIGHT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'SCHEMA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'VALUES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'NOT IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_FUNCTION, + 'DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'YEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'BINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'INTERVAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + ]; +} diff --git a/src/Contexts/ContextMySql90300.php b/src/Contexts/ContextMySql90300.php new file mode 100644 index 000000000..41dfb2bff --- /dev/null +++ b/src/Contexts/ContextMySql90300.php @@ -0,0 +1,1089 @@ + + * @phpstan-var non-empty-array + */ + public const KEYWORDS = [ + 'ACCOUNT' => Token::FLAG_KEYWORD, + 'ACTION' => Token::FLAG_KEYWORD, + 'AFTER' => Token::FLAG_KEYWORD, + 'AGGREGATE' => Token::FLAG_KEYWORD, + 'ALGORITHM' => Token::FLAG_KEYWORD, + 'ALWAYS' => Token::FLAG_KEYWORD, + 'ANALYSE' => Token::FLAG_KEYWORD, + 'ANY' => Token::FLAG_KEYWORD, + 'AT' => Token::FLAG_KEYWORD, + 'AUTO' => Token::FLAG_KEYWORD, + 'AUTOEXTEND_SIZE' => Token::FLAG_KEYWORD, + 'AUTO_INCREMENT' => Token::FLAG_KEYWORD, + 'AVG_ROW_LENGTH' => Token::FLAG_KEYWORD, + 'BACKUP' => Token::FLAG_KEYWORD, + 'BEGIN' => Token::FLAG_KEYWORD, + 'BERNOULLI' => Token::FLAG_KEYWORD, + 'BINLOG' => Token::FLAG_KEYWORD, + 'BLOCK' => Token::FLAG_KEYWORD, + 'BTREE' => Token::FLAG_KEYWORD, + 'BYTE' => Token::FLAG_KEYWORD, + 'CACHE' => Token::FLAG_KEYWORD, + 'CASCADED' => Token::FLAG_KEYWORD, + 'CATALOG_NAME' => Token::FLAG_KEYWORD, + 'CHAIN' => Token::FLAG_KEYWORD, + 'CHANGED' => Token::FLAG_KEYWORD, + 'CHANNEL' => Token::FLAG_KEYWORD, + 'CHECKSUM' => Token::FLAG_KEYWORD, + 'CIPHER' => Token::FLAG_KEYWORD, + 'CLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'CLIENT' => Token::FLAG_KEYWORD, + 'CLOSE' => Token::FLAG_KEYWORD, + 'CODE' => Token::FLAG_KEYWORD, + 'COLUMNS' => Token::FLAG_KEYWORD, + 'COLUMN_FORMAT' => Token::FLAG_KEYWORD, + 'COLUMN_NAME' => Token::FLAG_KEYWORD, + 'COMMENT' => Token::FLAG_KEYWORD, + 'COMMIT' => Token::FLAG_KEYWORD, + 'COMMITTED' => Token::FLAG_KEYWORD, + 'COMPACT' => Token::FLAG_KEYWORD, + 'COMPLETION' => Token::FLAG_KEYWORD, + 'COMPRESSED' => Token::FLAG_KEYWORD, + 'COMPRESSION' => Token::FLAG_KEYWORD, + 'CONCURRENT' => Token::FLAG_KEYWORD, + 'CONNECTION' => Token::FLAG_KEYWORD, + 'CONSISTENT' => Token::FLAG_KEYWORD, + 'CONSTRAINT_CATALOG' => Token::FLAG_KEYWORD, + 'CONSTRAINT_NAME' => Token::FLAG_KEYWORD, + 'CONSTRAINT_SCHEMA' => Token::FLAG_KEYWORD, + 'CONTEXT' => Token::FLAG_KEYWORD, + 'CPU' => Token::FLAG_KEYWORD, + 'CUBE' => Token::FLAG_KEYWORD, + 'CURRENT' => Token::FLAG_KEYWORD, + 'CURSOR_NAME' => Token::FLAG_KEYWORD, + 'DATA' => Token::FLAG_KEYWORD, + 'DATAFILE' => Token::FLAG_KEYWORD, + 'DEALLOCATE' => Token::FLAG_KEYWORD, + 'DEFAULT_AUTH' => Token::FLAG_KEYWORD, + 'DEFINER' => Token::FLAG_KEYWORD, + 'DELAY_KEY_WRITE' => Token::FLAG_KEYWORD, + 'DES_KEY_FILE' => Token::FLAG_KEYWORD, + 'DIAGNOSTICS' => Token::FLAG_KEYWORD, + 'DIRECTORY' => Token::FLAG_KEYWORD, + 'DISABLE' => Token::FLAG_KEYWORD, + 'DISCARD' => Token::FLAG_KEYWORD, + 'DISK' => Token::FLAG_KEYWORD, + 'DO' => Token::FLAG_KEYWORD, + 'DUMPFILE' => Token::FLAG_KEYWORD, + 'DUPLICATE' => Token::FLAG_KEYWORD, + 'DYNAMIC' => Token::FLAG_KEYWORD, + 'ENABLE' => Token::FLAG_KEYWORD, + 'END' => Token::FLAG_KEYWORD, + 'ENDS' => Token::FLAG_KEYWORD, + 'ENGINE' => Token::FLAG_KEYWORD, + 'ENGINES' => Token::FLAG_KEYWORD, + 'ERROR' => Token::FLAG_KEYWORD, + 'ERRORS' => Token::FLAG_KEYWORD, + 'ESCAPE' => Token::FLAG_KEYWORD, + 'EVENT' => Token::FLAG_KEYWORD, + 'EVENTS' => Token::FLAG_KEYWORD, + 'EVERY' => Token::FLAG_KEYWORD, + 'EXCHANGE' => Token::FLAG_KEYWORD, + 'EXECUTE' => Token::FLAG_KEYWORD, + 'EXPANSION' => Token::FLAG_KEYWORD, + 'EXPIRE' => Token::FLAG_KEYWORD, + 'EXPORT' => Token::FLAG_KEYWORD, + 'EXTENDED' => Token::FLAG_KEYWORD, + 'EXTENT_SIZE' => Token::FLAG_KEYWORD, + 'FAST' => Token::FLAG_KEYWORD, + 'FAULTS' => Token::FLAG_KEYWORD, + 'FIELDS' => Token::FLAG_KEYWORD, + 'FILE' => Token::FLAG_KEYWORD, + 'FILE_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'FILTER' => Token::FLAG_KEYWORD, + 'FIRST' => Token::FLAG_KEYWORD, + 'FLUSH' => Token::FLAG_KEYWORD, + 'FOLLOWS' => Token::FLAG_KEYWORD, + 'FOUND' => Token::FLAG_KEYWORD, + 'FULL' => Token::FLAG_KEYWORD, + 'FUNCTION' => Token::FLAG_KEYWORD, + 'GENERAL' => Token::FLAG_KEYWORD, + 'GLOBAL' => Token::FLAG_KEYWORD, + 'GRANTS' => Token::FLAG_KEYWORD, + 'GROUP_REPLICATION' => Token::FLAG_KEYWORD, + 'GTIDS' => Token::FLAG_KEYWORD, + 'HANDLER' => Token::FLAG_KEYWORD, + 'HASH' => Token::FLAG_KEYWORD, + 'HELP' => Token::FLAG_KEYWORD, + 'HOST' => Token::FLAG_KEYWORD, + 'HOSTS' => Token::FLAG_KEYWORD, + 'IDENTIFIED' => Token::FLAG_KEYWORD, + 'IGNORE_SERVER_IDS' => Token::FLAG_KEYWORD, + 'IMPORT' => Token::FLAG_KEYWORD, + 'INDEXES' => Token::FLAG_KEYWORD, + 'INITIAL_SIZE' => Token::FLAG_KEYWORD, + 'INSERT_METHOD' => Token::FLAG_KEYWORD, + 'INSTALL' => Token::FLAG_KEYWORD, + 'INVISIBLE' => Token::FLAG_KEYWORD, + 'INVOKER' => Token::FLAG_KEYWORD, + 'IO' => Token::FLAG_KEYWORD, + 'IO_THREAD' => Token::FLAG_KEYWORD, + 'IPC' => Token::FLAG_KEYWORD, + 'ISOLATION' => Token::FLAG_KEYWORD, + 'ISSUER' => Token::FLAG_KEYWORD, + 'KEY_BLOCK_SIZE' => Token::FLAG_KEYWORD, + 'LANGUAGE' => Token::FLAG_KEYWORD, + 'LAST' => Token::FLAG_KEYWORD, + 'LEAVES' => Token::FLAG_KEYWORD, + 'LESS' => Token::FLAG_KEYWORD, + 'LEVEL' => Token::FLAG_KEYWORD, + 'LIST' => Token::FLAG_KEYWORD, + 'LOCAL' => Token::FLAG_KEYWORD, + 'LOCKS' => Token::FLAG_KEYWORD, + 'LOGFILE' => Token::FLAG_KEYWORD, + 'LOGS' => Token::FLAG_KEYWORD, + 'MASTER' => Token::FLAG_KEYWORD, + 'MASTER_SERVER_ID' => Token::FLAG_KEYWORD, + 'MAX_CONNECTIONS_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_QUERIES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_ROWS' => Token::FLAG_KEYWORD, + 'MAX_SIZE' => Token::FLAG_KEYWORD, + 'MAX_STATEMENT_TIME' => Token::FLAG_KEYWORD, + 'MAX_UPDATES_PER_HOUR' => Token::FLAG_KEYWORD, + 'MAX_USER_CONNECTIONS' => Token::FLAG_KEYWORD, + 'MEDIUM' => Token::FLAG_KEYWORD, + 'MEMORY' => Token::FLAG_KEYWORD, + 'MERGE' => Token::FLAG_KEYWORD, + 'MESSAGE_TEXT' => Token::FLAG_KEYWORD, + 'MIGRATE' => Token::FLAG_KEYWORD, + 'MIN_ROWS' => Token::FLAG_KEYWORD, + 'MODE' => Token::FLAG_KEYWORD, + 'MODIFY' => Token::FLAG_KEYWORD, + 'MUTEX' => Token::FLAG_KEYWORD, + 'MYSQL_ERRNO' => Token::FLAG_KEYWORD, + 'NAME' => Token::FLAG_KEYWORD, + 'NAMES' => Token::FLAG_KEYWORD, + 'NATIONAL' => Token::FLAG_KEYWORD, + 'NCHAR' => Token::FLAG_KEYWORD, + 'NDB' => Token::FLAG_KEYWORD, + 'NDBCLUSTER' => Token::FLAG_KEYWORD, + 'NEVER' => Token::FLAG_KEYWORD, + 'NEW' => Token::FLAG_KEYWORD, + 'NEXT' => Token::FLAG_KEYWORD, + 'NO' => Token::FLAG_KEYWORD, + 'NODEGROUP' => Token::FLAG_KEYWORD, + 'NONBLOCKING' => Token::FLAG_KEYWORD, + 'NONE' => Token::FLAG_KEYWORD, + 'NO_WAIT' => Token::FLAG_KEYWORD, + 'NUMBER' => Token::FLAG_KEYWORD, + 'NVARCHAR' => Token::FLAG_KEYWORD, + 'OFFSET' => Token::FLAG_KEYWORD, + 'ONE' => Token::FLAG_KEYWORD, + 'ONLY' => Token::FLAG_KEYWORD, + 'OPEN' => Token::FLAG_KEYWORD, + 'OPTIONS' => Token::FLAG_KEYWORD, + 'OWNER' => Token::FLAG_KEYWORD, + 'PACK_KEYS' => Token::FLAG_KEYWORD, + 'PAGE' => Token::FLAG_KEYWORD, + 'PARSER' => Token::FLAG_KEYWORD, + 'PARSE_GCOL_EXPR' => Token::FLAG_KEYWORD, + 'PARSE_TREE' => Token::FLAG_KEYWORD, + 'PARTIAL' => Token::FLAG_KEYWORD, + 'PARTITIONING' => Token::FLAG_KEYWORD, + 'PARTITIONS' => Token::FLAG_KEYWORD, + 'PERSIST' => Token::FLAG_KEYWORD, + 'PERSISTENT' => Token::FLAG_KEYWORD, + 'PERSIST_ONLY' => Token::FLAG_KEYWORD, + 'PHASE' => Token::FLAG_KEYWORD, + 'PLUGIN' => Token::FLAG_KEYWORD, + 'PLUGINS' => Token::FLAG_KEYWORD, + 'PLUGIN_DIR' => Token::FLAG_KEYWORD, + 'PORT' => Token::FLAG_KEYWORD, + 'PRECEDES' => Token::FLAG_KEYWORD, + 'PREPARE' => Token::FLAG_KEYWORD, + 'PRESERVE' => Token::FLAG_KEYWORD, + 'PREV' => Token::FLAG_KEYWORD, + 'PRIVILEGES' => Token::FLAG_KEYWORD, + 'PROCESSLIST' => Token::FLAG_KEYWORD, + 'PROFILE' => Token::FLAG_KEYWORD, + 'PROFILES' => Token::FLAG_KEYWORD, + 'PROXY' => Token::FLAG_KEYWORD, + 'QUERY' => Token::FLAG_KEYWORD, + 'QUICK' => Token::FLAG_KEYWORD, + 'READ_ONLY' => Token::FLAG_KEYWORD, + 'REBUILD' => Token::FLAG_KEYWORD, + 'RECOVER' => Token::FLAG_KEYWORD, + 'REDOFILE' => Token::FLAG_KEYWORD, + 'REDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'REDUNDANT' => Token::FLAG_KEYWORD, + 'RELAY' => Token::FLAG_KEYWORD, + 'RELAYLOG' => Token::FLAG_KEYWORD, + 'RELAY_LOG_FILE' => Token::FLAG_KEYWORD, + 'RELAY_LOG_POS' => Token::FLAG_KEYWORD, + 'RELAY_THREAD' => Token::FLAG_KEYWORD, + 'RELOAD' => Token::FLAG_KEYWORD, + 'REMOVE' => Token::FLAG_KEYWORD, + 'REORGANIZE' => Token::FLAG_KEYWORD, + 'REPAIR' => Token::FLAG_KEYWORD, + 'REPEATABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_REWRITE_DB' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_DO_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATE_WILD_IGNORE_TABLE' => Token::FLAG_KEYWORD, + 'REPLICATION' => Token::FLAG_KEYWORD, + 'RESET' => Token::FLAG_KEYWORD, + 'RESTORE' => Token::FLAG_KEYWORD, + 'RESUME' => Token::FLAG_KEYWORD, + 'RETURNED_SQLSTATE' => Token::FLAG_KEYWORD, + 'RETURNS' => Token::FLAG_KEYWORD, + 'ROLLBACK' => Token::FLAG_KEYWORD, + 'ROLLUP' => Token::FLAG_KEYWORD, + 'ROUTINE' => Token::FLAG_KEYWORD, + 'ROW' => Token::FLAG_KEYWORD, + 'ROWS' => Token::FLAG_KEYWORD, + 'ROW_FORMAT' => Token::FLAG_KEYWORD, + 'RTREE' => Token::FLAG_KEYWORD, + 'S3' => Token::FLAG_KEYWORD, + 'SAVEPOINT' => Token::FLAG_KEYWORD, + 'SCHEDULE' => Token::FLAG_KEYWORD, + 'SCHEMA_NAME' => Token::FLAG_KEYWORD, + 'SECURITY' => Token::FLAG_KEYWORD, + 'SERIALIZABLE' => Token::FLAG_KEYWORD, + 'SERVER' => Token::FLAG_KEYWORD, + 'SESSION' => Token::FLAG_KEYWORD, + 'SHARE' => Token::FLAG_KEYWORD, + 'SHUTDOWN' => Token::FLAG_KEYWORD, + 'SIGNED' => Token::FLAG_KEYWORD, + 'SIMPLE' => Token::FLAG_KEYWORD, + 'SLAVE' => Token::FLAG_KEYWORD, + 'SLOW' => Token::FLAG_KEYWORD, + 'SNAPSHOT' => Token::FLAG_KEYWORD, + 'SOCKET' => Token::FLAG_KEYWORD, + 'SOME' => Token::FLAG_KEYWORD, + 'SONAME' => Token::FLAG_KEYWORD, + 'SOUNDS' => Token::FLAG_KEYWORD, + 'SOURCE' => Token::FLAG_KEYWORD, + 'SQL_AFTER_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_AFTER_MTS_GAPS' => Token::FLAG_KEYWORD, + 'SQL_BEFORE_GTIDS' => Token::FLAG_KEYWORD, + 'SQL_BUFFER_RESULT' => Token::FLAG_KEYWORD, + 'SQL_CACHE' => Token::FLAG_KEYWORD, + 'SQL_NO_CACHE' => Token::FLAG_KEYWORD, + 'SQL_THREAD' => Token::FLAG_KEYWORD, + 'SQL_TSI_DAY' => Token::FLAG_KEYWORD, + 'SQL_TSI_HOUR' => Token::FLAG_KEYWORD, + 'SQL_TSI_MINUTE' => Token::FLAG_KEYWORD, + 'SQL_TSI_MONTH' => Token::FLAG_KEYWORD, + 'SQL_TSI_QUARTER' => Token::FLAG_KEYWORD, + 'SQL_TSI_SECOND' => Token::FLAG_KEYWORD, + 'SQL_TSI_WEEK' => Token::FLAG_KEYWORD, + 'SQL_TSI_YEAR' => Token::FLAG_KEYWORD, + 'STACKED' => Token::FLAG_KEYWORD, + 'START' => Token::FLAG_KEYWORD, + 'STARTS' => Token::FLAG_KEYWORD, + 'STATS_AUTO_RECALC' => Token::FLAG_KEYWORD, + 'STATS_PERSISTENT' => Token::FLAG_KEYWORD, + 'STATS_SAMPLE_PAGES' => Token::FLAG_KEYWORD, + 'STATUS' => Token::FLAG_KEYWORD, + 'STOP' => Token::FLAG_KEYWORD, + 'STORAGE' => Token::FLAG_KEYWORD, + 'STRING' => Token::FLAG_KEYWORD, + 'SUBCLASS_ORIGIN' => Token::FLAG_KEYWORD, + 'SUBJECT' => Token::FLAG_KEYWORD, + 'SUBPARTITION' => Token::FLAG_KEYWORD, + 'SUBPARTITIONS' => Token::FLAG_KEYWORD, + 'SUPER' => Token::FLAG_KEYWORD, + 'SUSPEND' => Token::FLAG_KEYWORD, + 'SWAPS' => Token::FLAG_KEYWORD, + 'SWITCHES' => Token::FLAG_KEYWORD, + 'TABLES' => Token::FLAG_KEYWORD, + 'TABLESPACE' => Token::FLAG_KEYWORD, + 'TABLE_CHECKSUM' => Token::FLAG_KEYWORD, + 'TABLE_NAME' => Token::FLAG_KEYWORD, + 'TEMPORARY' => Token::FLAG_KEYWORD, + 'TEMPTABLE' => Token::FLAG_KEYWORD, + 'THAN' => Token::FLAG_KEYWORD, + 'TRANSACTION' => Token::FLAG_KEYWORD, + 'TRIGGERS' => Token::FLAG_KEYWORD, + 'TYPE' => Token::FLAG_KEYWORD, + 'TYPES' => Token::FLAG_KEYWORD, + 'UNCOMMITTED' => Token::FLAG_KEYWORD, + 'UNDEFINED' => Token::FLAG_KEYWORD, + 'UNDOFILE' => Token::FLAG_KEYWORD, + 'UNDO_BUFFER_SIZE' => Token::FLAG_KEYWORD, + 'UNICODE' => Token::FLAG_KEYWORD, + 'UNINSTALL' => Token::FLAG_KEYWORD, + 'UNKNOWN' => Token::FLAG_KEYWORD, + 'UNTIL' => Token::FLAG_KEYWORD, + 'UPGRADE' => Token::FLAG_KEYWORD, + 'USER_RESOURCES' => Token::FLAG_KEYWORD, + 'USE_FRM' => Token::FLAG_KEYWORD, + 'VALIDATION' => Token::FLAG_KEYWORD, + 'VALUE' => Token::FLAG_KEYWORD, + 'VARIABLES' => Token::FLAG_KEYWORD, + 'VIEW' => Token::FLAG_KEYWORD, + 'WAIT' => Token::FLAG_KEYWORD, + 'WARNINGS' => Token::FLAG_KEYWORD, + 'WITHOUT' => Token::FLAG_KEYWORD, + 'WORK' => Token::FLAG_KEYWORD, + 'WRAPPER' => Token::FLAG_KEYWORD, + 'X509' => Token::FLAG_KEYWORD, + 'XA' => Token::FLAG_KEYWORD, + 'XID' => Token::FLAG_KEYWORD, + 'ACCESSIBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ALTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ANALYZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ASENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BEFORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BETWEEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BOTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASCADE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CHECK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'COLUMN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONDITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONSTRAINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CONTINUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CREATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CROSS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'CURSOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DATABASES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DAY_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DECLARE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELAYED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DESCRIBE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DETERMINISTIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DISTINCTROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DIV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DROP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'DUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EACH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ELSEIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ENCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ESCAPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'EXPLAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FALSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FETCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FORCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FOREIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'FROM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GENERATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GRANT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'GROUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HAVING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HIGH_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'HOUR_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IGNORE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INNER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INOUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INSENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'INTO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IO_BEFORE_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'IS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ITERATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'KILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEADING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LEAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LIMIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LINES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOOP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'LOW_PRIORITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MANUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MAXVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MINUTE_SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'MODIFIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NATURAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NO_WRITE_TO_BINLOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIMIZER_COSTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OPTIONALLY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ORDER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OUTFILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'OVER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PARALLEL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRECISION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PRIMARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PROCEDURE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'PURGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'QUALIFY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RANGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'READ_WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REFERENCES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REGEXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RENAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REQUIRE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RESTRICT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RETURN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'REVOKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'RLIKE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SCHEMAS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SECOND_MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SELECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SENSITIVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SEPARATOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SHOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SIGNAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SPECIFIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLEXCEPTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLSTATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQLWARNING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_BIG_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_CALC_FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SQL_SMALL_RESULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'SSL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STARTING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STORED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'STRAIGHT_JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TABLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TABLESAMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TERMINATED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'THEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRAILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRIGGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'TRUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNDO' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNLOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UNSIGNED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USAGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'WRITE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'YEAR_MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'ZEROFILL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'AND CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'AND NO CHAIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'COALESCE PARTITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CONTAINS SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'CROSS JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DATA DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARACTER SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DEFAULT COLLATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'DISABLE ON SLAVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ENCLOSED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ESCAPED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR EACH ROW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FOR UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'FULL OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GENERATED ALWAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'GROUP BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'IF NOT EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INDEX DIRECTORY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'INNER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LANGUAGE SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LESS THAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR HASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LINEAR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOAD DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'LOCK IN SHARE MODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'MODIFIES SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL LEFT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NATURAL RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO ACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO RELEASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NO SQL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'NOT NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION NOT PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON COMPLETION PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON DELETE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON SCHEDULE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ON UPDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'OR REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ORDER BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'PARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'READS SQL DATA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'RIGHT OUTER JOIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SELECT TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET NULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SET PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SQL SECURITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'START TRANSACTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'STARTING BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'SUBPARTITION BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'TERMINATED BY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION ALL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'UNION DISTINCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH CONSISTENT SNAPSHOT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH PARSER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'WITH ROLLUP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + 'ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BOOLEAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'DATETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'ENUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'FIXED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'GEOMETRY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'JSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTILINEPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'MULTISET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'SERIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'TEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'XML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE, + 'BIGINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DECIMAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'DOUBLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FLOAT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT3' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INT8' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'INTEGER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONGTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MEDIUMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'MIDDLEINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'NUMERIC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'REAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'SMALLINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYBLOB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'TINYTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, + 'BINARY VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'CHARACTER VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'LONG VARCHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_DATA_TYPE, + 'FULLTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_KEY, + 'FOREIGN KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'FULLTEXT KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'IDENTIFIED WITH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'INDEX KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ACOS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ADDTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AGAINST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ANY_VALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASCII' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ATAN2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'AVG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BENCHMARK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIN_TO_UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_AND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_OR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BIT_XOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEIL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CEILING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARACTER_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHARSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COALESCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COERCIBILITY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COLLATION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONCAT_WS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONNECTION_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT_TZ' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CRC32' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CURTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DATE_SUB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFMONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DAYOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DECODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DEGREES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_DECRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DES_ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ELT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCODE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENCRYPT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXPORT_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'EXTRACTVALUE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIELD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FIND_IN_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FLOOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FOUND_ROWS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_UNIXTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'FROM_VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GET_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GLENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GREATEST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GROUP_CONCAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBSET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'GTID_SUBTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'HOUR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IFNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET6_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_ATON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INET_NTOA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISNULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_FREE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_COMPAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV4_MAPPED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_IPV6' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_USED_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'IS_UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_APPEND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_ARRAY_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_CONTAINS_PATH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_DEPTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_EXTRACT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_KEYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_MERGE_PRESERVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_OBJECT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_PRETTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REMOVE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SEARCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_FREE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_STORAGE_SIZE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_TYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_UNQUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'JSON_VALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LAST_INSERT_ID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LEAST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOAD_FILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG10' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOG2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LOWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'LTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKEDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKETIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAKE_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MASTER_POS_WAIT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MAX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVEREDBY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRCOVERS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRDISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBREQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRINTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBROVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRTOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MBRWITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MD5' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MICROSECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MINUTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MONTHNAME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NAME_CONST' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NOW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NULLIF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OCTET_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OLD_PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PASSWORD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_ADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PERIOD_DIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'PI' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POSITION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POW' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'POWER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUARTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'QUOTE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RADIANS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RAND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RANDOM_BYTES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_ALL_LOCKS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RELEASE_LOCK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'REVERSE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROUND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ROW_COUNT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RPAD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'RTRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SECOND' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SEC_TO_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SESSION_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA1' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SHA2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SLEEP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SOUNDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SPACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SQRT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STDDEV_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STRCMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STRING_TO_VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'STR_TO_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_AREA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASBINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ASWKT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_BUFFER_STRATEGY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CENTROID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONTAINS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CONVEXHULL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_CROSSES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DIMENSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISJOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_DISTANCE_SPHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENDPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EQUALS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_EXTERIORRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMTXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMCOLLFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYCOLLECTIONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMETRYTYPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMGEOJSON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_GEOMFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERIORRINGN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_INTERSECTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISCLOSED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISEMPTY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISSIMPLE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_ISVALID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LATFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_LONGFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MAKEENVELOPE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MLINEFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MPOLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTILINESTRINGFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_MULTIPOLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMGEOMETRIES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMINTERIORRINGS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_NUMPOINTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_OVERLAPS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMGEOHASH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POINTN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMTEXT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_POLYGONFROMWKB' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SIMPLIFY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SRID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_STARTPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_SYMDIFFERENCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_UNION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_VALIDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'ST_Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBSTRING_INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUBTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SUM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSDATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'SYSTEM_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TAN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMEDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPADD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMPDIFF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_FORMAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TIME_TO_SEC' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TOUCHES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_BASE64' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_DAYS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_SECONDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TO_VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'TRUNCATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UCASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNCOMPRESSED_LENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNHEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UNIX_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPDATEXML' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UPPER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_SHORT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'UUID_TO_BIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VALIDATE_PASSWORD_STRENGTH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VARIANCE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_POP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VAR_SAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VECTOR_DIM' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VECTOR_TO_STRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'VERSION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_FOR_EXECUTED_GTID_SET' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKDAY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEEKOFYEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WEIGHT_STRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'WITHIN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'X' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'Y' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'YEARWEEK' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, + 'CONVERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'CURRENT_USER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DATABASE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'DEFAULT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'EXISTS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IF' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'INSERT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LEFT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'LOCALTIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MATCH' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'MOD' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPEAT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'REPLACE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'RIGHT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'SCHEMA' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'UTC_TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'VALUES' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_FUNCTION, + 'NOT IN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_FUNCTION, + 'DATE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'GEOMETRYCOLLECTION' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'LINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTILINESTRING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'MULTIPOLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POINT' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'POLYGON' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIME' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'TIMESTAMP' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'YEAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'BINARY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'CHAR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + 'INTERVAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE | Token::FLAG_KEYWORD_FUNCTION, + ]; +} diff --git a/src/Core.php b/src/Core.php deleted file mode 100644 index 6c8d22e16..000000000 --- a/src/Core.php +++ /dev/null @@ -1,53 +0,0 @@ -strict) { - throw $error; - } - - $this->errors[] = $error; - } -} diff --git a/src/Exceptions/LexerException.php b/src/Exceptions/LexerException.php index 498ce0e9e..3ad0328ef 100644 --- a/src/Exceptions/LexerException.php +++ b/src/Exceptions/LexerException.php @@ -13,17 +13,13 @@ class LexerException extends Exception { /** * The character that produced this error. - * - * @var string */ - public $ch; + public string $ch; /** * The index of the character that produced this error. - * - * @var int */ - public $pos; + public int $pos; /** * @param string $msg the message of this exception @@ -31,9 +27,10 @@ class LexerException extends Exception * @param int $pos the position of the character * @param int $code the code of this error */ - public function __construct($msg = '', $ch = '', $pos = 0, $code = 0) + public function __construct(string $msg = '', string $ch = '', int $pos = 0, int $code = 0) { parent::__construct($msg, $code); + $this->ch = $ch; $this->pos = $pos; } diff --git a/src/Exceptions/LoaderException.php b/src/Exceptions/LoaderException.php deleted file mode 100644 index 58a53fcde..000000000 --- a/src/Exceptions/LoaderException.php +++ /dev/null @@ -1,31 +0,0 @@ -name = $name; - } -} diff --git a/src/Exceptions/ParserException.php b/src/Exceptions/ParserException.php index 8e2892898..bad071397 100644 --- a/src/Exceptions/ParserException.php +++ b/src/Exceptions/ParserException.php @@ -14,19 +14,18 @@ class ParserException extends Exception { /** * The token that produced this error. - * - * @var Token|null */ - public $token; + public Token|null $token; /** * @param string $msg the message of this exception * @param Token|null $token the token that produced this exception * @param int $code the code of this error */ - public function __construct($msg = '', ?Token $token = null, $code = 0) + public function __construct(string $msg, Token|null $token, int $code = 0) { parent::__construct($msg, $code); + $this->token = $token; } } diff --git a/src/Lexer.php b/src/Lexer.php index 0e34bc383..0c152759d 100644 --- a/src/Lexer.php +++ b/src/Lexer.php @@ -4,10 +4,9 @@ namespace PhpMyAdmin\SqlParser; +use Exception; use PhpMyAdmin\SqlParser\Exceptions\LexerException; -use function define; -use function defined; use function in_array; use function mb_strlen; use function sprintf; @@ -15,21 +14,6 @@ use function strlen; use function substr; -if (! defined('USE_UTF_STRINGS')) { - // NOTE: In previous versions of PHP (5.5 and older) the default - // internal encoding is "ISO-8859-1". - // All `mb_` functions must specify the correct encoding, which is - // 'UTF-8' in order to work properly. - - /* - * Forces usage of `UtfString` if the string is multibyte. - * `UtfString` may be slower, but it gives better results. - * - * @var bool - */ - define('USE_UTF_STRINGS', true); -} - /** * Defines the lexer of the library. * @@ -43,58 +27,29 @@ * * @see Context */ -class Lexer extends Core +class Lexer { /** - * A list of methods that are used in lexing the SQL query. - * - * @var string[] + * Whether errors should throw exceptions or just be stored. */ - public static $PARSER_METHODS = [ - // It is best to put the parsers in order of their complexity - // (ascending) and their occurrence rate (descending). - // - // Conflicts: - // - // 1. `parseDelimiter`, `parseUnknown`, `parseKeyword`, `parseNumber` - // They fight over delimiter. The delimiter may be a keyword, a - // number or almost any character which makes the delimiter one of - // the first tokens that must be parsed. - // - // 1. `parseNumber` and `parseOperator` - // They fight over `+` and `-`. - // - // 2. `parseComment` and `parseOperator` - // They fight over `/` (as in ```/*comment*/``` or ```a / b```) - // - // 3. `parseBool` and `parseKeyword` - // They fight over `TRUE` and `FALSE`. - // - // 4. `parseKeyword` and `parseUnknown` - // They fight over words. `parseUnknown` does not know about - // keywords. - - 'parseDelimiter', - 'parseWhitespace', - 'parseNumber', - 'parseComment', - 'parseOperator', - 'parseBool', - 'parseString', - 'parseSymbol', - 'parseKeyword', - 'parseLabel', - 'parseUnknown', - ]; + private bool $strict = false; + /** + * List of errors that occurred during lexing. + * + * Usually, the lexing does not stop once an error occurred because that + * error might be false positive or a partial result (even a bad one) + * might be needed. + * + * @var Exception[] + */ + public array $errors = []; /** * A list of keywords that indicate that the function keyword * is not used as a function - * - * @var string[] */ - public $KEYWORD_NAME_INDICATORS = [ + private const KEYWORD_NAME_INDICATORS = [ 'FROM', 'SET', 'WHERE', @@ -103,59 +58,45 @@ class Lexer extends Core /** * A list of operators that indicate that the function keyword * is not used as a function - * - * @var string[] */ - public $OPERATOR_NAME_INDICATORS = [ + private const OPERATOR_NAME_INDICATORS = [ ',', '.', ]; /** * The string to be parsed. - * - * @var string|UtfString */ - public $str = ''; + public string|UtfString $str = ''; /** * The length of `$str`. * * By storing its length, a lot of time is saved, because parsing methods * would call `strlen` everytime. - * - * @var int */ - public $len = 0; + public int $len = 0; /** * The index of the last parsed character. - * - * @var int */ - public $last = 0; + public int $last = 0; /** * Tokens extracted from given strings. - * - * @var TokensList */ - public $list; + public TokensList $list; /** * The default delimiter. This is used, by default, in all new instances. - * - * @var string */ - public static $DEFAULT_DELIMITER = ';'; + public static string $defaultDelimiter = ';'; /** * Statements delimiter. * This may change during lexing. - * - * @var string */ - public $delimiter; + public string $delimiter; /** * The length of the delimiter. @@ -163,43 +104,27 @@ class Lexer extends Core * Because `parseDelimiter` can be called a lot, it would perform a lot of * calls to `strlen`, which might affect performance when the delimiter is * big. - * - * @var int */ - public $delimiterLen; + public int $delimiterLen; /** - * Gets the tokens list parsed by a new instance of a lexer. - * * @param string|UtfString $str the query to be lexed * @param bool $strict whether strict mode should be * enabled or not * @param string $delimiter the delimiter to be used - * - * @return TokensList */ - public static function getTokens($str, $strict = false, $delimiter = null) + public function __construct(string|UtfString $str, bool $strict = false, string|null $delimiter = null) { - $lexer = new self($str, $strict, $delimiter); - - return $lexer->list; - } + if (Context::$keywords === []) { + Context::load(); + } - /** - * @param string|UtfString $str the query to be lexed - * @param bool $strict whether strict mode should be - * enabled or not - * @param string $delimiter the delimiter to be used - */ - public function __construct($str, $strict = false, $delimiter = null) - { // `strlen` is used instead of `mb_strlen` because the lexer needs to // parse each byte of the input. $len = $str instanceof UtfString ? $str->length() : strlen($str); - // For multi-byte strings, a new instance of `UtfString` is - // initialized (only if `UtfString` usage is forced. - if (! $str instanceof UtfString && USE_UTF_STRINGS && $len !== mb_strlen($str, 'UTF-8')) { + // For multi-byte strings, a new instance of `UtfString` is initialized. + if (! $str instanceof UtfString && $len !== mb_strlen($str, 'UTF-8')) { $str = new UtfString($str); } @@ -209,7 +134,7 @@ public function __construct($str, $strict = false, $delimiter = null) $this->strict = $strict; // Setting the delimiter. - $this->setDelimiter(! empty($delimiter) ? $delimiter : static::$DEFAULT_DELIMITER); + $this->setDelimiter(! empty($delimiter) ? $delimiter : static::$defaultDelimiter); $this->lex(); } @@ -218,10 +143,8 @@ public function __construct($str, $strict = false, $delimiter = null) * Sets the delimiter. * * @param string $delimiter the new delimiter - * - * @return void */ - public function setDelimiter($delimiter) + public function setDelimiter(string $delimiter): void { $this->delimiter = $delimiter; $this->delimiterLen = strlen($delimiter); @@ -229,10 +152,8 @@ public function setDelimiter($delimiter) /** * Parses the string and extracts lexemes. - * - * @return void */ - public function lex() + public function lex(): void { // TODO: Sometimes, static::parse* functions make unnecessary calls to // is* functions. For a better performance, some rules can be deduced @@ -247,26 +168,11 @@ public function lex() /** * Last processed token. - * - * @var Token */ $lastToken = null; for ($this->last = 0, $lastIdx = 0; $this->last < $this->len; $lastIdx = ++$this->last) { - /** - * The new token. - * - * @var Token - */ - $token = null; - - foreach (static::$PARSER_METHODS as $method) { - $token = $this->$method(); - - if ($token) { - break; - } - } + $token = $this->parse(); if ($token === null) { // @assert($this->last === $lastIdx); @@ -274,31 +180,31 @@ public function lex() $this->error('Unexpected character.', $this->str[$this->last], $this->last); } elseif ( $lastToken !== null - && $token->type === Token::TYPE_SYMBOL + && $token->type === TokenType::Symbol && $token->flags & Token::FLAG_SYMBOL_VARIABLE && ( - $lastToken->type === Token::TYPE_STRING + $lastToken->type === TokenType::String || ( - $lastToken->type === Token::TYPE_SYMBOL + $lastToken->type === TokenType::Symbol && $lastToken->flags & Token::FLAG_SYMBOL_BACKTICK ) ) ) { // Handles ```... FROM 'user'@'%' ...```. $lastToken->token .= $token->token; - $lastToken->type = Token::TYPE_SYMBOL; + $lastToken->type = TokenType::Symbol; $lastToken->flags = Token::FLAG_SYMBOL_USER; $lastToken->value .= '@' . $token->value; continue; } elseif ( $lastToken !== null - && $token->type === Token::TYPE_KEYWORD - && $lastToken->type === Token::TYPE_OPERATOR + && $token->type === TokenType::Keyword + && $lastToken->type === TokenType::Operator && $lastToken->value === '.' ) { // Handles ```... tbl.FROM ...```. In this case, FROM is not // a reserved word. - $token->type = Token::TYPE_NONE; + $token->type = TokenType::None; $token->flags = 0; $token->value = $token->token; } @@ -308,7 +214,7 @@ public function lex() $list->tokens[$list->count++] = $token; // Handling delimiters. - if ($token->type === Token::TYPE_NONE && $token->value === 'DELIMITER') { + if ($token->type === TokenType::None && $token->value === 'DELIMITER') { if ($this->last + 1 >= $this->len) { $this->error('Expected whitespace(s) before delimiter.', '', $this->last + 1); continue; @@ -333,7 +239,7 @@ public function lex() $pos = $this->last + 1; // Parsing the delimiter. - $this->delimiter = null; + $this->delimiter = ''; $delimiterLen = 0; while ( ++$this->last < $this->len @@ -344,7 +250,7 @@ public function lex() ++$delimiterLen; } - if (empty($this->delimiter)) { + if ($this->delimiter === '') { $this->error('Expected delimiter.', '', $this->last); $this->delimiter = ';'; } @@ -353,7 +259,7 @@ public function lex() // Saving the delimiter and its token. $this->delimiterLen = strlen($this->delimiter); - $token = new Token($this->delimiter, Token::TYPE_DELIMITER); + $token = new Token($this->delimiter, TokenType::Delimiter); $token->position = $pos; $list->tokens[$list->count++] = $token; } @@ -362,7 +268,7 @@ public function lex() } // Adding a final delimiter to mark the ending. - $list->tokens[$list->count++] = new Token(null, Token::TYPE_DELIMITER); + $list->tokens[$list->count++] = new Token('', TokenType::Delimiter); // Saving the tokens list. $this->list = $list; @@ -387,7 +293,7 @@ public function lex() private function solveAmbiguityOnStarOperator(): void { $iBak = $this->list->idx; - while (($starToken = $this->list->getNextOfTypeAndValue(Token::TYPE_OPERATOR, '*')) !== null) { + while (($starToken = $this->list->getNextOfTypeAndValue(TokenType::Operator, '*')) !== null) { // getNext() already gets rid of whitespaces and comments. $next = $this->list->getNext(); @@ -396,8 +302,8 @@ private function solveAmbiguityOnStarOperator(): void } if ( - ($next->type !== Token::TYPE_KEYWORD || ! in_array($next->value, ['FROM', 'USING'], true)) - && ($next->type !== Token::TYPE_OPERATOR || ! in_array($next->value, [',', ')'], true)) + ($next->type !== TokenType::Keyword || ! in_array($next->value, ['FROM', 'USING'], true)) + && ($next->type !== TokenType::Operator || ! in_array($next->value, [',', ')'], true)) ) { continue; } @@ -430,23 +336,23 @@ private function solveAmbiguityOnStarOperator(): void private function solveAmbiguityOnFunctionKeywords(): void { $iBak = $this->list->idx; - $keywordFunction = Token::TYPE_KEYWORD | Token::FLAG_KEYWORD_FUNCTION; - while (($keywordToken = $this->list->getNextOfTypeAndFlag(Token::TYPE_KEYWORD, $keywordFunction)) !== null) { + $keywordFunction = TokenType::Keyword->value | Token::FLAG_KEYWORD_FUNCTION; + while (($keywordToken = $this->list->getNextOfTypeAndFlag(TokenType::Keyword, $keywordFunction)) !== null) { $next = $this->list->getNext(); if ( - ($next->type !== Token::TYPE_KEYWORD - || ! in_array($next->value, $this->KEYWORD_NAME_INDICATORS, true) + ($next->type !== TokenType::Keyword + || ! in_array($next->value, self::KEYWORD_NAME_INDICATORS, true) ) - && ($next->type !== Token::TYPE_OPERATOR - || ! in_array($next->value, $this->OPERATOR_NAME_INDICATORS, true) + && ($next->type !== TokenType::Operator + || ! in_array($next->value, self::OPERATOR_NAME_INDICATORS, true) ) - && ($next->value !== null) + && ($next->value !== '') ) { continue; } - $keywordToken->type = Token::TYPE_NONE; - $keywordToken->flags = Token::TYPE_NONE; + $keywordToken->type = TokenType::None; + $keywordToken->flags = Token::FLAG_NONE; $keywordToken->keyword = $keywordToken->value; } @@ -461,34 +367,33 @@ private function solveAmbiguityOnFunctionKeywords(): void * @param int $pos the position of the character * @param int $code the code of the error * - * @return void - * * @throws LexerException throws the exception, if strict mode is enabled. */ - public function error($msg, $str = '', $pos = 0, $code = 0) + public function error(string $msg, string $str = '', int $pos = 0, int $code = 0): void { $error = new LexerException( Translator::gettext($msg), $str, $pos, - $code + $code, ); - parent::error($error); + + if ($this->strict) { + throw $error; + } + + $this->errors[] = $error; } /** * Parses a keyword. - * - * @return Token|null */ - public function parseKeyword() + public function parseKeyword(): Token|null { $token = ''; /** * Value to be returned. - * - * @var Token */ $ret = null; @@ -499,8 +404,6 @@ public function parseKeyword() /** * Whether last parsed character is a whitespace. - * - * @var bool */ $lastSpace = false; @@ -525,7 +428,7 @@ public function parseKeyword() continue; } - $ret = new Token($token, Token::TYPE_KEYWORD, $flags); + $ret = new Token($token, TokenType::Keyword, $flags); $iEnd = $this->last; // We don't break so we find longest keyword. @@ -540,17 +443,13 @@ public function parseKeyword() /** * Parses a label. - * - * @return Token|null */ - public function parseLabel() + public function parseLabel(): Token|null { $token = ''; /** * Value to be returned. - * - * @var Token */ $ret = null; @@ -562,7 +461,7 @@ public function parseLabel() if ($this->str[$this->last] === ':' && $j > 1) { // End of label $token .= $this->str[$this->last]; - $ret = new Token($token, Token::TYPE_LABEL); + $ret = new Token($token, TokenType::Label); $iEnd = $this->last; break; } @@ -586,17 +485,13 @@ public function parseLabel() /** * Parses an operator. - * - * @return Token|null */ - public function parseOperator() + public function parseOperator(): Token|null { $token = ''; /** * Value to be returned. - * - * @var Token */ $ret = null; @@ -613,7 +508,7 @@ public function parseOperator() continue; } - $ret = new Token($token, Token::TYPE_OPERATOR, $flags); + $ret = new Token($token, TokenType::Operator, $flags); $iEnd = $this->last; } @@ -624,10 +519,8 @@ public function parseOperator() /** * Parses a whitespace. - * - * @return Token|null */ - public function parseWhitespace() + public function parseWhitespace(): Token|null { $token = $this->str[$this->last]; @@ -641,21 +534,19 @@ public function parseWhitespace() --$this->last; - return new Token($token, Token::TYPE_WHITESPACE); + return new Token($token, TokenType::Whitespace); } /** * Parses a comment. - * - * @return Token|null */ - public function parseComment() + public function parseComment(): Token|null { $iBak = $this->last; $token = $this->str[$this->last]; // Bash style comments. (#comment\n) - if (Context::isComment($token)) { + if (Context::isComment($token) !== null) { while (++$this->last < $this->len && $this->str[$this->last] !== "\n") { $token .= $this->str[$this->last]; } @@ -665,13 +556,13 @@ public function parseComment() --$this->last; } - return new Token($token, Token::TYPE_COMMENT, Token::FLAG_COMMENT_BASH); + return new Token($token, TokenType::Comment, Token::FLAG_COMMENT_BASH); } // C style comments. (/*comment*\/) if (++$this->last < $this->len) { $token .= $this->str[$this->last]; - if (Context::isComment($token)) { + if (Context::isComment($token) !== null) { // There might be a conflict with "*" operator here, when string is "*/*". // This can occurs in the following statements: // - "SELECT */* comment */ FROM ..." @@ -690,7 +581,7 @@ public function parseComment() // This comment already ended. It may be a part of a // previous MySQL specific command. if ($token === '*/') { - return new Token($token, Token::TYPE_COMMENT, $flags); + return new Token($token, TokenType::Comment, $flags); } // Checking if this is a MySQL-specific command. @@ -710,7 +601,7 @@ public function parseComment() // We split this comment and parse only its beginning // here. - return new Token($token, Token::TYPE_COMMENT, $flags); + return new Token($token, TokenType::Comment, $flags); } // Parsing the comment. @@ -729,7 +620,7 @@ public function parseComment() $token .= $this->str[$this->last]; } - return new Token($token, Token::TYPE_COMMENT, $flags); + return new Token($token, TokenType::Comment, $flags); } } @@ -742,7 +633,7 @@ public function parseComment() $end = true; } - if (Context::isComment($token, $end)) { + if (Context::isComment($token, $end) !== null) { // Checking if this comment did not end already (```--\n```). if ($this->str[$this->last] !== "\n") { while (++$this->last < $this->len && $this->str[$this->last] !== "\n") { @@ -755,7 +646,7 @@ public function parseComment() --$this->last; } - return new Token($token, Token::TYPE_COMMENT, Token::FLAG_COMMENT_SQL); + return new Token($token, TokenType::Comment, Token::FLAG_COMMENT_SQL); } $this->last = $iBak; @@ -765,10 +656,8 @@ public function parseComment() /** * Parses a boolean. - * - * @return Token|null */ - public function parseBool() + public function parseBool(): Token|null { if ($this->last + 3 >= $this->len) { // At least `min(strlen('TRUE'), strlen('FALSE'))` characters are @@ -781,13 +670,13 @@ public function parseBool() . $this->str[++$this->last] . $this->str[++$this->last]; // _TRUE_ or _FALS_e if (Context::isBool($token)) { - return new Token($token, Token::TYPE_BOOL); + return new Token($token, TokenType::Bool); } if (++$this->last < $this->len) { $token .= $this->str[$this->last]; // fals_E_ if (Context::isBool($token)) { - return new Token($token, Token::TYPE_BOOL, 1); + return new Token($token, TokenType::Bool, 1); } } @@ -798,10 +687,8 @@ public function parseBool() /** * Parses a number. - * - * @return Token|null */ - public function parseNumber() + public function parseNumber(): Token|null { // A rudimentary state machine is being used to parse numbers due to // the various forms of their notation. @@ -964,7 +851,7 @@ public function parseNumber() if ($state === 2 || $state === 3 || ($token !== '.' && $state === 4) || $state === 6 || $state === 9) { --$this->last; - return new Token($token, Token::TYPE_NUMBER, $flags); + return new Token($token, TokenType::Number, $flags); } $this->last = $iBak; @@ -977,16 +864,14 @@ public function parseNumber() * * @param string $quote additional starting symbol * - * @return Token|null - * * @throws LexerException */ - public function parseString($quote = '') + public function parseString(string $quote = ''): Token|null { $token = $this->str[$this->last]; $flags = Context::isString($token); - if (! $flags && $token !== $quote) { + if ($flags === null && $token !== $quote) { return null; } @@ -1014,31 +899,29 @@ public function parseString($quote = '') $this->error( sprintf( Translator::gettext('Ending quote %1$s was expected.'), - $quote + $quote, ), '', - $this->last + $this->last, ); } else { $token .= $this->str[$this->last]; } - return new Token($token, Token::TYPE_STRING, $flags); + return new Token($token, TokenType::String, $flags ?? Token::FLAG_NONE); } /** * Parses a symbol. * - * @return Token|null - * * @throws LexerException */ - public function parseSymbol() + public function parseSymbol(): Token|null { $token = $this->str[$this->last]; $flags = Context::isSymbol($token); - if (! $flags) { + if ($flags === null) { return null; } @@ -1074,15 +957,13 @@ public function parseSymbol() $token .= $str->token; } - return new Token($token, Token::TYPE_SYMBOL, $flags); + return new Token($token, TokenType::Symbol, $flags); } /** * Parses unknown parts of the query. - * - * @return Token|null */ - public function parseUnknown() + public function parseUnknown(): Token|null { $token = $this->str[$this->last]; if (Context::isSeparator($token)) { @@ -1107,10 +988,8 @@ public function parseUnknown() /** * Parses the delimiter of the query. - * - * @return Token|null */ - public function parseDelimiter() + public function parseDelimiter(): Token|null { $idx = 0; @@ -1124,6 +1003,44 @@ public function parseDelimiter() $this->last += $this->delimiterLen - 1; - return new Token($this->delimiter, Token::TYPE_DELIMITER); + return new Token($this->delimiter, TokenType::Delimiter); + } + + private function parse(): Token|null + { + // It is best to put the parsers in order of their complexity + // (ascending) and their occurrence rate (descending). + // + // Conflicts: + // + // 1. `parseDelimiter`, `parseUnknown`, `parseKeyword`, `parseNumber` + // They fight over delimiter. The delimiter may be a keyword, a + // number or almost any character which makes the delimiter one of + // the first tokens that must be parsed. + // + // 1. `parseNumber` and `parseOperator` + // They fight over `+` and `-`. + // + // 2. `parseComment` and `parseOperator` + // They fight over `/` (as in ```/*comment*/``` or ```a / b```) + // + // 3. `parseBool` and `parseKeyword` + // They fight over `TRUE` and `FALSE`. + // + // 4. `parseKeyword` and `parseUnknown` + // They fight over words. `parseUnknown` does not know about + // keywords. + + return $this->parseDelimiter() + ?? $this->parseWhitespace() + ?? $this->parseNumber() + ?? $this->parseComment() + ?? $this->parseOperator() + ?? $this->parseBool() + ?? $this->parseString() + ?? $this->parseSymbol() + ?? $this->parseKeyword() + ?? $this->parseLabel() + ?? $this->parseUnknown(); } } diff --git a/src/Parseable.php b/src/Parseable.php new file mode 100644 index 000000000..b42ebca08 --- /dev/null +++ b/src/Parseable.php @@ -0,0 +1,22 @@ + $options parameters for parsing + * + * @return Component|Component[]|null + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): Component|array|null; +} diff --git a/src/Parser.php b/src/Parser.php index 526461dcf..f1cbccabb 100644 --- a/src/Parser.php +++ b/src/Parser.php @@ -4,6 +4,7 @@ namespace PhpMyAdmin\SqlParser; +use Exception; use PhpMyAdmin\SqlParser\Exceptions\ParserException; use PhpMyAdmin\SqlParser\Statements\SelectStatement; use PhpMyAdmin\SqlParser\Statements\TransactionStatement; @@ -18,18 +19,34 @@ * * Takes multiple tokens (contained in a Lexer instance) as input and builds a parse tree. */ -class Parser extends Core +class Parser { + /** + * Whether errors should throw exceptions or just be stored. + */ + private bool $strict = false; + + /** + * List of errors that occurred during lexing. + * + * Usually, the lexing does not stop once an error occurred because that + * error might be false positive or a partial result (even a bad one) + * might be needed. + * + * @var Exception[] + */ + public array $errors = []; + /** * Array of classes that are used in parsing the SQL statements. * - * @var array + * @psalm-var array|''> */ - public static $STATEMENT_PARSERS = [ + public const STATEMENT_PARSERS = [ // MySQL Utility Statements - 'DESCRIBE' => 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement', - 'DESC' => 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement', - 'EXPLAIN' => 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement', + 'DESCRIBE' => Statements\ExplainStatement::class, + 'DESC' => Statements\ExplainStatement::class, + 'EXPLAIN' => Statements\ExplainStatement::class, 'FLUSH' => '', 'GRANT' => '', 'HELP' => '', @@ -39,40 +56,40 @@ class Parser extends Core // Table Maintenance Statements // https://dev.mysql.com/doc/refman/5.7/en/table-maintenance-sql.html - 'ANALYZE' => 'PhpMyAdmin\\SqlParser\\Statements\\AnalyzeStatement', - 'BACKUP' => 'PhpMyAdmin\\SqlParser\\Statements\\BackupStatement', - 'CHECK' => 'PhpMyAdmin\\SqlParser\\Statements\\CheckStatement', - 'CHECKSUM' => 'PhpMyAdmin\\SqlParser\\Statements\\ChecksumStatement', - 'KILL' => 'PhpMyAdmin\\SqlParser\\Statements\\KillStatement', - 'OPTIMIZE' => 'PhpMyAdmin\\SqlParser\\Statements\\OptimizeStatement', - 'REPAIR' => 'PhpMyAdmin\\SqlParser\\Statements\\RepairStatement', - 'RESTORE' => 'PhpMyAdmin\\SqlParser\\Statements\\RestoreStatement', + 'ANALYZE' => Statements\AnalyzeStatement::class, + 'BACKUP' => Statements\BackupStatement::class, + 'CHECK' => Statements\CheckStatement::class, + 'CHECKSUM' => Statements\ChecksumStatement::class, + 'KILL' => Statements\KillStatement::class, + 'OPTIMIZE' => Statements\OptimizeStatement::class, + 'REPAIR' => Statements\RepairStatement::class, + 'RESTORE' => Statements\RestoreStatement::class, // Database Administration Statements // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-server-administration.html - 'SET' => 'PhpMyAdmin\\SqlParser\\Statements\\SetStatement', - 'SHOW' => 'PhpMyAdmin\\SqlParser\\Statements\\ShowStatement', + 'SET' => Statements\SetStatement::class, + 'SHOW' => Statements\ShowStatement::class, // Data Definition Statements. // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-data-definition.html - 'ALTER' => 'PhpMyAdmin\\SqlParser\\Statements\\AlterStatement', - 'CREATE' => 'PhpMyAdmin\\SqlParser\\Statements\\CreateStatement', - 'DROP' => 'PhpMyAdmin\\SqlParser\\Statements\\DropStatement', - 'RENAME' => 'PhpMyAdmin\\SqlParser\\Statements\\RenameStatement', - 'TRUNCATE' => 'PhpMyAdmin\\SqlParser\\Statements\\TruncateStatement', + 'ALTER' => Statements\AlterStatement::class, + 'CREATE' => Statements\CreateStatement::class, + 'DROP' => Statements\DropStatement::class, + 'RENAME' => Statements\RenameStatement::class, + 'TRUNCATE' => Statements\TruncateStatement::class, // Data Manipulation Statements. // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-data-manipulation.html - 'CALL' => 'PhpMyAdmin\\SqlParser\\Statements\\CallStatement', - 'DELETE' => 'PhpMyAdmin\\SqlParser\\Statements\\DeleteStatement', + 'CALL' => Statements\CallStatement::class, + 'DELETE' => Statements\DeleteStatement::class, 'DO' => '', 'HANDLER' => '', - 'INSERT' => 'PhpMyAdmin\\SqlParser\\Statements\\InsertStatement', - 'LOAD DATA' => 'PhpMyAdmin\\SqlParser\\Statements\\LoadStatement', - 'REPLACE' => 'PhpMyAdmin\\SqlParser\\Statements\\ReplaceStatement', - 'SELECT' => 'PhpMyAdmin\\SqlParser\\Statements\\SelectStatement', - 'UPDATE' => 'PhpMyAdmin\\SqlParser\\Statements\\UpdateStatement', - 'WITH' => 'PhpMyAdmin\\SqlParser\\Statements\\WithStatement', + 'INSERT' => Statements\InsertStatement::class, + 'LOAD DATA' => Statements\LoadStatement::class, + 'REPLACE' => Statements\ReplaceStatement::class, + 'SELECT' => Statements\SelectStatement::class, + 'UPDATE' => Statements\UpdateStatement::class, + 'WITH' => Statements\WithStatement::class, // Prepared Statements. // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html @@ -82,290 +99,282 @@ class Parser extends Core // Transactional and Locking Statements // https://dev.mysql.com/doc/refman/5.7/en/commit.html - 'BEGIN' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', - 'COMMIT' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', - 'ROLLBACK' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', - 'START TRANSACTION' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', + 'BEGIN' => Statements\TransactionStatement::class, + 'COMMIT' => Statements\TransactionStatement::class, + 'ROLLBACK' => Statements\TransactionStatement::class, + 'START TRANSACTION' => Statements\TransactionStatement::class, - 'PURGE' => 'PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement', + 'PURGE' => Statements\PurgeStatement::class, // Lock statements // https://dev.mysql.com/doc/refman/5.7/en/lock-tables.html - 'LOCK' => 'PhpMyAdmin\\SqlParser\\Statements\\LockStatement', - 'UNLOCK' => 'PhpMyAdmin\\SqlParser\\Statements\\LockStatement', + 'LOCK' => Statements\LockStatement::class, + 'UNLOCK' => Statements\LockStatement::class, ]; /** * Array of classes that are used in parsing SQL components. - * - * @var array>> - * @psalm-var array}> */ - public static $KEYWORD_PARSERS = [ - // This is not a proper keyword and was added here to help the - // formatter. - 'PARTITION BY' => [], - 'SUBPARTITION BY' => [], - + public const KEYWORD_PARSERS = [ // This is not a proper keyword and was added here to help the // builder. '_OPTIONS' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\OptionsArray', + 'class' => Parsers\OptionsArrays::class, 'field' => 'options', ], '_END_OPTIONS' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\OptionsArray', - 'field' => 'end_options', + 'class' => Parsers\OptionsArrays::class, + 'field' => 'endOptions', ], '_GROUP_OPTIONS' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\OptionsArray', - 'field' => 'group_options', + 'class' => Parsers\OptionsArrays::class, + 'field' => 'groupOptions', ], 'INTERSECT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', + 'class' => Parsers\UnionKeywords::class, 'field' => 'union', ], 'EXCEPT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', + 'class' => Parsers\UnionKeywords::class, 'field' => 'union', ], 'UNION' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', + 'class' => Parsers\UnionKeywords::class, 'field' => 'union', ], 'UNION ALL' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', + 'class' => Parsers\UnionKeywords::class, 'field' => 'union', ], 'UNION DISTINCT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', + 'class' => Parsers\UnionKeywords::class, 'field' => 'union', ], // Actual clause parsers. 'ALTER' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression', + 'class' => Parsers\Expressions::class, 'field' => 'table', 'options' => ['parseField' => 'table'], ], 'ANALYZE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'BACKUP' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'CALL' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\FunctionCall', + 'class' => Parsers\FunctionCalls::class, 'field' => 'call', ], 'CHECK' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'CHECKSUM' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'CROSS JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'DROP' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'fields', 'options' => ['parseField' => 'table'], ], 'FORCE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint', - 'field' => 'index_hints', + 'class' => Parsers\IndexHints::class, + 'field' => 'indexHints', ], 'FROM' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'from', 'options' => ['field' => 'table'], ], 'GROUP BY' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\GroupKeyword', + 'class' => Parsers\GroupKeywords::class, 'field' => 'group', ], 'HAVING' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Condition', + 'class' => Parsers\Conditions::class, 'field' => 'having', ], 'IGNORE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint', - 'field' => 'index_hints', + 'class' => Parsers\IndexHints::class, + 'field' => 'indexHints', ], 'INTO' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IntoKeyword', + 'class' => Parsers\IntoKeywords::class, 'field' => 'into', ], 'JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'LEFT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'LEFT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'ON' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression', + 'class' => Parsers\Expressions::class, 'field' => 'table', 'options' => ['parseField' => 'table'], ], 'RIGHT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'RIGHT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'INNER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'FULL JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'FULL OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'NATURAL JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'NATURAL LEFT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'NATURAL RIGHT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'NATURAL LEFT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'NATURAL RIGHT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'STRAIGHT_JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', + 'class' => Parsers\JoinKeywords::class, 'field' => 'join', ], 'LIMIT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Limit', + 'class' => Parsers\Limits::class, 'field' => 'limit', ], 'OPTIMIZE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'ORDER BY' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\OrderKeyword', + 'class' => Parsers\OrderKeywords::class, 'field' => 'order', ], 'PARTITION' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ArrayObj', + 'class' => Parsers\ArrayObjs::class, 'field' => 'partition', ], 'PROCEDURE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\FunctionCall', + 'class' => Parsers\FunctionCalls::class, 'field' => 'procedure', ], 'RENAME' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\RenameOperation', + 'class' => Parsers\RenameOperations::class, 'field' => 'renames', ], 'REPAIR' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'RESTORE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'SET' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\SetOperation', + 'class' => Parsers\SetOperations::class, 'field' => 'set', ], 'SELECT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'expr', ], 'TRUNCATE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression', + 'class' => Parsers\Expressions::class, 'field' => 'table', 'options' => ['parseField' => 'table'], ], 'UPDATE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', + 'class' => Parsers\ExpressionArray::class, 'field' => 'tables', 'options' => ['parseField' => 'table'], ], 'USE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint', - 'field' => 'index_hints', + 'class' => Parsers\IndexHints::class, + 'field' => 'indexHints', ], 'VALUE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Array2d', + 'class' => Parsers\Array2d::class, 'field' => 'values', ], 'VALUES' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Array2d', + 'class' => Parsers\Array2d::class, 'field' => 'values', ], 'WHERE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Condition', + 'class' => Parsers\Conditions::class, 'field' => 'where', ], ]; /** * The list of tokens that are parsed. - * - * @var TokensList|null */ - public $list; + public TokensList|null $list = null; /** * List of statements parsed. * * @var Statement[] */ - public $statements = []; + public array $statements = []; /** * The number of opened brackets. - * - * @var int */ - public $brackets = 0; + public int $brackets = 0; /** * @param string|UtfString|TokensList|null $list the list of tokens to be parsed * @param bool $strict whether strict mode should be enabled or not */ - public function __construct($list = null, $strict = false) + public function __construct(string|UtfString|TokensList|null $list = null, bool $strict = false) { + if (Context::$keywords === []) { + Context::load(); + } + if (is_string($list) || ($list instanceof UtfString)) { $lexer = new Lexer($list, $strict); $this->list = $lexer->list; @@ -385,37 +394,27 @@ public function __construct($list = null, $strict = false) /** * Builds the parse trees. * - * @return void - * * @throws ParserException */ - public function parse() + public function parse(): void { /** * Last transaction. - * - * @var TransactionStatement */ $lastTransaction = null; /** * Last parsed statement. - * - * @var Statement */ $lastStatement = null; /** * Union's type or false for no union. - * - * @var bool|string */ $unionType = false; /** * The index of the last token from the last statement. - * - * @var int */ $prevLastIdx = -1; @@ -432,9 +431,9 @@ public function parse() // `DELIMITER` is not an actual statement and it requires // special handling. - if (($token->type === Token::TYPE_NONE) && (strtoupper($token->token) === 'DELIMITER')) { + if (($token->type === TokenType::None) && (strtoupper($token->token) === 'DELIMITER')) { // Skipping to the end of this statement. - $list->getNextOfType(Token::TYPE_DELIMITER); + $list->getNextOfType(TokenType::Delimiter); $prevLastIdx = $list->idx; continue; } @@ -447,12 +446,12 @@ public function parse() // Statements can start with keywords only. // Comments, whitespaces, etc. are ignored. - if ($token->type !== Token::TYPE_KEYWORD) { + if ($token->type !== TokenType::Keyword) { if ( - ($token->type !== Token::TYPE_COMMENT) - && ($token->type !== Token::TYPE_WHITESPACE) - && ($token->type !== Token::TYPE_OPERATOR) // `(` and `)` - && ($token->type !== Token::TYPE_DELIMITER) + ($token->type !== TokenType::Comment) + && ($token->type !== TokenType::Whitespace) + && ($token->type !== TokenType::Operator) // `(` and `)` + && ($token->type !== TokenType::Delimiter) ) { $this->error('Unexpected beginning of statement.', $token); } @@ -477,8 +476,8 @@ public function parse() if ($token->keyword === 'ANALYZE') { ++$list->idx; // Skip ANALYZE - $first = $list->getNextOfType(Token::TYPE_KEYWORD); - $second = $list->getNextOfType(Token::TYPE_KEYWORD); + $first = $list->getNextOfType(TokenType::Keyword); + $second = $list->getNextOfType(TokenType::Keyword); // ANALYZE keyword can be an indication of two cases: // 1 - ANALYZE TABLE statements, in both MariaDB and MySQL @@ -490,34 +489,28 @@ public function parse() } $list->idx = $lastIdx; - } else { + } elseif (empty(self::STATEMENT_PARSERS[$token->keyword])) { // Checking if it is a known statement that can be parsed. - if (empty(static::$STATEMENT_PARSERS[$token->keyword])) { - if (! isset(static::$STATEMENT_PARSERS[$token->keyword])) { - // A statement is considered recognized if the parser - // is aware that it is a statement, but it does not have - // a parser for it yet. - $this->error('Unrecognized statement type.', $token); - } - - // Skipping to the end of this statement. - $list->getNextOfType(Token::TYPE_DELIMITER); - $prevLastIdx = $list->idx; - continue; + if (! isset(self::STATEMENT_PARSERS[$token->keyword])) { + // A statement is considered recognized if the parser + // is aware that it is a statement, but it does not have + // a parser for it yet. + $this->error('Unrecognized statement type.', $token); } + + // Skipping to the end of this statement. + $list->getNextOfType(TokenType::Delimiter); + $prevLastIdx = $list->idx; + continue; } /** * The name of the class that is used for parsing. - * - * @var string */ - $class = static::$STATEMENT_PARSERS[$statementName ?? $token->keyword]; + $class = self::STATEMENT_PARSERS[$statementName ?? $token->keyword]; /** * Processed statement. - * - * @var Statement */ $statement = new $class($this, $this->list); @@ -619,17 +612,20 @@ public function parse() * @param Token $token the token that produced the error * @param int $code the code of the error * - * @return void - * * @throws ParserException throws the exception, if strict mode is enabled. */ - public function error($msg, ?Token $token = null, $code = 0) + public function error(string $msg, Token|null $token = null, int $code = 0): void { $error = new ParserException( Translator::gettext($msg), $token, - $code + $code, ); - parent::error($error); + + if ($this->strict) { + throw $error; + } + + $this->errors[] = $error; } } diff --git a/src/Parsers/AlterOperations.php b/src/Parsers/AlterOperations.php new file mode 100644 index 000000000..7083b1752 --- /dev/null +++ b/src/Parsers/AlterOperations.php @@ -0,0 +1,505 @@ + [ + 1, + 'var', + ], + 'CHARSET' => [ + 1, + 'var', + ], + 'DEFAULT CHARACTER SET' => [ + 1, + 'var', + ], + 'DEFAULT CHARSET' => [ + 1, + 'var', + ], + 'UPGRADE' => [ + 1, + 'var', + ], + 'COLLATE' => [ + 2, + 'var', + ], + 'DEFAULT COLLATE' => [ + 2, + 'var', + ], + ]; + + /** + * All table options. + */ + public const TABLE_OPTIONS = [ + 'ENGINE' => [ + 1, + 'var=', + ], + 'ALGORITHM' => [ + 1, + 'var=', + ], + 'AUTO_INCREMENT' => [ + 1, + 'var=', + ], + 'AVG_ROW_LENGTH' => [ + 1, + 'var', + ], + 'COALESCE PARTITION' => [ + 1, + 'var', + ], + 'LOCK' => [ + 1, + 'var=', + ], + 'MAX_ROWS' => [ + 1, + 'var', + ], + 'ROW_FORMAT' => [ + 1, + 'var', + ], + 'COMMENT' => [ + 1, + 'var', + ], + 'ADD' => 1, + 'ALTER' => 1, + 'ANALYZE' => 1, + 'CHANGE' => 1, + 'CHARSET' => 1, + 'CHECK' => 1, + 'CONVERT' => 1, + 'DEFAULT CHARSET' => 1, + 'DISABLE' => 1, + 'DISCARD' => 1, + 'DROP' => 1, + 'ENABLE' => 1, + 'IMPORT' => 1, + 'MODIFY' => 1, + 'OPTIMIZE' => 1, + 'ORDER' => 1, + 'REBUILD' => 1, + 'REMOVE' => 1, + 'RENAME' => 1, + 'REORGANIZE' => 1, + 'REPAIR' => 1, + 'UPGRADE' => 1, + + 'COLUMN' => 2, + 'CONSTRAINT' => 2, + 'DEFAULT' => 2, + 'BY' => 2, + 'FOREIGN' => 2, + 'FULLTEXT' => 2, + 'KEY' => [2, 'var'], + 'KEYS' => 2, + 'PARTITION' => 2, + 'PARTITION BY' => 2, + 'PARTITIONING' => 2, + 'PRIMARY KEY' => 2, + 'SPATIAL' => 2, + 'TABLESPACE' => 2, + 'INDEX' => [ + 2, + 'var', + ], + 'UNIQUE' => 2, + 'UNIQUE KEY' => 2, + + 'CHARACTER SET' => 3, + 'TO' => [ + 3, + 'var', + ], + ]; + + /** + * All user options. + */ + public const USER_OPTIONS = [ + 'ATTRIBUTE' => [ + 1, + 'var', + ], + 'COMMENT' => [ + 1, + 'var', + ], + 'REQUIRE' => [ + 1, + 'var', + ], + + 'IDENTIFIED VIA' => [ + 2, + 'var', + ], + 'IDENTIFIED WITH' => [ + 2, + 'var', + ], + 'PASSWORD' => [ + 2, + 'var', + ], + 'WITH' => [ + 2, + 'var', + ], + + 'BY' => [ + 4, + 'expr', + ], + + 'ACCOUNT' => 1, + 'DEFAULT' => 1, + + 'LOCK' => 2, + 'UNLOCK' => 2, + + 'IDENTIFIED' => 3, + ]; + + /** + * All view options. + */ + public const VIEW_OPTIONS = ['AS' => 1]; + + /** + * All event options. + */ + public const EVENT_OPTIONS = [ + 'ON SCHEDULE' => 1, + 'EVERY' => [ + 2, + 'expr', + ], + 'AT' => [ + 2, + 'expr', + ], + 'STARTS' => [ + 3, + 'expr', + ], + 'ENDS' => [ + 4, + 'expr', + ], + 'ON COMPLETION PRESERVE' => 5, + 'ON COMPLETION NOT PRESERVE' => 5, + 'RENAME' => 6, + 'TO' => [7, 'expr', ['parseField' => 'table', 'breakOnAlias' => true]], + 'ENABLE' => 8, + 'DISABLE' => 8, + 'DISABLE ON SLAVE' => 8, + 'COMMENT' => [ + 9, + 'var', + ], + 'DO' => 10, + ]; + + /** + * All routine (procedure or function) options. + */ + public const ROUTINE_OPTIONS = [ + 'COMMENT' => [1, 'var'], + 'LANGUAGE SQL' => 2, + 'CONTAINS SQL' => 3, + 'NO SQL' => 3, + 'READS SQL DATA' => 3, + 'MODIFIES SQL DATA' => 3, + 'SQL SECURITY' => 4, + 'DEFINER' => 5, + 'INVOKER' => 5, + ]; + + /** + * @param Parser $parser the parser that serves as context + * @param TokensList $list the list of tokens that are being parsed + * @param array $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): AlterOperation + { + $ret = new AlterOperation(); + + /** + * Counts brackets. + */ + $brackets = 0; + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ---------------------[ options ]---------------------> 1 + * + * 1 ----------------------[ field ]----------------------> 2 + * + * 1 -------------[ PARTITION / PARTITION BY ]------------> 3 + * + * 2 -------------------------[ , ]-----------------------> 0 + */ + $state = 0; + + /** + * partition state. + */ + $partitionState = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping comments. + if ($token->type === TokenType::Comment) { + continue; + } + + // Skipping whitespaces. + if ($token->type === TokenType::Whitespace) { + if ($state === 2) { + // When parsing the unknown part, the whitespaces are + // included to not break anything. + $ret->unknown[] = $token; + continue; + } + } + + if ($state === 0) { + $ret->options = OptionsArrays::parse($parser, $list, $options); + + // Not only when aliasing but also when parsing the body of an event, we just list the tokens of the + // body in the unknown tokens list, as they define their own statements. + if ($ret->options->has('AS') || $ret->options->has('DO')) { + for (; $list->idx < $list->count; ++$list->idx) { + if ($list->tokens[$list->idx]->type === TokenType::Delimiter) { + break; + } + + $ret->unknown[] = $list->tokens[$list->idx]; + } + + break; + } + + $state = 1; + if ($ret->options->has('PARTITION') || $token->value === 'PARTITION BY') { + $state = 3; + $list->getPrevious(); // in order to check whether it's partition or partition by. + } + } elseif ($state === 1) { + $ret->field = Expressions::parse( + $parser, + $list, + [ + 'breakOnAlias' => true, + 'parseField' => 'column', + ], + ); + if ($ret->field === null) { + // No field was read. We go back one token so the next + // iteration will parse the same token, but in state 2. + --$list->idx; + } + + // If the operation is a RENAME COLUMN, now we have detected the field to rename, we need to parse + // again the options to get the new name of the column. + if ($ret->options->has('RENAME') && $ret->options->has('COLUMN')) { + $nextOptions = OptionsArrays::parse($parser, $list, $options); + $ret->options->merge($nextOptions); + } + + $state = 2; + } elseif ($state === 2) { + if (is_string($token->value) || is_int($token->value)) { + $arrayKey = $token->value; + } else { + $arrayKey = $token->token; + } + + if ($token->type === TokenType::Operator) { + if ($token->value === '(') { + ++$brackets; + } elseif ($token->value === ')') { + --$brackets; + } elseif (($token->value === ',') && ($brackets === 0)) { + break; + } + } elseif (! self::checkIfTokenQuotedSymbol($token) && $token->type !== TokenType::String) { + if ( + isset(Parser::STATEMENT_PARSERS[$arrayKey]) + && Parser::STATEMENT_PARSERS[$arrayKey] !== '' + && ! in_array($arrayKey, ['ASC', 'DESC'], true) + ) { + $list->idx++; // Ignore the current token + $nextToken = $list->getNext(); + + if ($token->value === 'SET' && $nextToken !== null && $nextToken->value === '(') { + // To avoid adding the tokens between the SET() parentheses to the unknown tokens + $list->getNextOfTypeAndValue(TokenType::Operator, ')'); + } elseif ($token->value === 'SET' && $nextToken !== null && $nextToken->value === 'DEFAULT') { + // to avoid adding the `DEFAULT` token to the unknown tokens. + ++$list->idx; + } else { + // We have reached the end of ALTER operation and suddenly found + // a start to new statement, but have not found a delimiter between them + $parser->error( + 'A new statement was found, but no delimiter between it and the previous one.', + $token, + ); + break; + } + } elseif ( + (array_key_exists($arrayKey, self::DATABASE_OPTIONS) + || array_key_exists($arrayKey, self::TABLE_OPTIONS)) + && ! self::checkIfColumnDefinitionKeyword($arrayKey) + ) { + // This alter operation has finished, which means a comma + // was missing before start of new alter operation + $parser->error('Missing comma before start of a new alter operation.', $token); + break; + } + } + + $ret->unknown[] = $token; + } elseif ($state === 3) { + if ($partitionState === 0) { + $list->idx++; // Ignore the current token + $nextToken = $list->getNext(); + if ( + ($token->type === TokenType::Keyword) + && (($token->keyword === 'PARTITION BY') + || ($token->keyword === 'PARTITION' && $nextToken && $nextToken->value !== '(')) + ) { + $partitionState = 1; + } elseif (($token->type === TokenType::Keyword) && ($token->keyword === 'PARTITION')) { + $partitionState = 2; + } + + --$list->idx; // to decrease the idx by one, because the last getNext returned and increased it. + + // reverting the effect of the getNext + $list->getPrevious(); + $list->getPrevious(); + + ++$list->idx; // to index the idx by one, because the last getPrevious returned and decreased it. + } elseif ($partitionState === 1) { + // Fetch the next token in a way the current index is reset to manage whitespaces in "field". + $currIdx = $list->idx; + ++$list->idx; + $nextToken = $list->getNext(); + $list->idx = $currIdx; + // Building the expression used for partitioning. + if (empty($ret->field)) { + $ret->field = ''; + } + + if ( + $token->type === TokenType::Operator + && $token->value === '(' + && $nextToken + && $nextToken->keyword === 'PARTITION' + ) { + $partitionState = 2; + --$list->idx; // Current idx is on "(". We need a step back for ArrayObj::parse incoming. + } else { + $ret->field .= $token->type === TokenType::Whitespace ? ' ' : $token->token; + } + } elseif ($partitionState === 2) { + $ret->partitions = ArrayObjs::parse( + $parser, + $list, + ['type' => PartitionDefinitions::class], + ); + } + } + } + + if ($ret->options->isEmpty()) { + $parser->error('Unrecognized alter operation.', $list->tokens[$list->idx]); + } + + --$list->idx; + + return $ret; + } + + /** + * Check if token's value is one of the common keywords + * between column and table alteration + * + * @param string $tokenValue Value of current token + */ + private static function checkIfColumnDefinitionKeyword(string $tokenValue): bool + { + $commonOptions = [ + 'AUTO_INCREMENT', + 'COMMENT', + 'DEFAULT', + 'CHARACTER SET', + 'COLLATE', + 'PRIMARY', + 'UNIQUE', + 'PRIMARY KEY', + 'UNIQUE KEY', + ]; + + // Since these options can be used for + // both table as well as a specific column in the table + return in_array($tokenValue, $commonOptions); + } + + /** + * Check if token is symbol and quoted with backtick + * + * @param Token $token token to check + */ + private static function checkIfTokenQuotedSymbol(Token $token): bool + { + return $token->type === TokenType::Symbol && $token->flags === Token::FLAG_SYMBOL_BACKTICK; + } +} diff --git a/src/Components/Array2d.php b/src/Parsers/Array2d.php similarity index 73% rename from src/Components/Array2d.php rename to src/Parsers/Array2d.php index 90f9c84d0..6f79c29b2 100644 --- a/src/Components/Array2d.php +++ b/src/Parsers/Array2d.php @@ -2,12 +2,14 @@ declare(strict_types=1); -namespace PhpMyAdmin\SqlParser\Components; +namespace PhpMyAdmin\SqlParser\Parsers; -use PhpMyAdmin\SqlParser\Component; +use PhpMyAdmin\SqlParser\Components\ArrayObj; +use PhpMyAdmin\SqlParser\Parseable; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use PhpMyAdmin\SqlParser\Translator; use function count; @@ -15,10 +17,8 @@ /** * `VALUES` keyword parser. - * - * @final */ -class Array2d extends Component +final class Array2d implements Parseable { /** * @param Parser $parser the parser that serves as context @@ -27,14 +27,12 @@ class Array2d extends Component * * @return ArrayObj[] */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public static function parse(Parser $parser, TokensList $list, array $options = []): array { $ret = []; /** * The number of values in each set. - * - * @var int */ $count = -1; @@ -47,8 +45,6 @@ public static function parse(Parser $parser, TokensList $list, array $options = * * 1 ------------------------[ , ]------------------------> 0 * 1 -----------------------[ else ]----------------------> (END) - * - * @var int */ $state = 0; @@ -59,17 +55,17 @@ public static function parse(Parser $parser, TokensList $list, array $options = $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } // No keyword is expected. - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { + if (($token->type === TokenType::Keyword) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { break; } @@ -78,7 +74,8 @@ public static function parse(Parser $parser, TokensList $list, array $options = break; } - $arr = ArrayObj::parse($parser, $list, $options); + /** @var ArrayObj $arr */ + $arr = ArrayObjs::parse($parser, $list, $options); $arrCount = count($arr->values); if ($count === -1) { $count = $arrCount; @@ -87,9 +84,9 @@ public static function parse(Parser $parser, TokensList $list, array $options = sprintf( Translator::gettext('%1$d values were expected, but found %2$d.'), $count, - $arrCount + $arrCount, ), - $token + $token, ); } @@ -112,15 +109,4 @@ public static function parse(Parser $parser, TokensList $list, array $options = return $ret; } - - /** - * @param ArrayObj[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - return ArrayObj::build($component); - } } diff --git a/src/Parsers/ArrayObjs.php b/src/Parsers/ArrayObjs.php new file mode 100644 index 000000000..2c21a536a --- /dev/null +++ b/src/Parsers/ArrayObjs.php @@ -0,0 +1,139 @@ + $options parameters for parsing + * + * @return ArrayObj|Component[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): ArrayObj|array + { + $ret = empty($options['type']) ? new ArrayObj() : []; + + /** + * The last raw expression. + */ + $lastRaw = ''; + + /** + * The last value. + */ + $lastValue = ''; + + /** + * Counts brackets. + */ + $brackets = 0; + + /** + * Last separator (bracket or comma). + */ + $isCommaLast = false; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + if ($brackets > 0) { + $parser->error('A closing bracket was expected.', $token); + } + + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + $lastRaw .= $token->token; + $lastValue = trim($lastValue) . ' '; + continue; + } + + if (($brackets === 0) && (($token->type !== TokenType::Operator) || ($token->value !== '('))) { + $parser->error('An opening bracket was expected.', $token); + break; + } + + if ($token->type === TokenType::Operator) { + if ($token->value === '(') { + if (++$brackets === 1) { // 1 is the base level. + continue; + } + } elseif ($token->value === ')') { + if (--$brackets === 0) { // Array ended. + break; + } + } elseif ($token->value === ',') { + if ($brackets === 1) { + $isCommaLast = true; + if (empty($options['type'])) { + $ret->raw[] = trim($lastRaw); + $ret->values[] = trim($lastValue); + $lastRaw = $lastValue = ''; + } + + continue; + } + } + } + + if (empty($options['type'])) { + $lastRaw .= $token->token; + $lastValue .= $token->value; + } else { + $ret[] = $options['type']::parse( + $parser, + $list, + empty($options['typeOptions']) ? [] : $options['typeOptions'], + ); + } + } + + // Handling last element. + // + // This is treated differently to treat the following cases: + // + // => [] + // [,] => ['', ''] + // [] => [] + // [a,] => ['a', ''] + // [a] => ['a'] + $lastRaw = trim($lastRaw); + if (empty($options['type']) && ((strlen($lastRaw) > 0) || ($isCommaLast))) { + $ret->raw[] = $lastRaw; + $ret->values[] = trim($lastValue); + } + + return $ret; + } + + /** @param ArrayObj[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(', ', $component); + } +} diff --git a/src/Parsers/CaseExpressions.php b/src/Parsers/CaseExpressions.php new file mode 100644 index 000000000..753bb4d95 --- /dev/null +++ b/src/Parsers/CaseExpressions.php @@ -0,0 +1,198 @@ + $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): CaseExpression + { + $ret = new CaseExpression(); + + /** + * State of parser. + */ + $state = 0; + + /** + * Syntax type (type 0 or type 1). + */ + $type = 0; + + ++$list->idx; // Skip 'CASE' + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + if ($token->type === TokenType::Keyword) { + switch ($token->keyword) { + case 'WHEN': + ++$list->idx; // Skip 'WHEN' + $newCondition = Conditions::parse($parser, $list); + $type = 1; + $state = 1; + $ret->conditions[] = $newCondition; + break; + case 'ELSE': + ++$list->idx; // Skip 'ELSE' + $ret->elseResult = Expressions::parse($parser, $list); + $state = 0; // last clause of CASE expression + break; + case 'END': + $state = 3; // end of CASE expression + ++$list->idx; + break 2; + default: + $parser->error('Unexpected keyword.', $token); + break 2; + } + } else { + $ret->value = Expressions::parse($parser, $list); + $type = 0; + $state = 1; + } + } elseif ($state === 1) { + if ($type === 0) { + if ($token->type === TokenType::Keyword) { + switch ($token->keyword) { + case 'WHEN': + ++$list->idx; // Skip 'WHEN' + $newValue = Expressions::parse($parser, $list); + $state = 2; + $ret->compareValues[] = $newValue; + break; + case 'ELSE': + ++$list->idx; // Skip 'ELSE' + $ret->elseResult = Expressions::parse($parser, $list); + $state = 0; // last clause of CASE expression + break; + case 'END': + $state = 3; // end of CASE expression + ++$list->idx; + break 2; + default: + $parser->error('Unexpected keyword.', $token); + break 2; + } + } + } elseif ($token->type === TokenType::Keyword && $token->keyword === 'THEN') { + ++$list->idx; // Skip 'THEN' + $newResult = Expressions::parse($parser, $list); + $state = 0; + $ret->results[] = $newResult; + } elseif ($token->type === TokenType::Keyword) { + $parser->error('Unexpected keyword.', $token); + break; + } + } elseif ($state === 2) { + if ($type === 0) { + if ($token->type === TokenType::Keyword && $token->keyword === 'THEN') { + ++$list->idx; // Skip 'THEN' + $newResult = Expressions::parse($parser, $list); + $ret->results[] = $newResult; + $state = 1; + } elseif ($token->type === TokenType::Keyword) { + $parser->error('Unexpected keyword.', $token); + break; + } + } + } + } + + if ($state !== 3) { + $parser->error('Unexpected end of CASE expression', $list->tokens[$list->idx - 1]); + } else { + // Parse for alias of CASE expression + $asFound = false; + for (; $list->idx < $list->count; ++$list->idx) { + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + // Handle optional AS keyword before alias + if ($token->type === TokenType::Keyword && $token->keyword === 'AS') { + if ($asFound || ! empty($ret->alias)) { + $parser->error('Potential duplicate alias of CASE expression.', $token); + break; + } + + $asFound = true; + continue; + } + + if ( + $asFound + && $token->type === TokenType::Keyword + && ($token->flags & Token::FLAG_KEYWORD_RESERVED || $token->flags & Token::FLAG_KEYWORD_FUNCTION) + ) { + $parser->error('An alias expected after AS but got ' . $token->value, $token); + $asFound = false; + break; + } + + if ( + $asFound + || $token->type === TokenType::String + || ($token->type === TokenType::Symbol && ! $token->flags & Token::FLAG_SYMBOL_VARIABLE) + || $token->type === TokenType::None + ) { + // An alias is expected (the keyword `AS` was previously found). + if (! empty($ret->alias)) { + $parser->error('An alias was previously found.', $token); + break; + } + + $ret->alias = $token->value; + $asFound = false; + + continue; + } + + break; + } + + if ($asFound) { + $parser->error('An alias was expected after AS.', $list->tokens[$list->idx - 1]); + } + + $ret->expr = $ret->build(); + } + + --$list->idx; + + return $ret; + } +} diff --git a/src/Parsers/Conditions.php b/src/Parsers/Conditions.php new file mode 100644 index 000000000..62fe37e58 --- /dev/null +++ b/src/Parsers/Conditions.php @@ -0,0 +1,233 @@ +=', '>', '<=', '<', '<>', '!=']; + + /** + * @param Parser $parser the parser that serves as context + * @param TokensList $list the list of tokens that are being parsed + * @param array $options parameters for parsing + * + * @return Condition[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new Condition(); + + /** + * Counts brackets. + */ + $brackets = 0; + + /** + * Whether there was a `BETWEEN` keyword before or not. + * + * It is required to keep track of them because their structure contains + * the keyword `AND`, which is also an operator that delimits + * expressions. + */ + $betweenBefore = false; + + $hasSubQuery = false; + $subQueryBracket = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if ($token->type === TokenType::Comment) { + continue; + } + + // Replacing all whitespaces (new lines, tabs, etc.) with a single + // space character. + if ($token->type === TokenType::Whitespace) { + $expr->expr .= ' '; + if ($expr->operator === '') { + $expr->leftOperand .= ' '; + } else { + $expr->rightOperand .= ' '; + } + + continue; + } + + if ( + ! $hasSubQuery + && $token->keyword !== null && $token->type === TokenType::Keyword + && $brackets > 0 + && (Parser::STATEMENT_PARSERS[$token->keyword] ?? '') !== '' + ) { + $hasSubQuery = true; + $subQueryBracket = $brackets; + } + + // Conditions are delimited by logical operators. + if ( + ($token->type === TokenType::Keyword || $token->type === TokenType::Operator) + && in_array($token->value, self::DELIMITERS, true) + ) { + if ($betweenBefore && ($token->value === 'AND')) { + // The syntax of keyword `BETWEEN` is hard-coded. + $betweenBefore = false; + } else { + // The expression ended. + $expr->expr = trim($expr->expr); + if ($expr->expr !== '') { + $expr->leftOperand = trim($expr->leftOperand); + $expr->rightOperand = trim($expr->rightOperand); + $ret[] = $expr; + } + + // Adding the operator. + $expr = new Condition($token->value); + $expr->isOperator = true; + $ret[] = $expr; + + // Preparing to parse another condition. + $expr = new Condition(); + continue; + } + } + + if ( + ($token->type === TokenType::Keyword) + && ($token->flags & Token::FLAG_KEYWORD_RESERVED) + && ! ($token->flags & Token::FLAG_KEYWORD_FUNCTION) + ) { + if ($token->value === 'BETWEEN') { + $betweenBefore = true; + } + + if ($brackets === 0 && ! in_array($token->value, self::ALLOWED_KEYWORDS, true)) { + break; + } + } + + if ($token->type === TokenType::Operator) { + if ($token->value === '(') { + ++$brackets; + } elseif ($token->value === ')') { + if ($brackets === 0) { + break; + } + + if ($subQueryBracket === $brackets) { + $hasSubQuery = false; + } + + --$brackets; + } elseif (! $hasSubQuery && in_array($token->value, self::COMPARISON_OPERATORS, true)) { + $expr->operator = $token->value; + } + } + + $expr->expr .= $token->token; + if ($expr->operator === '') { + $expr->leftOperand .= $token->token; + } elseif ($expr->rightOperand !== '' || $expr->operator !== $token->value) { + $expr->rightOperand .= $token->token; + } + + if ( + ($token->type !== TokenType::None) + && (($token->type !== TokenType::Keyword) + || ($token->flags & Token::FLAG_KEYWORD_RESERVED)) + && ($token->type !== TokenType::String) + && ($token->type !== TokenType::Symbol || ($token->flags & Token::FLAG_SYMBOL_PARAMETER)) + ) { + continue; + } + + if (in_array($token->value, $expr->identifiers)) { + continue; + } + + $expr->identifiers[] = $token->value; + } + + // Last iteration was not processed. + $expr->expr = trim($expr->expr); + if ($expr->expr !== '') { + $expr->leftOperand = trim($expr->leftOperand); + $expr->rightOperand = trim($expr->rightOperand); + $ret[] = $expr; + } + + --$list->idx; + + return $ret; + } + + /** @param Condition[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(' ', $component); + } +} diff --git a/src/Parsers/CreateDefinitions.php b/src/Parsers/CreateDefinitions.php new file mode 100644 index 000000000..21cdff855 --- /dev/null +++ b/src/Parsers/CreateDefinitions.php @@ -0,0 +1,249 @@ + true, + + 'NOT NULL' => 1, + 'NULL' => 1, + 'DEFAULT' => [ + 2, + 'expr', + ['breakOnAlias' => true], + ], + /* Following are not according to grammar, but MySQL happily accepts + * these at any location */ + 'CHARSET' => [ + 2, + 'var', + ], + 'COLLATE' => [ + 3, + 'var', + ], + 'AUTO_INCREMENT' => 3, + 'KEY' => 4, + 'PRIMARY' => 4, + 'PRIMARY KEY' => 4, + 'UNIQUE' => 4, + 'UNIQUE KEY' => 4, + 'COMMENT' => [ + 5, + 'var', + ], + 'COLUMN_FORMAT' => [ + 6, + 'var', + ], + 'ON UPDATE' => [ + 7, + 'expr', + ], + + // Generated columns options. + 'GENERATED ALWAYS' => 8, + 'AS' => [ + 9, + 'expr', + ['parenthesesDelimited' => true], + ], + 'VIRTUAL' => 10, + 'PERSISTENT' => 11, + 'STORED' => 11, + 'CHECK' => [ + 12, + 'expr', + ['parenthesesDelimited' => true], + ], + 'INVISIBLE' => 13, + 'ENFORCED' => 14, + 'NOT' => 15, + 'COMPRESSED' => 16, + 'SRID' => [17, 'var'], + // Common entries. + // + // NOTE: Some of the common options are not in the same order which + // causes troubles when checking if the options are in the right order. + // I should find a way to define multiple sets of options and make the + // parser select the right set. + // + // 'UNIQUE' => 4, + // 'UNIQUE KEY' => 4, + // 'COMMENT' => [5, 'var'], + // 'NOT NULL' => 1, + // 'NULL' => 1, + // 'PRIMARY' => 4, + // 'PRIMARY KEY' => 4, + ]; + + /** + * @param Parser $parser the parser that serves as context + * @param TokensList $list the list of tokens that are being parsed + * @param array $options parameters for parsing + * + * @return CreateDefinition[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new CreateDefinition(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 -----------------------[ ( ]------------------------> 1 + * + * 1 --------------------[ CONSTRAINT ]------------------> 1 + * 1 -----------------------[ key ]----------------------> 2 + * 1 -------------[ constraint / column name ]-----------> 2 + * + * 2 --------------------[ data type ]-------------------> 3 + * + * 3 ---------------------[ options ]--------------------> 4 + * + * 4 --------------------[ REFERENCES ]------------------> 4 + * + * 5 ------------------------[ , ]-----------------------> 1 + * 5 ------------------------[ ) ]-----------------------> 6 (-1) + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + if (($token->type !== TokenType::Operator) || ($token->value !== '(')) { + $parser->error('An opening bracket was expected.', $token); + + break; + } + + $state = 1; + } elseif ($state === 1) { + if ($token->type === TokenType::Keyword && $token->keyword === 'CONSTRAINT') { + $expr->isConstraint = true; + } elseif (($token->type === TokenType::Keyword) && ($token->flags & Token::FLAG_KEYWORD_KEY)) { + $expr->key = Keys::parse($parser, $list); + $state = 4; + } elseif ($token->type === TokenType::Symbol || $token->type === TokenType::None) { + $expr->name = $token->value; + if (! $expr->isConstraint) { + $state = 2; + } + } elseif ($token->type === TokenType::Keyword) { + if ($token->flags & Token::FLAG_KEYWORD_RESERVED) { + // Reserved keywords can't be used + // as field names without backquotes + $parser->error( + 'A symbol name was expected! ' + . 'A reserved keyword can not be used ' + . 'as a column name without backquotes.', + $token, + ); + + return $ret; + } + + // Non-reserved keywords are allowed without backquotes + $expr->name = $token->value; + $state = 2; + } else { + $parser->error('A symbol name was expected!', $token); + + return $ret; + } + } elseif ($state === 2) { + $expr->type = DataTypes::parse($parser, $list); + $state = 3; + } elseif ($state === 3) { + $expr->options = OptionsArrays::parse($parser, $list, self::FIELD_OPTIONS); + $state = 4; + } elseif ($state === 4) { + if ($token->type === TokenType::Keyword && $token->keyword === 'REFERENCES') { + ++$list->idx; // Skipping keyword 'REFERENCES'. + $expr->references = References::parse($parser, $list); + } else { + --$list->idx; + } + + $state = 5; + } else { + if (! empty($expr->type) || ! empty($expr->key)) { + $ret[] = $expr; + } + + $expr = new CreateDefinition(); + if ($token->value === ',') { + $state = 1; + } elseif ($token->value === ')') { + $state = 6; + ++$list->idx; + break; + } else { + $parser->error('A comma or a closing bracket was expected.', $token); + $state = 0; + break; + } + } + } + + // Last iteration was not saved. + if (! empty($expr->type) || ! empty($expr->key)) { + $ret[] = $expr; + } + + if (($state !== 0) && ($state !== 6)) { + $parser->error('A closing bracket was expected.', $list->tokens[$list->idx - 1]); + } + + --$list->idx; + + return $ret; + } + + /** @param CreateDefinition[] $component the component to be built */ + public static function buildAll(array $component): string + { + return "(\n " . implode(",\n ", $component) . "\n)"; + } +} diff --git a/src/Parsers/DataTypes.php b/src/Parsers/DataTypes.php new file mode 100644 index 000000000..8b961bc02 --- /dev/null +++ b/src/Parsers/DataTypes.php @@ -0,0 +1,102 @@ + 1, + 'CHARACTER SET' => [ + 2, + 'var', + ], + 'CHARSET' => [ + 2, + 'var', + ], + 'COLLATE' => [ + 3, + 'var', + ], + 'UNSIGNED' => 4, + 'ZEROFILL' => 5, + ]; + + /** + * @param Parser $parser the parser that serves as context + * @param TokensList $list the list of tokens that are being parsed + * @param array $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): DataType|null + { + $ret = new DataType(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 -------------------[ data type ]--------------------> 1 + * + * 1 ----------------[ size and options ]----------------> 2 + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + $ret->name = strtoupper((string) $token->value); + if (($token->type !== TokenType::Keyword) || (! ($token->flags & Token::FLAG_KEYWORD_DATA_TYPE))) { + $parser->error('Unrecognized data type.', $token); + } + + $state = 1; + } elseif ($state === 1) { + if (($token->type === TokenType::Operator) && ($token->value === '(')) { + $parameters = ArrayObjs::parse($parser, $list); + ++$list->idx; + $ret->parameters = ($ret->name === 'ENUM') || ($ret->name === 'SET') ? + $parameters->raw : $parameters->values; + } + + $ret->options = OptionsArrays::parse($parser, $list, self::DATA_TYPE_OPTIONS); + ++$list->idx; + break; + } + } + + if (empty($ret->name)) { + return null; + } + + --$list->idx; + + return $ret; + } +} diff --git a/src/Components/ExpressionArray.php b/src/Parsers/ExpressionArray.php similarity index 63% rename from src/Components/ExpressionArray.php rename to src/Parsers/ExpressionArray.php index e65b466fc..76dfaba11 100644 --- a/src/Components/ExpressionArray.php +++ b/src/Parsers/ExpressionArray.php @@ -2,27 +2,26 @@ declare(strict_types=1); -namespace PhpMyAdmin\SqlParser\Components; +namespace PhpMyAdmin\SqlParser\Parsers; -use PhpMyAdmin\SqlParser\Component; +use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Exceptions\ParserException; +use PhpMyAdmin\SqlParser\Parseable; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function count; use function implode; -use function is_array; use function preg_match; use function strlen; use function substr; /** * Parses a list of expressions delimited by a comma. - * - * @final */ -class ExpressionArray extends Component +final class ExpressionArray implements Parseable { /** * @param Parser $parser the parser that serves as context @@ -33,7 +32,7 @@ class ExpressionArray extends Component * * @throws ParserException */ - public static function parse(Parser $parser, TokensList $list, array $options = []) + public static function parse(Parser $parser, TokensList $list, array $options = []): array { $ret = []; @@ -46,8 +45,6 @@ public static function parse(Parser $parser, TokensList $list, array $options = * * 1 ------------------------[ , ]------------------------> 0 * 1 -----------------------[ else ]----------------------> (END) - * - * @var int */ $state = 0; @@ -58,17 +55,17 @@ public static function parse(Parser $parser, TokensList $list, array $options = $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } if ( - ($token->type === Token::TYPE_KEYWORD) + ($token->type === TokenType::Keyword) && ($token->flags & Token::FLAG_KEYWORD_RESERVED) && ((~$token->flags & Token::FLAG_KEYWORD_FUNCTION)) && ($token->value !== 'DUAL') @@ -81,10 +78,10 @@ public static function parse(Parser $parser, TokensList $list, array $options = } if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD && $token->value === 'CASE') { - $expr = CaseExpression::parse($parser, $list, $options); + if ($token->type === TokenType::Keyword && $token->value === 'CASE') { + $expr = CaseExpressions::parse($parser, $list, $options); } else { - $expr = Expression::parse($parser, $list, $options); + $expr = Expressions::parse($parser, $list, $options); } if ($expr === null) { @@ -107,34 +104,21 @@ public static function parse(Parser $parser, TokensList $list, array $options = } --$list->idx; - - if (is_array($ret)) { - $retIndex = count($ret) - 1; - if (isset($ret[$retIndex])) { - $expr = $ret[$retIndex]->expr; - if (preg_match('/\s*--\s.*$/', $expr, $matches)) { - $found = $matches[0]; - $ret[$retIndex]->expr = substr($expr, 0, strlen($expr) - strlen($found)); - } + $retIndex = count($ret) - 1; + if (isset($ret[$retIndex])) { + $expr = $ret[$retIndex]->expr; + if (preg_match('/\s*--\s.*$/', $expr, $matches)) { + $found = $matches[0]; + $ret[$retIndex]->expr = substr($expr, 0, strlen($expr) - strlen($found)); } } return $ret; } - /** - * @param Expression[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) + /** @param Expression[] $component the component to be built */ + public static function buildAll(array $component): string { - $ret = []; - foreach ($component as $frag) { - $ret[] = $frag::build($frag); - } - - return implode(', ', $ret); + return implode(', ', $component); } } diff --git a/src/Parsers/Expressions.php b/src/Parsers/Expressions.php new file mode 100644 index 000000000..33986c542 --- /dev/null +++ b/src/Parsers/Expressions.php @@ -0,0 +1,371 @@ + $options parameters for parsing + * + * @throws ParserException + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): Expression|null + { + $ret = new Expression(); + + /** + * Whether current tokens make an expression or a table reference. + */ + $isExpr = false; + + /** + * Whether a period was previously found. + */ + $dot = false; + + /** + * Whether an alias is expected. Is 2 if `AS` keyword was found. + */ + $alias = false; + + /** + * Counts brackets. + */ + $brackets = 0; + + /** + * Keeps track of the last two previous tokens. + */ + $prev = [ + null, + null, + ]; + + // When a field is parsed, no parentheses are expected. + if (! empty($options['parseField'])) { + $options['breakOnParentheses'] = true; + $options['field'] = $options['parseField']; + } + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + // If the token is a closing C comment from a MySQL command, it must be ignored. + if ($isExpr && $token->token !== '*/') { + $ret->expr .= $token->token; + } + + continue; + } + + if ($token->type === TokenType::Keyword) { + if (($brackets > 0) && empty($ret->subquery) && ! empty(Parser::STATEMENT_PARSERS[$token->keyword])) { + // A `(` was previously found and this keyword is the + // beginning of a statement, so this is a subquery. + $ret->subquery = $token->keyword; + } elseif ( + ($token->flags & Token::FLAG_KEYWORD_FUNCTION) + && (empty($options['parseField']) + && ! $alias) + ) { + $isExpr = true; + } elseif (($token->flags & Token::FLAG_KEYWORD_RESERVED) && ($brackets === 0)) { + if (! in_array($token->keyword, self::ALLOWED_KEYWORDS, true)) { + // A reserved keyword that is not allowed in the + // expression was found so the expression must have + // ended and a new clause is starting. + break; + } + + if ($token->keyword === 'AS') { + if (! empty($options['breakOnAlias'])) { + break; + } + + if ($alias) { + $parser->error('An alias was expected.', $token); + break; + } + + $alias = true; + continue; + } + + if ($token->keyword === 'CASE') { + // For a use of CASE like + // 'SELECT a = CASE .... END, b=1, `id`, ... FROM ...' + $tempCaseExpr = CaseExpressions::parse($parser, $list); + $ret->expr .= $tempCaseExpr->build(); + $isExpr = true; + continue; + } + + $isExpr = true; + } elseif ( + $brackets === 0 && strlen((string) $ret->expr) > 0 && ! $alias + && ($ret->table === null || $ret->table === '') + ) { + /* End of expression */ + break; + } + } + + if ( + ($token->type === TokenType::Number) + || ($token->type === TokenType::Bool) + || (($token->type === TokenType::Symbol) + && ($token->flags & Token::FLAG_SYMBOL_VARIABLE)) + || (($token->type === TokenType::Symbol) + && ($token->flags & Token::FLAG_SYMBOL_PARAMETER)) + || (($token->type === TokenType::Operator) + && ($token->value !== '.')) + ) { + if (! empty($options['parseField'])) { + break; + } + + // Numbers, booleans and operators (except dot) are usually part + // of expressions. + $isExpr = true; + } + + if ($token->type === TokenType::Operator) { + if (! empty($options['breakOnParentheses']) && (($token->value === '(') || ($token->value === ')'))) { + // No brackets were expected. + break; + } + + if ($token->value === '(') { + ++$brackets; + if ( + empty($ret->function) && ($prev[1] !== null) + && (($prev[1]->type === TokenType::None) + || ($prev[1]->type === TokenType::Symbol) + || (($prev[1]->type === TokenType::Keyword) + && ($prev[1]->flags & Token::FLAG_KEYWORD_FUNCTION))) + ) { + $ret->function = $prev[1]->value; + } + } elseif ($token->value === ')') { + if ($brackets === 0) { + // Not our bracket + break; + } + + --$brackets; + if ($brackets === 0) { + if (! empty($options['parenthesesDelimited'])) { + // The current token is the last bracket, the next + // one will be outside the expression. + $ret->expr .= $token->token; + ++$list->idx; + break; + } + } elseif ($brackets < 0) { + // $parser->error('Unexpected closing bracket.', $token); + // $brackets = 0; + break; + } + } elseif ($token->value === ',') { + // Expressions are comma-delimited. + if ($brackets === 0) { + break; + } + } + } + + // Saving the previous tokens. + $prev[0] = $prev[1]; + $prev[1] = $token; + + if ($alias) { + // An alias is expected (the keyword `AS` was previously found). + if (! empty($ret->alias)) { + $parser->error('An alias was previously found.', $token); + break; + } + + $ret->alias = $token->value; + $alias = false; + } elseif ($isExpr) { + // Handling aliases. + if ( + $brackets === 0 + && ($prev[0] === null + || (($prev[0]->type !== TokenType::Operator || $prev[0]->token === ')') + && ($prev[0]->type !== TokenType::Keyword + || ! ($prev[0]->flags & Token::FLAG_KEYWORD_RESERVED)))) + && (($prev[1]->type === TokenType::String) + || ($prev[1]->type === TokenType::Symbol + && ! ($prev[1]->flags & Token::FLAG_SYMBOL_VARIABLE) + && ! ($prev[1]->flags & Token::FLAG_SYMBOL_PARAMETER)) + || ($prev[1]->type === TokenType::None + && strtoupper($prev[1]->token) !== 'OVER')) + ) { + if (! empty($ret->alias)) { + $parser->error('An alias was previously found.', $token); + break; + } + + $ret->alias = $prev[1]->value; + } else { + $currIdx = $list->idx; + --$list->idx; + $beforeToken = $list->getPrevious(); + $list->idx = $currIdx; + // columns names tokens are of type NONE, or SYMBOL (`col`), and the columns options + // would start with a token of type KEYWORD, in that case, we want to have a space + // between the tokens. + if ( + $ret->expr !== null && + $beforeToken && + ($beforeToken->type === TokenType::None || + $beforeToken->type === TokenType::Symbol || $beforeToken->type === TokenType::String) && + $token->type === TokenType::Keyword + ) { + $ret->expr = rtrim($ret->expr, ' ') . ' '; + } + + $ret->expr .= $token->token; + } + } else { + if (($token->type === TokenType::Operator) && ($token->value === '.')) { + // Found a `.` which means we expect a column name and + // the column name we parsed is actually the table name + // and the table name is actually a database name. + if (! empty($ret->database) || $dot) { + $parser->error('Unexpected dot.', $token); + } + + $ret->database = $ret->table; + $ret->table = $ret->column; + $ret->column = null; + $dot = true; + $ret->expr .= $token->token; + } else { + $field = empty($options['field']) ? 'column' : $options['field']; + if (empty($ret->$field)) { + $ret->$field = $token->value; + $ret->expr .= $token->token; + $dot = false; + } else { + // No alias is expected. + if (! empty($options['breakOnAlias'])) { + break; + } + + if (! empty($ret->alias)) { + $parser->error('An alias was previously found.', $token); + break; + } + + $ret->alias = $token->value; + } + } + } + } + + if ($alias) { + $parser->error('An alias was expected.', $list->tokens[$list->idx - 1]); + } + + // White-spaces might be added at the end. + $ret->expr = trim((string) $ret->expr); + + if ($ret->expr === '') { + return null; + } + + --$list->idx; + + return $ret; + } + + /** @param Expression[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(', ', $component); + } +} diff --git a/src/Parsers/FunctionCalls.php b/src/Parsers/FunctionCalls.php new file mode 100644 index 000000000..096cf0920 --- /dev/null +++ b/src/Parsers/FunctionCalls.php @@ -0,0 +1,71 @@ + $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): FunctionCall + { + $ret = new FunctionCall(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ----------------------[ name ]-----------------------> 1 + * + * 1 --------------------[ parameters ]-------------------> (END) + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + --$list->idx; // Let last token to previous one to avoid "This type of clause was previously parsed." + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + if ($token->type === TokenType::Operator && $token->value === '(') { + --$list->idx; // ArrayObj needs to start with `(` + $state = 1; + continue;// do not add this token to the name + } + + $ret->name .= $token->value; + } elseif ($state === 1) { + $ret->parameters = ArrayObjs::parse($parser, $list); + break; + } + } + + return $ret; + } +} diff --git a/src/Parsers/GroupKeywords.php b/src/Parsers/GroupKeywords.php new file mode 100644 index 000000000..c3d6f8048 --- /dev/null +++ b/src/Parsers/GroupKeywords.php @@ -0,0 +1,99 @@ + $options parameters for parsing + * + * @return GroupKeyword[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new GroupKeyword(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 --------------------[ expression ]-------------------> 1 + * + * 1 ------------------------[ , ]------------------------> 0 + * 1 -------------------[ ASC / DESC ]--------------------> 1 + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + $expr->expr = Expressions::parse($parser, $list); + $state = 1; + } else { + if ( + ($token->type === TokenType::Keyword) + && (($token->keyword === 'ASC') || ($token->keyword === 'DESC')) + ) { + $expr->type = OrderSortKeyword::from($token->keyword); + } elseif (($token->type === TokenType::Operator) && ($token->value === ',')) { + if (! empty($expr->expr)) { + $ret[] = $expr; + } + + $expr = new GroupKeyword(); + $state = 0; + } else { + break; + } + } + } + + // Last iteration was not processed. + if (! empty($expr->expr)) { + $ret[] = $expr; + } + + --$list->idx; + + return $ret; + } + + /** @param GroupKeyword[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(', ', $component); + } +} diff --git a/src/Parsers/IndexHints.php b/src/Parsers/IndexHints.php new file mode 100644 index 000000000..bf34d866f --- /dev/null +++ b/src/Parsers/IndexHints.php @@ -0,0 +1,143 @@ + $options parameters for parsing + * + * @return IndexHint[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + $expr = new IndexHint(); + $expr->type = $options['type'] ?? ''; + /** + * The state of the parser. + * + * Below are the states of the parser. + * 0 ----------------- [ USE/IGNORE/FORCE ]-----------------> 1 + * 1 -------------------- [ INDEX/KEY ] --------------------> 2 + * 2 ----------------------- [ FOR ] -----------------------> 3 + * 2 -------------------- [ expr_list ] --------------------> 0 + * 3 -------------- [ JOIN/GROUP BY/ORDER BY ] -------------> 4 + * 4 -------------------- [ expr_list ] --------------------> 0 + */ + $state = 0; + + // By design, the parser will parse first token after the keyword. So, the keyword + // must be analyzed too, in order to determine the type of this index hint. + if ($list->idx > 0) { + --$list->idx; + } + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + switch ($state) { + case 0: + if ($token->type === TokenType::Keyword) { + if ($token->keyword !== 'USE' && $token->keyword !== 'IGNORE' && $token->keyword !== 'FORCE') { + break 2; + } + + $expr->type = $token->keyword; + $state = 1; + } + + break; + case 1: + if ($token->type === TokenType::Keyword) { + if ($token->keyword === 'INDEX' || $token->keyword === 'KEY') { + $expr->indexOrKey = $token->keyword; + } else { + $parser->error('Unexpected keyword.', $token); + } + + $state = 2; + } else { + // we expect the token to be a keyword + $parser->error('Unexpected token.', $token); + } + + break; + case 2: + if ($token->type === TokenType::Keyword && $token->keyword === 'FOR') { + $state = 3; + } else { + $expr->indexes = ExpressionArray::parse($parser, $list); + $state = 0; + $ret[] = $expr; + $expr = new IndexHint(); + } + + break; + case 3: + if ($token->type === TokenType::Keyword) { + if ( + $token->keyword === 'JOIN' + || $token->keyword === 'GROUP BY' + || $token->keyword === 'ORDER BY' + ) { + $expr->for = $token->keyword; + } else { + $parser->error('Unexpected keyword.', $token); + } + + $state = 4; + } else { + // we expect the token to be a keyword + $parser->error('Unexpected token.', $token); + } + + break; + case 4: + $expr->indexes = ExpressionArray::parse($parser, $list); + $state = 0; + $ret[] = $expr; + $expr = new IndexHint(); + break; + } + } + + --$list->idx; + + return $ret; + } + + /** @param IndexHint[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(' ', $component); + } +} diff --git a/src/Parsers/IntoKeywords.php b/src/Parsers/IntoKeywords.php new file mode 100644 index 000000000..202cbd948 --- /dev/null +++ b/src/Parsers/IntoKeywords.php @@ -0,0 +1,119 @@ + $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): IntoKeyword + { + $ret = new IntoKeyword(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 -----------------------[ name ]----------------------> 1 + * 0 ---------------------[ OUTFILE ]---------------------> 2 + * + * 1 ------------------------[ ( ]------------------------> (END) + * + * 2 ---------------------[ filename ]--------------------> 1 + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if (($token->type === TokenType::Keyword) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { + if (($state === 0) && ($token->keyword === 'OUTFILE')) { + $ret->type = 'OUTFILE'; + $state = 2; + continue; + } + + // No other keyword is expected except for $state = 4, which expects `LINES` + if ($state !== 4) { + break; + } + } + + if ($state === 0) { + if ( + (isset($options['fromInsert']) + && $options['fromInsert']) + || (isset($options['fromReplace']) + && $options['fromReplace']) + ) { + $ret->dest = Expressions::parse( + $parser, + $list, + [ + 'parseField' => 'table', + 'breakOnAlias' => true, + ], + ); + } else { + $ret->values = ExpressionArray::parse($parser, $list); + } + + $state = 1; + } elseif ($state === 1) { + if (($token->type === TokenType::Operator) && ($token->value === '(')) { + $ret->columns = ArrayObjs::parse($parser, $list)->values; + ++$list->idx; + } + + break; + } elseif ($state === 2) { + $ret->dest = $token->value; + + $state = 3; + } elseif ($state === 3) { + $ret->parseFileOptions($parser, $list, $token->keyword); + $state = 4; + } elseif ($state === 4) { + if ($token->type === TokenType::Keyword && $token->keyword !== 'LINES') { + break; + } + + $ret->parseFileOptions($parser, $list, $token->keyword); + $state = 5; + } + } + + --$list->idx; + + return $ret; + } +} diff --git a/src/Parsers/JoinKeywords.php b/src/Parsers/JoinKeywords.php new file mode 100644 index 000000000..67740900c --- /dev/null +++ b/src/Parsers/JoinKeywords.php @@ -0,0 +1,141 @@ + $options parameters for parsing + * + * @return JoinKeyword[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new JoinKeyword(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 -----------------------[ JOIN ]----------------------> 1 + * + * 1 -----------------------[ expr ]----------------------> 2 + * + * 2 -------------------[ index_hints ]-------------------> 2 + * 2 ------------------------[ ON ]-----------------------> 3 + * 2 -----------------------[ USING ]---------------------> 4 + * + * 3 --------------------[ conditions ]-------------------> 0 + * + * 4 ----------------------[ columns ]--------------------> 0 + */ + $state = 0; + + // By design, the parser will parse first token after the keyword. + // In this case, the keyword must be analyzed too, in order to determine + // the type of this join. + if ($list->idx > 0) { + --$list->idx; + } + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + if (($token->type !== TokenType::Keyword) || empty(JoinKeyword::JOINS[$token->keyword])) { + break; + } + + $expr->type = JoinKeyword::JOINS[$token->keyword]; + $state = 1; + } elseif ($state === 1) { + $expr->expr = Expressions::parse($parser, $list, ['field' => 'table']); + $state = 2; + } elseif ($state === 2) { + if ($token->type === TokenType::Keyword) { + switch ($token->keyword) { + case 'ON': + $state = 3; + break; + case 'USING': + $state = 4; + break; + case 'USE': + case 'IGNORE': + case 'FORCE': + // Adding index hint on the JOIN clause. + $expr->indexHints = IndexHints::parse($parser, $list); + break; + default: + if (empty(JoinKeyword::JOINS[$token->keyword])) { + /* Next clause is starting */ + break 2; + } + + $ret[] = $expr; + $expr = new JoinKeyword(); + $expr->type = JoinKeyword::JOINS[$token->keyword]; + $state = 1; + + break; + } + } + } elseif ($state === 3) { + $expr->on = Conditions::parse($parser, $list); + $ret[] = $expr; + $expr = new JoinKeyword(); + $state = 0; + } else { + $expr->using = ArrayObjs::parse($parser, $list); + $ret[] = $expr; + $expr = new JoinKeyword(); + $state = 0; + } + } + + if (! empty($expr->type)) { + $ret[] = $expr; + } + + --$list->idx; + + return $ret; + } + + /** @param JoinKeyword[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(' ', $component); + } +} diff --git a/src/Parsers/Keys.php b/src/Parsers/Keys.php new file mode 100644 index 000000000..b0a68d96e --- /dev/null +++ b/src/Parsers/Keys.php @@ -0,0 +1,198 @@ + [ + 1, + 'var=', + ], + 'USING' => [ + 2, + 'var', + ], + 'WITH PARSER' => [ + 3, + 'var', + ], + 'COMMENT' => [ + 4, + 'var', + ], + // MariaDB options + 'CLUSTERING' => [ + 4, + 'var=', + ], + 'ENGINE_ATTRIBUTE' => [ + 5, + 'var=', + ], + 'SECONDARY_ENGINE_ATTRIBUTE' => [ + 5, + 'var=', + ], + // MariaDB & MySQL options + 'VISIBLE' => 6, + 'INVISIBLE' => 6, + // MariaDB options + 'IGNORED' => 10, + 'NOT IGNORED' => 10, + ]; + + /** + * @param Parser $parser the parser that serves as context + * @param TokensList $list the list of tokens that are being parsed + * @param array $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): Key + { + $ret = new Key(); + + /** + * Last parsed column. + */ + $lastColumn = []; + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ---------------------[ type ]---------------------------> 1 + * + * 1 ---------------------[ name ]---------------------------> 1 + * 1 ---------------------[ columns ]------------------------> 2 + * 1 ---------------------[ expression ]---------------------> 5 + * + * 2 ---------------------[ column length ]------------------> 3 + * 3 ---------------------[ column length ]------------------> 2 + * 2 ---------------------[ options ]------------------------> 4 + * 5 ---------------------[ expression ]---------------------> 4 + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + $ret->type = $token->value; + $state = 1; + } elseif ($state === 1) { + if (($token->type === TokenType::Operator) && ($token->value === '(')) { + $positionBeforeSearch = $list->idx; + $list->idx++;// Ignore the current token "(" or the search condition will always be true + $nextToken = $list->getNext(); + $list->idx = $positionBeforeSearch;// Restore the position + + if ($nextToken !== null && $nextToken->value === '(') { + // Switch to expression mode + $state = 5; + } else { + $state = 2; + } + } else { + $ret->name = $token->value; + } + } elseif ($state === 2) { + if ($token->type === TokenType::Operator) { + if ($token->value === '(') { + $state = 3; + } elseif (($token->value === ',') || ($token->value === ')')) { + $state = $token->value === ',' ? 2 : 4; + if ($lastColumn !== []) { + $ret->columns[] = $lastColumn; + $lastColumn = []; + } + } + } elseif ( + ( + $token->type === TokenType::Keyword + ) + && + ( + ($token->keyword === 'ASC') || ($token->keyword === 'DESC') + ) + ) { + $lastColumn['order'] = $token->keyword; + } else { + $lastColumn['name'] = $token->value; + } + } elseif ($state === 3) { + if (($token->type === TokenType::Operator) && ($token->value === ')')) { + $state = 2; + } else { + $lastColumn['length'] = $token->value; + } + } elseif ($state === 4) { + $ret->options = OptionsArrays::parse($parser, $list, self::KEY_OPTIONS); + ++$list->idx; + break; + } elseif ($state === 5) { + if ($token->type === TokenType::Operator) { + // This got back to here and we reached the end of the expression + if ($token->value === ')') { + $state = 4;// go back to state 4 to fetch options + continue; + } + + // The expression is not finished, adding a separator for the next expression + if ($token->value === ',') { + $ret->expr .= ', '; + continue; + } + + // Start of the expression + if ($token->value === '(') { + // This is the first expression, set to empty + if ($ret->expr === null) { + $ret->expr = ''; + } + + $ret->expr .= Expressions::parse($parser, $list, ['parenthesesDelimited' => true]); + continue; + } + // Another unexpected operator was found + } + + // Something else than an operator was found + $parser->error('Unexpected token.', $token); + } + } + + --$list->idx; + + return $ret; + } +} diff --git a/src/Parsers/Limits.php b/src/Parsers/Limits.php new file mode 100644 index 000000000..de5019306 --- /dev/null +++ b/src/Parsers/Limits.php @@ -0,0 +1,89 @@ + $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): Limit + { + $ret = new Limit(); + + $offset = false; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if (($token->type === TokenType::Keyword) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { + break; + } + + if ($token->type === TokenType::Keyword && $token->keyword === 'OFFSET') { + if ($offset) { + $parser->error('An offset was expected.', $token); + } + + $offset = true; + continue; + } + + if (($token->type === TokenType::Operator) && ($token->value === ',')) { + $ret->offset = $ret->rowCount; + $ret->rowCount = 0; + continue; + } + + // Skip if not a number or a bind parameter (?) + if ( + ! ($token->type === TokenType::Number + || ($token->type === TokenType::Symbol && ($token->flags & Token::FLAG_SYMBOL_PARAMETER))) + ) { + break; + } + + if ($offset) { + $ret->offset = $token->value; + $offset = false; + } else { + $ret->rowCount = $token->value; + } + } + + if ($offset) { + $parser->error('An offset was expected.', $list->tokens[$list->idx - 1]); + } + + --$list->idx; + + return $ret; + } +} diff --git a/src/Parsers/LockExpressions.php b/src/Parsers/LockExpressions.php new file mode 100644 index 000000000..54241bbac --- /dev/null +++ b/src/Parsers/LockExpressions.php @@ -0,0 +1,164 @@ + $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): LockExpression + { + $ret = new LockExpression(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ---------------- [ tbl_name ] -----------------> 1 + * 1 ---------------- [ lock_type ] ----------------> 2 + * 2 -------------------- [ , ] --------------------> break + */ + $state = 0; + + $prevToken = null; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ( + $token->type === TokenType::Delimiter + || ($token->type === TokenType::Operator + && $token->value === ',') + ) { + break; + } + + if ($state === 0) { + $ret->table = Expressions::parse($parser, $list, ['parseField' => 'table']); + $state = 1; + } elseif ($state === 1) { + // parse lock type + $ret->type = self::parseLockType($parser, $list); + $state = 2; + } + + $prevToken = $token; + } + + // 2 is the only valid end state + if ($state !== 2) { + $parser->error('Unexpected end of LOCK expression.', $prevToken); + } + + --$list->idx; + + return $ret; + } + + private static function parseLockType(Parser $parser, TokensList $list): string + { + $lockType = ''; + + /** + * The state of the parser while parsing for lock type. + * + * Below are the states of the parser. + * + * 0 ---------------- [ READ ] -----------------> 1 + * 0 ------------- [ LOW_PRIORITY ] ------------> 2 + * 0 ---------------- [ WRITE ] ----------------> 3 + * 1 ---------------- [ LOCAL ] ----------------> 3 + * 2 ---------------- [ WRITE ] ----------------> 3 + */ + $state = 0; + + $prevToken = null; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ( + $token->type === TokenType::Delimiter + || ($token->type === TokenType::Operator + && $token->value === ',') + ) { + --$list->idx; + break; + } + + // Skipping whitespaces and comments. + if ($token->type === TokenType::Whitespace || $token->type === TokenType::Comment) { + continue; + } + + // We only expect keywords + if ($token->type !== TokenType::Keyword) { + $parser->error('Unexpected token.', $token); + break; + } + + if ($state === 0) { + if ($token->keyword === 'READ') { + $state = 1; + } elseif ($token->keyword === 'LOW_PRIORITY') { + $state = 2; + } elseif ($token->keyword === 'WRITE') { + $state = 3; + } else { + $parser->error('Unexpected keyword.', $token); + break; + } + + $lockType .= $token->keyword; + } elseif ($state === 1) { + if ($token->keyword !== 'LOCAL') { + $parser->error('Unexpected keyword.', $token); + break; + } + + $lockType .= ' ' . $token->keyword; + $state = 3; + } elseif ($state === 2) { + if ($token->keyword !== 'WRITE') { + $parser->error('Unexpected keyword.', $token); + break; + } + + $lockType .= ' ' . $token->keyword; + $state = 3; // parsing over + } + + $prevToken = $token; + } + + // Only two possible end states + if ($state !== 1 && $state !== 3) { + $parser->error('Unexpected end of LOCK expression.', $prevToken); + } + + return $lockType; + } +} diff --git a/src/Parsers/OptionsArrays.php b/src/Parsers/OptionsArrays.php new file mode 100644 index 000000000..f3dea83c7 --- /dev/null +++ b/src/Parsers/OptionsArrays.php @@ -0,0 +1,250 @@ + $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): OptionsArray + { + $ret = new OptionsArray(); + + /** + * The ID that will be assigned to duplicate options. + */ + $lastAssignedId = count($options) + 1; + + /** + * The option that was processed last time. + */ + $lastOption = null; + + /** + * The index of the option that was processed last time. + */ + $lastOptionId = 0; + + /** + * Counts brackets. + */ + $brackets = 0; + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ---------------------[ option ]----------------------> 1 + * + * 1 -------------------[ = (optional) ]------------------> 2 + * + * 2 ----------------------[ value ]----------------------> 0 + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping comments. + if ($token->type === TokenType::Comment) { + continue; + } + + // Skipping whitespace if not parsing value. + if (($token->type === TokenType::Whitespace) && ($brackets === 0)) { + continue; + } + + if ($lastOption === null) { + $upper = strtoupper($token->token); + if (! isset($options[$upper])) { + // There is no option to be processed. + break; + } + + $lastOption = $options[$upper]; + $lastOptionId = is_array($lastOption) ? + $lastOption[0] : $lastOption; + $state = 0; + + // Checking for option conflicts. + // For example, in `SELECT` statements the keywords `ALL` + // and `DISTINCT` conflict and if used together, they + // produce an invalid query. + // + // Usually, tokens can be identified in the array by the + // option ID, but if conflicts occur, a generated option ID + // is used. + // + // The first pseudo duplicate ID is the maximum value of the + // real options (e.g. if there are 5 options, the first + // fake ID is 6). + if (isset($ret->options[$lastOptionId])) { + $parser->error( + sprintf( + Translator::gettext('This option conflicts with "%1$s".'), + is_array($ret->options[$lastOptionId]) + ? $ret->options[$lastOptionId]['name'] + : $ret->options[$lastOptionId], + ), + $token, + ); + $lastOptionId = $lastAssignedId++; + } + } + + if ($state === 0) { + if (! is_array($lastOption)) { + // This is a just keyword option without any value. + // This is the beginning and the end of it. + $ret->options[$lastOptionId] = $token->value; + $lastOption = null; + $state = 0; + } elseif (($lastOption[1] === 'var') || ($lastOption[1] === 'var=')) { + // This is a keyword that is followed by a value. + // This is only the beginning. The value is parsed in state + // 1 and 2. State 1 is used to skip the first equals sign + // and state 2 to parse the actual value. + $ret->options[$lastOptionId] = [ + // @var string The name of the option. + 'name' => $token->value, + // @var bool Whether it contains an equal sign. + // This is used by the builder to rebuild it. + 'equals' => $lastOption[1] === 'var=', + // @var string Raw value. + 'expr' => '', + // @var string Processed value. + 'value' => '', + ]; + $state = 1; + } elseif ($lastOption[1] === 'expr' || $lastOption[1] === 'expr=') { + // This is a keyword that is followed by an expression. + // The expression is used by the specialized parser. + + // Skipping this option in order to parse the expression. + ++$list->idx; + $ret->options[$lastOptionId] = [ + // @var string The name of the option. + 'name' => $token->value, + // @var bool Whether it contains an equal sign. + // This is used by the builder to rebuild it. + 'equals' => $lastOption[1] === 'expr=', + // @var Expression The parsed expression. + 'expr' => '', + // No value when it is an expression. + 'value' => null, + ]; + $state = 1; + } + } elseif ($state === 1) { + $state = 2; + if ($token->token === '=') { + $ret->options[$lastOptionId]['equals'] = true; + continue; + } + } + + // This is outside the `elseif` group above because the change might + // change this iteration. + if ($state !== 2) { + continue; + } + + if ($lastOption[1] === 'expr' || $lastOption[1] === 'expr=') { + $expression = Expressions::parse( + $parser, + $list, + empty($lastOption[2]) ? [] : $lastOption[2], + ); + $ret->options[$lastOptionId]['expr'] = ''; + if ($expression !== null) { + $ret->options[$lastOptionId]['value'] = $expression->expr; + $ret->options[$lastOptionId]['expr'] = $expression; + } + + $lastOption = null; + $state = 0; + } else { + if ($token->token === '(') { + ++$brackets; + } elseif ($token->token === ')') { + --$brackets; + } + + $ret->options[$lastOptionId]['expr'] .= $token->token; + + if ( + ! (($token->token === '(') && ($brackets === 1) + || (($token->token === ')') && ($brackets === 0))) + ) { + // First pair of brackets is being skipped. + $ret->options[$lastOptionId]['value'] .= $token->value; + } + + // Checking if we finished parsing. + if ($brackets === 0) { + $lastOption = null; + } + } + } + + /* + * We reached the end of statement without getting a value + * for an option for which a value was required + */ + if ( + $state === 1 + && $lastOption + && ($lastOption[1] === 'expr' + || $lastOption[1] === 'var' + || $lastOption[1] === 'var=' + || $lastOption[1] === 'expr=') + ) { + $parser->error( + sprintf( + 'Value/Expression for the option %1$s was expected.', + $ret->options[$lastOptionId]['name'], + ), + $list->tokens[$list->idx - 1], + ); + } + + if (empty($options['_UNSORTED'])) { + ksort($ret->options); + } + + --$list->idx; + + return $ret; + } +} diff --git a/src/Parsers/OrderKeywords.php b/src/Parsers/OrderKeywords.php new file mode 100644 index 000000000..b4205570d --- /dev/null +++ b/src/Parsers/OrderKeywords.php @@ -0,0 +1,99 @@ + $options parameters for parsing + * + * @return OrderKeyword[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new OrderKeyword(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 --------------------[ expression ]-------------------> 1 + * + * 1 ------------------------[ , ]------------------------> 0 + * 1 -------------------[ ASC / DESC ]--------------------> 1 + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + $expr->expr = Expressions::parse($parser, $list); + $state = 1; + } else { + if ( + ($token->type === TokenType::Keyword) + && (($token->keyword === 'ASC') || ($token->keyword === 'DESC')) + ) { + $expr->type = OrderSortKeyword::from($token->keyword); + } elseif (($token->type === TokenType::Operator) && ($token->value === ',')) { + if (! empty($expr->expr)) { + $ret[] = $expr; + } + + $expr = new OrderKeyword(); + $state = 0; + } else { + break; + } + } + } + + // Last iteration was not processed. + if (! empty($expr->expr)) { + $ret[] = $expr; + } + + --$list->idx; + + return $ret; + } + + /** @param OrderKeyword[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(', ', $component); + } +} diff --git a/src/Parsers/ParameterDefinitions.php b/src/Parsers/ParameterDefinitions.php new file mode 100644 index 000000000..7821b11ae --- /dev/null +++ b/src/Parsers/ParameterDefinitions.php @@ -0,0 +1,111 @@ + $options parameters for parsing + * + * @return ParameterDefinition[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new ParameterDefinition(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 -----------------------[ ( ]------------------------> 1 + * + * 1 ----------------[ IN / OUT / INOUT ]----------------> 1 + * 1 ----------------------[ name ]----------------------> 2 + * + * 2 -------------------[ data type ]--------------------> 3 + * + * 3 ------------------------[ , ]-----------------------> 1 + * 3 ------------------------[ ) ]-----------------------> (END) + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + if (($token->type === TokenType::Operator) && ($token->value === '(')) { + $state = 1; + } + } elseif ($state === 1) { + if (($token->value === 'IN') || ($token->value === 'OUT') || ($token->value === 'INOUT')) { + $expr->inOut = $token->value; + ++$list->idx; + } elseif ($token->value === ')') { + ++$list->idx; + break; + } else { + $expr->name = $token->value; + $state = 2; + } + } elseif ($state === 2) { + $expr->type = DataTypes::parse($parser, $list); + $state = 3; + } else { + $ret[] = $expr; + $expr = new ParameterDefinition(); + if ($token->value === ',') { + $state = 1; + } elseif ($token->value === ')') { + ++$list->idx; + break; + } + } + } + + // Last iteration was not saved. + if (isset($expr->name) && ($expr->name !== '')) { + $ret[] = $expr; + } + + --$list->idx; + + return $ret; + } + + /** @param ParameterDefinition[] $component the component to be built */ + public static function buildAll(array $component): string + { + return '(' . implode(', ', $component) . ')'; + } +} diff --git a/src/Parsers/PartitionDefinitions.php b/src/Parsers/PartitionDefinitions.php new file mode 100644 index 000000000..cca15f3c0 --- /dev/null +++ b/src/Parsers/PartitionDefinitions.php @@ -0,0 +1,184 @@ +> + * @psalm-var array [ + 1, + 'var', + ], + 'ENGINE' => [ + 1, + 'var', + ], + 'COMMENT' => [ + 2, + 'var', + ], + 'DATA DIRECTORY' => [ + 3, + 'var', + ], + 'INDEX DIRECTORY' => [ + 4, + 'var', + ], + 'MAX_ROWS' => [ + 5, + 'var', + ], + 'MIN_ROWS' => [ + 6, + 'var', + ], + 'TABLESPACE' => [ + 7, + 'var', + ], + 'NODEGROUP' => [ + 8, + 'var', + ], + ]; + + /** + * @param Parser $parser the parser that serves as context + * @param TokensList $list the list of tokens that are being parsed + * @param array $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): PartitionDefinition + { + $ret = new PartitionDefinition(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 -------------[ PARTITION | SUBPARTITION ]------------> 1 + * + * 1 -----------------------[ name ]----------------------> 2 + * + * 2 ----------------------[ VALUES ]---------------------> 3 + * + * 3 ---------------------[ LESS THAN ]-------------------> 4 + * 3 ------------------------[ IN ]-----------------------> 4 + * + * 4 -----------------------[ expr ]----------------------> 5 + * + * 5 ----------------------[ options ]--------------------> 6 + * + * 6 ------------------[ subpartitions ]------------------> (END) + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + $ret->isSubpartition = ($token->type === TokenType::Keyword) && ($token->keyword === 'SUBPARTITION'); + $state = 1; + } elseif ($state === 1) { + $ret->name = (string) $token->value; + + // Looking ahead for a 'VALUES' keyword. + // Loop until the end of the partition name (delimited by a whitespace) + while ($nextToken = $list->tokens[++$list->idx]) { + if ($nextToken->type !== TokenType::None) { + break; + } + + $ret->name .= $nextToken->value; + } + + $idx = $list->idx--; + // Get the first token after the white space. + $nextToken = $list->tokens[++$idx]; + + $state = ($nextToken->type === TokenType::Keyword) + && ($nextToken->value === 'VALUES') + ? 2 : 5; + } elseif ($state === 2) { + $state = 3; + } elseif ($state === 3) { + $ret->type = $token->value; + $state = 4; + } elseif ($state === 4) { + if ($token->value === 'MAXVALUE') { + $ret->expr = $token->value; + } else { + $ret->expr = Expressions::parse( + $parser, + $list, + [ + 'parenthesesDelimited' => true, + 'breakOnAlias' => true, + ], + ); + } + + $state = 5; + } elseif ($state === 5) { + $ret->options = OptionsArrays::parse($parser, $list, static::$partitionOptions); + $state = 6; + } elseif ($state === 6) { + if (($token->type === TokenType::Operator) && ($token->value === '(')) { + $ret->subpartitions = ArrayObjs::parse( + $parser, + $list, + ['type' => self::class], + ); + ++$list->idx; + } + + break; + } + } + + --$list->idx; + + return $ret; + } + + /** @param PartitionDefinition[] $component the component to be built */ + public static function buildAll(array $component): string + { + return "(\n" . implode(",\n", $component) . "\n)"; + } +} diff --git a/src/Parsers/References.php b/src/Parsers/References.php new file mode 100644 index 000000000..1c89c68a4 --- /dev/null +++ b/src/Parsers/References.php @@ -0,0 +1,98 @@ + [ + 1, + 'var', + ], + 'ON DELETE' => [ + 2, + 'var', + ], + 'ON UPDATE' => [ + 3, + 'var', + ], + ]; + + /** + * @param Parser $parser the parser that serves as context + * @param TokensList $list the list of tokens that are being parsed + * @param array $options parameters for parsing + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): Reference + { + $ret = new Reference(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ----------------------[ table ]---------------------> 1 + * + * 1 ---------------------[ columns ]--------------------> 2 + * + * 2 ---------------------[ options ]--------------------> (END) + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + $ret->table = Expressions::parse( + $parser, + $list, + [ + 'parseField' => 'table', + 'breakOnAlias' => true, + ], + ); + $state = 1; + } elseif ($state === 1) { + $ret->columns = ArrayObjs::parse($parser, $list)->values; + $state = 2; + } else { + $ret->options = OptionsArrays::parse($parser, $list, self::REFERENCES_OPTIONS); + ++$list->idx; + break; + } + } + + --$list->idx; + + return $ret; + } +} diff --git a/src/Parsers/RenameOperations.php b/src/Parsers/RenameOperations.php new file mode 100644 index 000000000..71f29036c --- /dev/null +++ b/src/Parsers/RenameOperations.php @@ -0,0 +1,130 @@ + $options parameters for parsing + * + * @return RenameOperation[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new RenameOperation(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ---------------------[ old name ]--------------------> 1 + * + * 1 ------------------------[ TO ]-----------------------> 2 + * + * 2 ---------------------[ new name ]--------------------> 3 + * + * 3 ------------------------[ , ]------------------------> 0 + * 3 -----------------------[ else ]----------------------> (END) + */ + $state = 0; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + if ($state === 0) { + $expr->old = Expressions::parse( + $parser, + $list, + [ + 'breakOnAlias' => true, + 'parseField' => 'table', + ], + ); + if (empty($expr->old)) { + $parser->error('The old name of the table was expected.', $token); + } + + $state = 1; + } elseif ($state === 1) { + if ($token->type !== TokenType::Keyword || $token->keyword !== 'TO') { + $parser->error('Keyword "TO" was expected.', $token); + break; + } + + $state = 2; + } elseif ($state === 2) { + $expr->new = Expressions::parse( + $parser, + $list, + [ + 'breakOnAlias' => true, + 'parseField' => 'table', + ], + ); + if (empty($expr->new)) { + $parser->error('The new name of the table was expected.', $token); + } + + $state = 3; + } else { + if (($token->type !== TokenType::Operator) || ($token->value !== ',')) { + break; + } + + $ret[] = $expr; + $expr = new RenameOperation(); + $state = 0; + } + } + + if ($state !== 3) { + $parser->error('A rename operation was expected.', $list->tokens[$list->idx - 1]); + } + + // Last iteration was not saved. + if (! empty($expr->old)) { + $ret[] = $expr; + } + + --$list->idx; + + return $ret; + } + + /** @param RenameOperation[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(', ', $component); + } +} diff --git a/src/Parsers/SetOperations.php b/src/Parsers/SetOperations.php new file mode 100644 index 000000000..aa2b3b6ab --- /dev/null +++ b/src/Parsers/SetOperations.php @@ -0,0 +1,121 @@ + $options parameters for parsing + * + * @return SetOperation[] + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): array + { + $ret = []; + + $expr = new SetOperation(); + + /** + * The state of the parser. + * + * Below are the states of the parser. + * + * 0 ---------------------[ col_name ]--------------------> 0 + * 0 ---------------------[ = or := ]---------------------> 1 + * 1 -----------------------[ value ]---------------------> 1 + * 1 ------------------------[ , ]------------------------> 0 + */ + $state = 0; + + /** + * Token when the parser has seen the latest comma + */ + $commaLastSeenAt = null; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Skipping whitespaces and comments. + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { + continue; + } + + // No keyword is expected. + if ( + ($token->type === TokenType::Keyword) + && ($token->flags & Token::FLAG_KEYWORD_RESERVED) + && ($state === 0) + ) { + break; + } + + if ($state === 0) { + if (in_array($token->token, ['=', ':='], true)) { + $state = 1; + } elseif ($token->value !== ',') { + $expr->column .= $token->token; + } elseif ($token->value === ',') { + $commaLastSeenAt = $token; + } + } else { + $tmp = Expressions::parse( + $parser, + $list, + ['breakOnAlias' => true], + ); + if ($tmp === null) { + $parser->error('Missing expression.', $token); + break; + } + + $expr->column = trim($expr->column); + $expr->value = $tmp->expr; + $ret[] = $expr; + $expr = new SetOperation(); + $state = 0; + $commaLastSeenAt = null; + } + } + + --$list->idx; + + // We saw a comma, but didn't see a column-value pair after it + if ($commaLastSeenAt !== null) { + $parser->error('Unexpected token.', $commaLastSeenAt); + } + + return $ret; + } + + /** @param SetOperation[] $component the component to be built */ + public static function buildAll(array $component): string + { + return implode(', ', $component); + } +} diff --git a/src/Parsers/UnionKeywords.php b/src/Parsers/UnionKeywords.php new file mode 100644 index 000000000..59312c402 --- /dev/null +++ b/src/Parsers/UnionKeywords.php @@ -0,0 +1,45 @@ + $options parameters for parsing + * + * @throws RuntimeException not implemented yet. + */ + public static function parse(Parser $parser, TokensList $list, array $options = []): never + { + throw new RuntimeException(Translator::gettext('Not implemented yet.')); + } + + /** @param list $component the component to be built */ + public static function buildAll(array $component): string + { + $tmp = []; + foreach ($component as $componentPart) { + $tmp[] = $componentPart[0] . ' ' . $componentPart[1]; + } + + return implode(' ', $tmp); + } +} diff --git a/src/Statement.php b/src/Statement.php index d63d86a03..db03a6f7b 100644 --- a/src/Statement.php +++ b/src/Statement.php @@ -4,15 +4,23 @@ namespace PhpMyAdmin\SqlParser; +use AllowDynamicProperties; use PhpMyAdmin\SqlParser\Components\OptionsArray; +use PhpMyAdmin\SqlParser\Exceptions\ParserException; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; +use PhpMyAdmin\SqlParser\Statements\SelectStatement; +use PhpMyAdmin\SqlParser\Statements\SetStatement; +use PhpMyAdmin\SqlParser\Utils\Query; use Stringable; use function array_flip; +use function array_key_exists; use function array_keys; use function array_push; -use function count; -use function in_array; -use function stripos; +use function is_array; +use function is_string; +use function str_contains; +use function strtoupper; use function trim; /** @@ -22,7 +30,7 @@ * * Abstract statement definition. */ -#[\AllowDynamicProperties] +#[AllowDynamicProperties] abstract class Statement implements Stringable { /** @@ -45,65 +53,42 @@ abstract class Statement implements Stringable * @var array> * @psalm-var arraygetClauses(); - - foreach ($clauses as $clause) { - /** - * The name of the clause. - * - * @var string - */ - $name = $clause[0]; - - /** - * The type of the clause. - * - * @see self::$CLAUSES - * - * @var int - */ - $type = $clause[1]; - - /** - * The builder (parser) of this clause. - * - * @var Component - */ - $class = Parser::$KEYWORD_PARSERS[$name]['class']; - + foreach ($this->getClauses() as [$name, $type]) { /** * The name of the field that is used as source for the builder. * Same field is used to store the result of parsing. - * - * @var string */ - $field = Parser::$KEYWORD_PARSERS[$name]['field']; + $field = Parser::KEYWORD_PARSERS[$name]['field']; // The field is empty, there is nothing to be built. if (empty($this->$field)) { @@ -181,7 +132,7 @@ public function build() } // Checking if this field was already built. - if ($type & 1) { + if ($type & self::ADD_CLAUSE) { if (! empty($built[$field])) { continue; } @@ -190,16 +141,21 @@ public function build() } // Checking if the name of the clause should be added. - if ($type & 2) { + if ($type & self::ADD_KEYWORD) { $query = trim($query) . ' ' . $name; } // Checking if the result of the builder should be added. - if (! ($type & 1)) { + if (! ($type & self::ADD_CLAUSE)) { continue; } - $query = trim($query) . ' ' . $class::build($this->$field); + if (is_array($this->$field)) { + $class = Parser::KEYWORD_PARSERS[$name]['class']; + $query = trim($query) . ' ' . $class::buildAll($this->$field); + } else { + $query = trim($query) . ' ' . $this->$field->build(); + } } return $query; @@ -211,11 +167,9 @@ public function build() * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed * - * @return void - * - * @throws Exceptions\ParserException + * @throws ParserException */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { /** * Array containing all list of clauses parsed. @@ -231,7 +185,7 @@ public function parse(Parser $parser, TokensList $list) * For statements that do not have any options this is set to `true` by * default. */ - $parsedOptions = empty(static::$OPTIONS); + $parsedOptions = static::$statementOptions === []; for (; $list->idx < $list->count; ++$list->idx) { /** @@ -240,7 +194,7 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } @@ -253,8 +207,8 @@ public function parse(Parser $parser, TokensList $list) // Only keywords are relevant here. Other parts of the query are // processed in the functions below. - if ($token->type !== Token::TYPE_KEYWORD) { - if (($token->type !== Token::TYPE_COMMENT) && ($token->type !== Token::TYPE_WHITESPACE)) { + if ($token->type !== TokenType::Keyword) { + if (($token->type !== TokenType::Comment) && ($token->type !== TokenType::Whitespace)) { $parser->error('Unexpected token.', $token); } @@ -273,43 +227,13 @@ public function parse(Parser $parser, TokensList $list) break; } - $lastIdx = $list->idx; - - // ON DUPLICATE KEY UPDATE ... - // has to be parsed in parent statement (INSERT or REPLACE) - // so look for it and break - if ($this instanceof Statements\SelectStatement && $token->value === 'ON') { - ++$list->idx; // Skip ON - - // look for ON DUPLICATE KEY UPDATE - $first = $list->getNextOfType(Token::TYPE_KEYWORD); - $second = $list->getNextOfType(Token::TYPE_KEYWORD); - $third = $list->getNextOfType(Token::TYPE_KEYWORD); - - if ( - $first && $second && $third - && $first->value === 'DUPLICATE' - && $second->value === 'KEY' - && $third->value === 'UPDATE' - ) { - $list->idx = $lastIdx; - break; - } - } - - $list->idx = $lastIdx; - /** * The name of the class that is used for parsing. - * - * @var Component */ $class = null; /** * The name of the field where the result of the parsing is stored. - * - * @var string */ $field = null; @@ -320,10 +244,16 @@ public function parse(Parser $parser, TokensList $list) // Looking for duplicated clauses. if ( - ! empty(Parser::$KEYWORD_PARSERS[$token->value]) - || ! empty(Parser::$STATEMENT_PARSERS[$token->value]) + is_string($token->value) + && ( + isset(Parser::KEYWORD_PARSERS[$token->value]) + || ( + isset(Parser::STATEMENT_PARSERS[$token->value]) + && Parser::STATEMENT_PARSERS[$token->value] !== '' + ) + ) ) { - if (! empty($parsedClauses[$token->value])) { + if (array_key_exists($token->value, $parsedClauses)) { $parser->error('This type of clause was previously parsed.', $token); break; } @@ -332,72 +262,55 @@ public function parse(Parser $parser, TokensList $list) } // Checking if this is the beginning of a clause. - // Fix Issue #221: As `truncate` is not a keyword + // Fix Issue #221: As `truncate` is not a keyword, // but it might be the beginning of a statement of truncate, // so let the value use the keyword field for truncate type. - $tokenValue = in_array($token->keyword, ['TRUNCATE']) ? $token->keyword : $token->value; - if (! empty(Parser::$KEYWORD_PARSERS[$tokenValue]) && $list->idx < $list->count) { - $class = Parser::$KEYWORD_PARSERS[$tokenValue]['class']; - $field = Parser::$KEYWORD_PARSERS[$tokenValue]['field']; - if (! empty(Parser::$KEYWORD_PARSERS[$tokenValue]['options'])) { - $options = Parser::$KEYWORD_PARSERS[$tokenValue]['options']; + $tokenValue = $token->keyword === 'TRUNCATE' ? $token->keyword : $token->value; + if (is_string($tokenValue) && isset(Parser::KEYWORD_PARSERS[$tokenValue]) && $list->idx < $list->count) { + $class = Parser::KEYWORD_PARSERS[$tokenValue]['class']; + $field = Parser::KEYWORD_PARSERS[$tokenValue]['field']; + if (isset(Parser::KEYWORD_PARSERS[$tokenValue]['options'])) { + $options = Parser::KEYWORD_PARSERS[$tokenValue]['options']; } } // Checking if this is the beginning of the statement. - if (! empty(Parser::$STATEMENT_PARSERS[$token->keyword])) { - if ( - ! empty(static::$CLAUSES) // Undefined for some statements. - && empty(static::$CLAUSES[$token->value]) - ) { + if ( + isset(Parser::STATEMENT_PARSERS[$token->keyword]) + && Parser::STATEMENT_PARSERS[$token->keyword] !== '' + ) { + if (static::$clauses !== [] && is_string($token->value) && ! isset(static::$clauses[$token->value])) { // Some keywords (e.g. `SET`) may be the beginning of a // statement and a clause. - // If such keyword was found and it cannot be a clause of + // If such keyword was found, and it cannot be a clause of // this statement it means it is a new statement, but no // delimiter was found between them. $parser->error( 'A new statement was found, but no delimiter between it and the previous one.', - $token + $token, ); break; } if (! $parsedOptions) { - if (empty(static::$OPTIONS[$token->value])) { + if (! array_key_exists((string) $token->value, static::$statementOptions)) { // Skipping keyword because if it is not a option. ++$list->idx; } - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); $parsedOptions = true; } } elseif ($class === null) { - if ($this instanceof Statements\SelectStatement && $token->value === 'WITH ROLLUP') { - // Handle group options in Select statement - // See Statements\SelectStatement::$GROUP_OPTIONS - $this->group_options = OptionsArray::parse($parser, $list, static::$GROUP_OPTIONS); - } elseif ( - $this instanceof Statements\SelectStatement - && ($token->value === 'FOR UPDATE' - || $token->value === 'LOCK IN SHARE MODE') - ) { - // Handle special end options in Select statement - // See Statements\SelectStatement::$END_OPTIONS - $this->end_options = OptionsArray::parse($parser, $list, static::$END_OPTIONS); - } elseif ( - $this instanceof Statements\SetStatement - && ($token->value === 'COLLATE' - || $token->value === 'DEFAULT') - ) { - // Handle special end options in SET statement - // See Statements\SetStatement::$END_OPTIONS - $this->end_options = OptionsArray::parse($parser, $list, static::$END_OPTIONS); - } else { + if (! ($this instanceof SetStatement) || ($token->value !== 'COLLATE' && $token->value !== 'DEFAULT')) { // There is no parser for this keyword and isn't the beginning // of a statement (so no options) either. $parser->error('Unrecognized keyword.', $token); continue; } + + // Handle special end options in SET statement + $this->endOptions = OptionsArrays::parse($parser, $list, SetStatement::STATEMENT_END_OPTIONS); } $this->before($parser, $list, $token); @@ -427,10 +340,8 @@ public function parse(Parser $parser, TokensList $list) * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed * @param Token $token the token that is being parsed - * - * @return void */ - public function before(Parser $parser, TokensList $list, Token $token) + public function before(Parser $parser, TokensList $list, Token $token): void { } @@ -440,22 +351,19 @@ public function before(Parser $parser, TokensList $list, Token $token) * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed * @param Token $token the token that is being parsed - * - * @return void */ - public function after(Parser $parser, TokensList $list, Token $token) + public function after(Parser $parser, TokensList $list, Token $token): void { } /** * Gets the clauses of this statement. * - * @return array> - * @psalm-return array + * @return array}> */ - public function getClauses() + public function getClauses(): array { - return static::$CLAUSES; + return static::$clauses; } /** @@ -469,8 +377,10 @@ public function getClauseOrder(): array $clauses = []; foreach (array_keys($this->getClauses()) as $key) { if ($key === '_END_OPTIONS') { - if (static::$END_OPTIONS !== []) { - array_push($clauses, ...array_keys(static::$END_OPTIONS)); + // phpcs:ignore SlevomatCodingStandard.Classes.DisallowLateStaticBindingForConstants + if (static::STATEMENT_END_OPTIONS !== []) { + // phpcs:ignore SlevomatCodingStandard.Classes.DisallowLateStaticBindingForConstants + array_push($clauses, ...array_keys(static::STATEMENT_END_OPTIONS)); } } else { $clauses[] = $key; @@ -484,10 +394,8 @@ public function getClauseOrder(): array * Builds the string representation of this statement. * * @see static::build - * - * @return string */ - public function __toString() + public function __toString(): string { return $this->build(); } @@ -500,15 +408,13 @@ public function __toString() * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed * - * @return bool - * - * @throws Exceptions\ParserException + * @throws ParserException */ - public function validateClauseOrder($parser, $list) + public function validateClauseOrder(Parser $parser, TokensList $list): bool { $clauses = array_flip(array_keys($this->getClauses())); - if (empty($clauses) || count($clauses) === 0) { + if ($clauses === []) { return true; } @@ -518,8 +424,6 @@ public function validateClauseOrder($parser, $list) * For tracking JOIN clauses in a query * = 0 - JOIN not found till now * > 0 - Index of first JOIN clause in the statement. - * - * @var int */ $minJoin = 0; @@ -529,19 +433,17 @@ public function validateClauseOrder($parser, $list) * > 0 - Index of last JOIN clause * (which appears together with other JOINs) * in the statement. - * - * @var int */ $maxJoin = 0; $error = 0; $lastIdx = 0; - foreach ($clauses as $clauseType => $index) { - $clauseStartIdx = Utils\Query::getClauseStartOffset($this, $list, $clauseType); + foreach (array_keys($clauses) as $clauseType) { + $clauseStartIdx = Query::getClauseStartOffset($this, $list, $clauseType); if ( $clauseStartIdx !== -1 - && $this instanceof Statements\SelectStatement + && $this instanceof SelectStatement && ($clauseType === 'FORCE' || $clauseType === 'IGNORE' || $clauseType === 'USE') @@ -553,13 +455,14 @@ public function validateClauseOrder($parser, $list) // Handle ordering of Multiple Joins in a query if ($clauseStartIdx !== -1) { - if ($minJoin === 0 && stripos($clauseType, 'JOIN')) { + $containsJoinClause = str_contains(strtoupper($clauseType), 'JOIN'); + if ($minJoin === 0 && $containsJoinClause) { // First JOIN clause is detected $minJoin = $maxJoin = $clauseStartIdx; - } elseif ($minJoin !== 0 && ! stripos($clauseType, 'JOIN')) { + } elseif ($minJoin !== 0 && ! $containsJoinClause) { // After a previous JOIN clause, a non-JOIN clause has been detected $maxJoin = $lastIdx; - } elseif ($maxJoin < $clauseStartIdx && stripos($clauseType, 'JOIN')) { + } elseif ($maxJoin < $clauseStartIdx && $containsJoinClause) { $error = 1; } } diff --git a/src/Statements/AlterStatement.php b/src/Statements/AlterStatement.php index 3c13f5769..40cda95f3 100644 --- a/src/Statements/AlterStatement.php +++ b/src/Statements/AlterStatement.php @@ -6,11 +6,13 @@ use PhpMyAdmin\SqlParser\Components\AlterOperation; use PhpMyAdmin\SqlParser\Components\Expression; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\AlterOperations; +use PhpMyAdmin\SqlParser\Parsers\Expressions; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function implode; use function trim; @@ -22,17 +24,15 @@ class AlterStatement extends Statement { /** * Table affected. - * - * @var Expression|null */ - public $table; + public Expression|null $table = null; /** * Column affected by this statement. * * @var AlterOperation[]|null */ - public $altered = []; + public array|null $altered = []; /** * Options of this statement. @@ -40,7 +40,7 @@ class AlterStatement extends Statement * @var array> * @psalm-var array 1, 'OFFLINE' => 1, 'IGNORE' => 2, @@ -64,10 +64,10 @@ class AlterStatement extends Statement * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { ++$list->idx; // Skipping `ALTER`. - $parsedOptions = OptionsArray::parse($parser, $list, static::$OPTIONS); + $parsedOptions = OptionsArrays::parse($parser, $list, static::$statementOptions); if ($parsedOptions->isEmpty()) { $parser->error('Unrecognized alter operation.', $list->tokens[$list->idx]); @@ -78,13 +78,13 @@ public function parse(Parser $parser, TokensList $list) ++$list->idx; // Parsing affected table. - $this->table = Expression::parse( + $this->table = Expressions::parse( $parser, $list, [ 'parseField' => 'table', 'breakOnAlias' => true, - ] + ], ); ++$list->idx; // Skipping field. @@ -96,8 +96,6 @@ public function parse(Parser $parser, TokensList $list) * 0 -----------------[ alter operation ]-----------------> 1 * * 1 -------------------------[ , ]-----------------------> 0 - * - * @var int */ $state = 0; @@ -108,55 +106,52 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } if ($state === 0) { $options = []; if ($this->options->has('DATABASE')) { - $options = AlterOperation::$DB_OPTIONS; + $options = AlterOperations::DATABASE_OPTIONS; } elseif ($this->options->has('TABLE')) { - $options = AlterOperation::$TABLE_OPTIONS; + $options = AlterOperations::TABLE_OPTIONS; } elseif ($this->options->has('VIEW')) { - $options = AlterOperation::$VIEW_OPTIONS; + $options = AlterOperations::VIEW_OPTIONS; } elseif ($this->options->has('USER')) { - $options = AlterOperation::$USER_OPTIONS; + $options = AlterOperations::USER_OPTIONS; } elseif ($this->options->has('EVENT')) { - $options = AlterOperation::$EVENT_OPTIONS; + $options = AlterOperations::EVENT_OPTIONS; } elseif ($this->options->has('FUNCTION') || $this->options->has('PROCEDURE')) { - $options = AlterOperation::$ROUTINE_OPTIONS; + $options = AlterOperations::ROUTINE_OPTIONS; } - $this->altered[] = AlterOperation::parse($parser, $list, $options); + $this->altered[] = AlterOperations::parse($parser, $list, $options); $state = 1; } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { + if (($token->type === TokenType::Operator) && ($token->value === ',')) { $state = 0; } } } } - /** - * @return string - */ - public function build() + public function build(): string { $tmp = []; foreach ($this->altered as $altered) { - $tmp[] = $altered::build($altered); + $tmp[] = $altered->build(); } return trim( - 'ALTER ' . OptionsArray::build($this->options) - . ' ' . Expression::build($this->table) - . ' ' . implode(', ', $tmp) + 'ALTER ' . $this->options->build() + . ' ' . $this->table->build() + . ' ' . implode(', ', $tmp), ); } } diff --git a/src/Statements/AnalyzeStatement.php b/src/Statements/AnalyzeStatement.php index d61f23244..b32fdde52 100644 --- a/src/Statements/AnalyzeStatement.php +++ b/src/Statements/AnalyzeStatement.php @@ -21,7 +21,7 @@ class AnalyzeStatement extends Statement * @var array> * @psalm-var array 1, 'NO_WRITE_TO_BINLOG' => 2, @@ -33,5 +33,5 @@ class AnalyzeStatement extends Statement * * @var Expression[]|null */ - public $tables; + public array|null $tables = null; } diff --git a/src/Statements/BackupStatement.php b/src/Statements/BackupStatement.php index d7bccd20a..f0e1fb439 100644 --- a/src/Statements/BackupStatement.php +++ b/src/Statements/BackupStatement.php @@ -17,7 +17,7 @@ class BackupStatement extends MaintenanceStatement * @var array> * @psalm-var array 1, 'NO_WRITE_TO_BINLOG' => 2, diff --git a/src/Statements/CallStatement.php b/src/Statements/CallStatement.php index 245a0a67c..f39c52cb8 100644 --- a/src/Statements/CallStatement.php +++ b/src/Statements/CallStatement.php @@ -22,17 +22,13 @@ class CallStatement extends Statement { /** * The name of the function and its parameters. - * - * @var FunctionCall|null */ - public $call; + public FunctionCall|null $call = null; /** * Build statement for CALL. - * - * @return string */ - public function build() + public function build(): string { return 'CALL ' . $this->call->name . '(' . ($this->call->parameters ? implode(',', $this->call->parameters->raw) : '') . ')'; diff --git a/src/Statements/CheckStatement.php b/src/Statements/CheckStatement.php index 173da0e64..47a805c50 100644 --- a/src/Statements/CheckStatement.php +++ b/src/Statements/CheckStatement.php @@ -17,7 +17,7 @@ class CheckStatement extends MaintenanceStatement * @var array> * @psalm-var array 1, 'FOR UPGRADE' => 2, diff --git a/src/Statements/ChecksumStatement.php b/src/Statements/ChecksumStatement.php index 3294b79f9..4b662e1a6 100644 --- a/src/Statements/ChecksumStatement.php +++ b/src/Statements/ChecksumStatement.php @@ -17,7 +17,7 @@ class ChecksumStatement extends MaintenanceStatement * @var array> * @psalm-var array 1, 'QUICK' => 2, diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php index 061003736..7b2b65a52 100644 --- a/src/Statements/CreateStatement.php +++ b/src/Statements/CreateStatement.php @@ -12,11 +12,21 @@ use PhpMyAdmin\SqlParser\Components\ParameterDefinition; use PhpMyAdmin\SqlParser\Components\PartitionDefinition; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\ArrayObjs; +use PhpMyAdmin\SqlParser\Parsers\CreateDefinitions; +use PhpMyAdmin\SqlParser\Parsers\DataTypes; +use PhpMyAdmin\SqlParser\Parsers\Expressions; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; +use PhpMyAdmin\SqlParser\Parsers\ParameterDefinitions; +use PhpMyAdmin\SqlParser\Parsers\PartitionDefinitions; use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; +use PhpMyAdmin\SqlParser\Utils\ForeignKey; use function is_array; +use function str_replace; use function trim; /** @@ -30,7 +40,7 @@ class CreateStatement extends Statement * @var array> * @psalm-var array 1, @@ -73,11 +83,8 @@ class CreateStatement extends Statement /** * All database options. - * - * @var array> - * @psalm-var array [ 1, 'var=', @@ -106,11 +113,8 @@ class CreateStatement extends Statement /** * All table options. - * - * @var array> - * @psalm-var array [ 1, 'var=', @@ -223,11 +227,8 @@ class CreateStatement extends Statement /** * All function options. - * - * @var array> - * @psalm-var array [ 2, 'var', @@ -263,11 +264,8 @@ class CreateStatement extends Statement /** * All trigger options. - * - * @var array> - * @psalm-var array 1, 'AFTER' => 1, 'INSERT' => 2, @@ -279,23 +277,19 @@ class CreateStatement extends Statement * The name of the entity that is created. * * Used by all `CREATE` statements. - * - * @var Expression|null */ - public $name; + public Expression|null $name = null; /** * The options of the entity (table, procedure, function, etc.). * * Used by `CREATE TABLE`, `CREATE FUNCTION` and `CREATE PROCEDURE`. * - * @see static::$TABLE_OPTIONS - * @see static::$FUNC_OPTIONS - * @see static::$TRIGGER_OPTIONS - * - * @var OptionsArray|null + * @see CreateStatement::TABLE_OPTIONS + * @see CreateStatement::FUNCTION_OPTIONS + * @see CreateStatement::TRIGGER_OPTIONS */ - public $entityOptions; + public OptionsArray|null $entityOptions = null; /** * If `CREATE TABLE`, a list of columns and keys. @@ -305,7 +299,7 @@ class CreateStatement extends Statement * * @var CreateDefinition[]|ArrayObj|null */ - public $fields; + public array|ArrayObj|null $fields = null; /** * If `CREATE TABLE WITH`. @@ -313,82 +307,64 @@ class CreateStatement extends Statement * If `CREATE VIEW AS WITH`. * * Used by `CREATE TABLE`, `CREATE VIEW` - * - * @var WithStatement|null */ - public $with; + public WithStatement|null $with = null; /** * If `CREATE TABLE ... SELECT`. * If `CREATE VIEW AS ` ... SELECT`. * * Used by `CREATE TABLE`, `CREATE VIEW` - * - * @var SelectStatement|null */ - public $select; + public SelectStatement|null $select = null; /** * If `CREATE TABLE ... LIKE`. * * Used by `CREATE TABLE` - * - * @var Expression|null */ - public $like; + public Expression|null $like = null; /** * Expression used for partitioning. - * - * @var string|null */ - public $partitionBy; + public string|null $partitionBy = null; /** * The number of partitions. - * - * @var int|null */ - public $partitionsNum; + public int|null $partitionsNum = null; /** * Expression used for subpartitioning. - * - * @var string|null */ - public $subpartitionBy; + public string|null $subpartitionBy = null; /** * The number of subpartitions. - * - * @var int|null */ - public $subpartitionsNum; + public int|null $subpartitionsNum = null; /** * The partition of the new table. * * @var PartitionDefinition[]|null */ - public $partitions; + public array|null $partitions = null; /** * If `CREATE TRIGGER` the name of the table. * * Used by `CREATE TRIGGER`. - * - * @var Expression|null */ - public $table; + public Expression|null $table = null; /** * The return data type of this routine. * * Used by `CREATE FUNCTION`. - * - * @var DataType|null */ - public $return; + public DataType|null $return = null; /** * The parameters of this routine. @@ -397,57 +373,54 @@ class CreateStatement extends Statement * * @var ParameterDefinition[]|null */ - public $parameters; + public array|null $parameters = null; /** * The body of this function or procedure. * For views, it is the select statement that creates the view. * Used by `CREATE FUNCTION`, `CREATE PROCEDURE` and `CREATE VIEW`. * - * @var Token[]|string + * @var Token[] */ - public $body = []; + public array $body = []; - /** - * @return string - */ - public function build() + public function build(): string { $fields = ''; - if (! empty($this->fields)) { + if ($this->fields !== null && $this->fields !== []) { if (is_array($this->fields)) { - $fields = CreateDefinition::build($this->fields) . ' '; - } elseif ($this->fields instanceof ArrayObj) { - $fields = ArrayObj::build($this->fields); + $fields = CreateDefinitions::buildAll($this->fields) . ' '; + } else { + $fields = $this->fields->build(); } } if ($this->options->has('DATABASE') || $this->options->has('SCHEMA')) { return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . OptionsArray::build($this->entityOptions); + . $this->options->build() . ' ' + . $this->name->build() . ' ' + . $this->entityOptions->build(); } if ($this->options->has('TABLE')) { if ($this->select !== null) { return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' + . $this->options->build() . ' ' + . $this->name->build() . ' ' . $this->select->build(); } if ($this->like !== null) { return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' LIKE ' - . Expression::build($this->like); + . $this->options->build() . ' ' + . $this->name->build() . ' LIKE ' + . $this->like->build(); } if ($this->with !== null) { return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' + . $this->options->build() . ' ' + . $this->name->build() . ' ' . $this->with->build(); } @@ -470,16 +443,18 @@ public function build() } if (! empty($this->partitions)) { - $partition .= "\n" . PartitionDefinition::build($this->partitions); + $partition .= "\n" . PartitionDefinitions::buildAll($this->partitions); } return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' + . $this->options->build() . ' ' + . $this->name->build() . ' ' . $fields - . OptionsArray::build($this->entityOptions) + . ($this->entityOptions?->build() ?? '') . $partition; - } elseif ($this->options->has('VIEW')) { + } + + if ($this->options->has('VIEW')) { $builtStatement = ''; if ($this->select !== null) { $builtStatement = $this->select->build(); @@ -488,64 +463,68 @@ public function build() } return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' + . $this->options->build() . ' ' + . $this->name->build() . ' ' . $fields . ' AS ' . $builtStatement - . (! empty($this->body) ? TokensList::build($this->body) : '') . ' ' - . OptionsArray::build($this->entityOptions); - } elseif ($this->options->has('TRIGGER')) { + . TokensList::buildFromArray($this->body) . ' ' + . ($this->entityOptions?->build() ?? ''); + } + + if ($this->options->has('TRIGGER')) { return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . OptionsArray::build($this->entityOptions) . ' ' - . 'ON ' . Expression::build($this->table) . ' ' - . 'FOR EACH ROW ' . TokensList::build($this->body); - } elseif ($this->options->has('PROCEDURE') || $this->options->has('FUNCTION')) { + . $this->options->build() . ' ' + . $this->name->build() . ' ' + . $this->entityOptions->build() . ' ' + . 'ON ' . $this->table->build() . ' ' + . 'FOR EACH ROW ' . TokensList::buildFromArray($this->body); + } + + if ($this->options->has('PROCEDURE') || $this->options->has('FUNCTION')) { $tmp = ''; if ($this->options->has('FUNCTION')) { - $tmp = 'RETURNS ' . DataType::build($this->return); + $tmp = 'RETURNS ' . $this->return->build(); } return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . ParameterDefinition::build($this->parameters) . ' ' - . $tmp . ' ' . OptionsArray::build($this->entityOptions) . ' ' - . TokensList::build($this->body); + . $this->options->build() . ' ' + . $this->name->build() . ' ' + . ParameterDefinitions::buildAll($this->parameters) . ' ' + . $tmp . ' ' . $this->entityOptions->build() . ' ' + . TokensList::buildFromArray($this->body); } return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . TokensList::build($this->body); + . $this->options->build() . ' ' + . $this->name->build() . ' ' + . TokensList::buildFromArray($this->body); } /** * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { ++$list->idx; // Skipping `CREATE`. // Parsing options. - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); ++$list->idx; // Skipping last option. $isDatabase = $this->options->has('DATABASE') || $this->options->has('SCHEMA'); $fieldName = $isDatabase ? 'database' : 'table'; // Parsing the field name. - $this->name = Expression::parse( + $this->name = Expressions::parse( $parser, $list, [ 'parseField' => $fieldName, 'breakOnAlias' => true, - ] + ], ); - if (! isset($this->name) || ($this->name === '')) { + if ($this->name === null) { $parser->error('The name of the entity was expected.', $list->tokens[$list->idx]); } else { ++$list->idx; // Skipping field. @@ -556,22 +535,22 @@ public function parse(Parser $parser, TokensList $list) */ $token = $list->tokens[$list->idx]; $nextidx = $list->idx + 1; - while ($nextidx < $list->count && $list->tokens[$nextidx]->type === Token::TYPE_WHITESPACE) { + while ($nextidx < $list->count && $list->tokens[$nextidx]->type === TokenType::Whitespace) { ++$nextidx; } if ($isDatabase) { - $this->entityOptions = OptionsArray::parse($parser, $list, static::$DB_OPTIONS); + $this->entityOptions = OptionsArrays::parse($parser, $list, self::DATABASE_OPTIONS); } elseif ($this->options->has('TABLE')) { - if (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'SELECT')) { + if (($token->type === TokenType::Keyword) && ($token->keyword === 'SELECT')) { /* CREATE TABLE ... SELECT */ $this->select = new SelectStatement($parser, $list); - } elseif ($token->type === Token::TYPE_KEYWORD && ($token->keyword === 'WITH')) { + } elseif ($token->type === TokenType::Keyword && ($token->keyword === 'WITH')) { /* CREATE TABLE WITH */ $this->with = new WithStatement($parser, $list); } elseif ( - ($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'AS') - && ($list->tokens[$nextidx]->type === Token::TYPE_KEYWORD) + ($token->type === TokenType::Keyword) && ($token->keyword === 'AS') + && ($list->tokens[$nextidx]->type === TokenType::Keyword) ) { if ($list->tokens[$nextidx]->value === 'SELECT') { /* CREATE TABLE ... AS SELECT */ @@ -582,36 +561,34 @@ public function parse(Parser $parser, TokensList $list) $list->idx = $nextidx; $this->with = new WithStatement($parser, $list); } - } elseif ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'LIKE') { + } elseif ($token->type === TokenType::Keyword && $token->keyword === 'LIKE') { /* CREATE TABLE `new_tbl` LIKE 'orig_tbl' */ $list->idx = $nextidx; - $this->like = Expression::parse( + $this->like = Expressions::parse( $parser, $list, [ 'parseField' => 'table', 'breakOnAlias' => true, - ] + ], ); // The 'LIKE' keyword was found, but no table_name was found next to it if ($this->like === null) { $parser->error('A table name was expected.', $list->tokens[$list->idx]); } } else { - $this->fields = CreateDefinition::parse($parser, $list); - if (empty($this->fields)) { + $this->fields = CreateDefinitions::parse($parser, $list); + if ($this->fields === []) { $parser->error('At least one column definition was expected.', $list->tokens[$list->idx]); } ++$list->idx; - $this->entityOptions = OptionsArray::parse($parser, $list, static::$TABLE_OPTIONS); + $this->entityOptions = OptionsArrays::parse($parser, $list, self::TABLE_OPTIONS); /** * The field that is being filled (`partitionBy` or * `subpartitionBy`). - * - * @var string */ $field = null; @@ -619,8 +596,6 @@ public function parse(Parser $parser, TokensList $list) * The number of brackets. `false` means no bracket was found * previously. At least one bracket is required to validate the * expression. - * - * @var int|bool */ $brackets = false; @@ -634,27 +609,27 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping comments. - if ($token->type === Token::TYPE_COMMENT) { + if ($token->type === TokenType::Comment) { continue; } - if (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'PARTITION BY')) { + if (($token->type === TokenType::Keyword) && ($token->keyword === 'PARTITION BY')) { $field = 'partitionBy'; $brackets = false; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'SUBPARTITION BY')) { + } elseif (($token->type === TokenType::Keyword) && ($token->keyword === 'SUBPARTITION BY')) { $field = 'subpartitionBy'; $brackets = false; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'PARTITIONS')) { - $token = $list->getNextOfType(Token::TYPE_NUMBER); + } elseif (($token->type === TokenType::Keyword) && ($token->keyword === 'PARTITIONS')) { + $token = $list->getNextOfType(TokenType::Number); --$list->idx; // `getNextOfType` also advances one position. $this->partitionsNum = $token->value; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'SUBPARTITIONS')) { - $token = $list->getNextOfType(Token::TYPE_NUMBER); + } elseif (($token->type === TokenType::Keyword) && ($token->keyword === 'SUBPARTITIONS')) { + $token = $list->getNextOfType(TokenType::Number); --$list->idx; // `getNextOfType` also advances one position. $this->subpartitionsNum = $token->value; } elseif (! empty($field)) { @@ -663,7 +638,7 @@ public function parse(Parser $parser, TokensList $list) */ // Counting brackets. - if ($token->type === Token::TYPE_OPERATOR) { + if ($token->type === TokenType::Operator) { if ($token->value === '(') { // This is used instead of `++$brackets` because, // initially, `$brackets` is `false` cannot be @@ -675,7 +650,7 @@ public function parse(Parser $parser, TokensList $list) } // Building the expression used for partitioning. - $this->$field .= $token->type === Token::TYPE_WHITESPACE ? ' ' : $token->token; + $this->$field .= $token->type === TokenType::Whitespace ? ' ' : $token->token; // Last bracket was read, the expression ended. // Comparing with `0` and not `false`, because `false` means @@ -685,12 +660,12 @@ public function parse(Parser $parser, TokensList $list) $this->$field = trim($this->$field); $field = null; } - } elseif (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { + } elseif (($token->type === TokenType::Operator) && ($token->value === '(')) { if (! empty($this->partitionBy)) { - $this->partitions = ArrayObj::parse( + $this->partitions = ArrayObjs::parse( $parser, $list, - ['type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition'] + ['type' => PartitionDefinitions::class], ); } @@ -699,26 +674,26 @@ public function parse(Parser $parser, TokensList $list) } } } elseif ($this->options->has('PROCEDURE') || $this->options->has('FUNCTION')) { - $this->parameters = ParameterDefinition::parse($parser, $list); + $this->parameters = ParameterDefinitions::parse($parser, $list); if ($this->options->has('FUNCTION')) { $prevToken = $token; - $token = $list->getNextOfType(Token::TYPE_KEYWORD); + $token = $list->getNextOfType(TokenType::Keyword); if ($token === null || $token->keyword !== 'RETURNS') { $parser->error('A "RETURNS" keyword was expected.', $token ?? $prevToken); } else { ++$list->idx; - $this->return = DataType::parse($parser, $list); + $this->return = DataTypes::parse($parser, $list); } } ++$list->idx; - $this->entityOptions = OptionsArray::parse($parser, $list, static::$FUNC_OPTIONS); + $this->entityOptions = OptionsArrays::parse($parser, $list, self::FUNCTION_OPTIONS); ++$list->idx; for (; $list->idx < $list->count; ++$list->idx) { $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } @@ -729,18 +704,18 @@ public function parse(Parser $parser, TokensList $list) $token = $list->getNext(); // Skipping whitespaces and comments. // Parsing columns list. - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { + if (($token->type === TokenType::Operator) && ($token->value === '(')) { --$list->idx; // getNext() also goes forward one field. - $this->fields = ArrayObj::parse($parser, $list); + $this->fields = ArrayObjs::parse($parser, $list); ++$list->idx; // Skipping last token from the array. $list->getNext(); } // Parsing the SELECT expression if the view started with it. if ( - $token->type === Token::TYPE_KEYWORD + $token->type === TokenType::Keyword && $token->keyword === 'AS' - && $list->tokens[$nextidx]->type === Token::TYPE_KEYWORD + && $list->tokens[$nextidx]->type === TokenType::Keyword ) { if ($list->tokens[$nextidx]->value === 'SELECT') { $list->idx = $nextidx; @@ -755,7 +730,7 @@ public function parse(Parser $parser, TokensList $list) // Parsing all other tokens for (; $list->idx < $list->count; ++$list->idx) { $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } @@ -763,29 +738,29 @@ public function parse(Parser $parser, TokensList $list) } } elseif ($this->options->has('TRIGGER')) { // Parsing the time and the event. - $this->entityOptions = OptionsArray::parse($parser, $list, static::$TRIGGER_OPTIONS); + $this->entityOptions = OptionsArrays::parse($parser, $list, self::TRIGGER_OPTIONS); ++$list->idx; - $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'ON'); + $list->getNextOfTypeAndValue(TokenType::Keyword, 'ON'); ++$list->idx; // Skipping `ON`. // Parsing the name of the table. - $this->table = Expression::parse( + $this->table = Expressions::parse( $parser, $list, [ 'parseField' => 'table', 'breakOnAlias' => true, - ] + ], ); ++$list->idx; - $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'FOR EACH ROW'); + $list->getNextOfTypeAndValue(TokenType::Keyword, 'FOR EACH ROW'); ++$list->idx; // Skipping `FOR EACH ROW`. for (; $list->idx < $list->count; ++$list->idx) { $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } @@ -794,7 +769,7 @@ public function parse(Parser $parser, TokensList $list) } else { for (; $list->idx < $list->count; ++$list->idx) { $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } @@ -802,4 +777,55 @@ public function parse(Parser $parser, TokensList $list) } } } + + /** @return list */ + public function getForeignKeys(): array + { + if (empty($this->fields) || ! is_array($this->fields) || ! $this->options->has('TABLE')) { + return []; + } + + $ret = []; + + foreach ($this->fields as $field) { + if ($field->key === null || $field->key->type !== 'FOREIGN KEY') { + continue; + } + + $columns = []; + foreach ($field->key->columns as $column) { + if (! isset($column['name'])) { + continue; + } + + $columns[] = $column['name']; + } + + $foreignKey = new ForeignKey(); + $foreignKey->constraint = $field->name; + $foreignKey->indexList = $columns; + + if ($field->references !== null) { + $foreignKey->refDbName = $field->references->table->database; + $foreignKey->refTableName = $field->references->table->table; + $foreignKey->refIndexList = $field->references->columns; + + $opt = $field->references->options->get('ON UPDATE'); + + if ($opt !== '') { + $foreignKey->onUpdate = str_replace(' ', '_', (string) $opt); + } + + $opt = $field->references->options->get('ON DELETE'); + + if ($opt !== '') { + $foreignKey->onDelete = str_replace(' ', '_', (string) $opt); + } + } + + $ret[] = $foreignKey; + } + + return $ret; + } } diff --git a/src/Statements/DeleteStatement.php b/src/Statements/DeleteStatement.php index 75a8c293c..697082ae9 100644 --- a/src/Statements/DeleteStatement.php +++ b/src/Statements/DeleteStatement.php @@ -7,17 +7,21 @@ use PhpMyAdmin\SqlParser\Components\ArrayObj; use PhpMyAdmin\SqlParser\Components\Condition; use PhpMyAdmin\SqlParser\Components\Expression; -use PhpMyAdmin\SqlParser\Components\ExpressionArray; use PhpMyAdmin\SqlParser\Components\JoinKeyword; use PhpMyAdmin\SqlParser\Components\Limit; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\OrderKeyword; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Conditions; +use PhpMyAdmin\SqlParser\Parsers\ExpressionArray; +use PhpMyAdmin\SqlParser\Parsers\Expressions; +use PhpMyAdmin\SqlParser\Parsers\JoinKeywords; +use PhpMyAdmin\SqlParser\Parsers\Limits; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; +use PhpMyAdmin\SqlParser\Parsers\OrderKeywords; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; -use function count; use function stripos; use function strlen; @@ -52,7 +56,7 @@ class DeleteStatement extends Statement * @var array> * @psalm-var array 1, 'QUICK' => 2, 'IGNORE' => 3, @@ -61,44 +65,43 @@ class DeleteStatement extends Statement /** * The clauses of this statement, in order. * - * @see Statement::$CLAUSES + * @see Statement::$clauses * - * @var array> - * @psalm-var array + * @var array}> */ - public static $CLAUSES = [ + public static array $clauses = [ 'DELETE' => [ 'DELETE', - 2, + Statement::ADD_KEYWORD, ], // Used for options. '_OPTIONS' => [ '_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], 'FROM' => [ 'FROM', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'PARTITION' => [ 'PARTITION', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'USING' => [ 'USING', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'WHERE' => [ 'WHERE', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'ORDER BY' => [ 'ORDER BY', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'LIMIT' => [ 'LIMIT', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], ]; @@ -107,90 +110,83 @@ class DeleteStatement extends Statement * * @var Expression[]|null */ - public $from; + public array|null $from = null; /** * Joins. * * @var JoinKeyword[]|null */ - public $join; + public array|null $join = null; /** * Tables used as sources for this statement. * * @var Expression[]|null */ - public $using; + public array|null $using = null; /** * Columns used in this statement. * * @var Expression[]|null */ - public $columns; + public array|null $columns = null; /** * Partitions used as source for this statement. - * - * @var ArrayObj|null */ - public $partition; + public ArrayObj|null $partition = null; /** * Conditions used for filtering each row of the result set. * * @var Condition[]|null */ - public $where; + public array|null $where = null; /** * Specifies the order of the rows in the result set. * * @var OrderKeyword[]|null */ - public $order; + public array|null $order = null; /** * Conditions used for limiting the size of the result set. - * - * @var Limit|null */ - public $limit; + public Limit|null $limit = null; - /** - * @return string - */ - public function build() + public function build(): string { - $ret = 'DELETE ' . OptionsArray::build($this->options); + $ret = 'DELETE ' . $this->options->build(); - if ($this->columns !== null && count($this->columns) > 0) { - $ret .= ' ' . ExpressionArray::build($this->columns); + if ($this->columns !== null && $this->columns !== []) { + $ret .= ' ' . Expressions::buildAll($this->columns); } - if ($this->from !== null && count($this->from) > 0) { - $ret .= ' FROM ' . ExpressionArray::build($this->from); + if ($this->from !== null && $this->from !== []) { + $ret .= ' FROM ' . Expressions::buildAll($this->from); } - if ($this->join !== null && count($this->join) > 0) { - $ret .= ' ' . JoinKeyword::build($this->join); + if ($this->join !== null && $this->join !== []) { + $ret .= ' ' . JoinKeywords::buildAll($this->join); } - if ($this->using !== null && count($this->using) > 0) { - $ret .= ' USING ' . ExpressionArray::build($this->using); + if ($this->using !== null && $this->using !== []) { + $ret .= ' USING ' . Expressions::buildAll($this->using); } - if ($this->where !== null && count($this->where) > 0) { - $ret .= ' WHERE ' . Condition::build($this->where); + if ($this->where !== null && $this->where !== []) { + $ret .= ' WHERE ' . Conditions::buildAll($this->where); } - if ($this->order !== null && count($this->order) > 0) { - $ret .= ' ORDER BY ' . ExpressionArray::build($this->order); + if ($this->order !== null && $this->order !== []) { + $ret .= ' ORDER BY ' . OrderKeywords::buildAll($this->order); } if ($this->limit !== null && strlen((string) $this->limit) > 0) { - $ret .= ' LIMIT ' . Limit::build($this->limit); + $ret .= ' LIMIT ' . $this->limit->build(); } return $ret; @@ -200,12 +196,12 @@ public function build() * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { ++$list->idx; // Skipping `DELETE`. // parse any options if provided - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); ++$list->idx; /** @@ -220,15 +216,11 @@ public function parse(Parser $parser, TokensList $list) * 2 --------------------------------[ WHERE ]----------------------------------> 4 * 2 --------------------------------[ ORDER ]----------------------------------> 5 * 2 --------------------------------[ LIMIT ]----------------------------------> 6 - * - * @var int */ $state = 0; /** * If the query is multi-table or not. - * - * @var bool */ $multiTable = false; @@ -239,12 +231,12 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { if ($token->keyword !== 'FROM') { $parser->error('Unexpected keyword.', $token); break; @@ -259,7 +251,7 @@ public function parse(Parser $parser, TokensList $list) $state = 1; } } elseif ($state === 1) { - if ($token->type !== Token::TYPE_KEYWORD) { + if ($token->type !== TokenType::Keyword) { $parser->error('Unexpected token.', $token); break; } @@ -274,10 +266,10 @@ public function parse(Parser $parser, TokensList $list) $state = 2; } elseif ($state === 2) { - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { if (stripos($token->keyword, 'JOIN') !== false) { ++$list->idx; - $this->join = JoinKeyword::parse($parser, $list); + $this->join = JoinKeywords::parse($parser, $list); // remain in state = 2 } else { @@ -291,17 +283,17 @@ public function parse(Parser $parser, TokensList $list) break; case 'WHERE': ++$list->idx; // Skip 'WHERE' - $this->where = Condition::parse($parser, $list); + $this->where = Conditions::parse($parser, $list); $state = 4; break; case 'ORDER BY': ++$list->idx; // Skip 'ORDER BY' - $this->order = OrderKeyword::parse($parser, $list); + $this->order = OrderKeywords::parse($parser, $list); $state = 5; break; case 'LIMIT': ++$list->idx; // Skip 'LIMIT' - $this->limit = Limit::parse($parser, $list); + $this->limit = Limits::parse($parser, $list); $state = 6; break; default: @@ -311,7 +303,7 @@ public function parse(Parser $parser, TokensList $list) } } } elseif ($state === 3) { - if ($token->type !== Token::TYPE_KEYWORD) { + if ($token->type !== TokenType::Keyword) { $parser->error('Unexpected token.', $token); break; } @@ -322,24 +314,24 @@ public function parse(Parser $parser, TokensList $list) } ++$list->idx; // Skip 'WHERE' - $this->where = Condition::parse($parser, $list); + $this->where = Conditions::parse($parser, $list); $state = 4; } elseif ($state === 4) { - if ($multiTable === true && $token->type === Token::TYPE_KEYWORD) { + if ($multiTable === true && $token->type === TokenType::Keyword) { $parser->error('This type of clause is not valid in Multi-table queries.', $token); break; } - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { switch ($token->keyword) { case 'ORDER BY': ++$list->idx; // Skip 'ORDER BY' - $this->order = OrderKeyword::parse($parser, $list); + $this->order = OrderKeywords::parse($parser, $list); $state = 5; break; case 'LIMIT': ++$list->idx; // Skip 'LIMIT' - $this->limit = Limit::parse($parser, $list); + $this->limit = Limits::parse($parser, $list); $state = 6; break; default: @@ -348,14 +340,14 @@ public function parse(Parser $parser, TokensList $list) } } } elseif ($state === 5) { - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { if ($token->keyword !== 'LIMIT') { $parser->error('Unexpected keyword.', $token); break; } ++$list->idx; // Skip 'LIMIT' - $this->limit = Limit::parse($parser, $list); + $this->limit = Limits::parse($parser, $list); $state = 6; } } diff --git a/src/Statements/DropStatement.php b/src/Statements/DropStatement.php index 5b9d556f3..26b6123f1 100644 --- a/src/Statements/DropStatement.php +++ b/src/Statements/DropStatement.php @@ -18,7 +18,7 @@ class DropStatement extends Statement * @var array> * @psalm-var array 1, 'EVENT' => 1, 'FUNCTION' => 1, @@ -40,29 +40,28 @@ class DropStatement extends Statement /** * The clauses of this statement, in order. * - * @see Statement::$CLAUSES + * @see Statement::$clauses * - * @var array> - * @psalm-var array + * @var array}> */ - public static $CLAUSES = [ + public static array $clauses = [ 'DROP' => [ 'DROP', - 2, + Statement::ADD_KEYWORD, ], // Used for options. '_OPTIONS' => [ '_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], // Used for select expressions. 'DROP_' => [ 'DROP', - 1, + Statement::ADD_CLAUSE, ], 'ON' => [ 'ON', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], ]; @@ -71,12 +70,10 @@ class DropStatement extends Statement * * @var Expression[]|null */ - public $fields; + public array|null $fields = null; /** * Table of the dropped index. - * - * @var Expression|null */ - public $table; + public Expression|null $table = null; } diff --git a/src/Statements/ExplainStatement.php b/src/Statements/ExplainStatement.php index c1e4eb77c..7976b456f 100644 --- a/src/Statements/ExplainStatement.php +++ b/src/Statements/ExplainStatement.php @@ -4,15 +4,14 @@ namespace PhpMyAdmin\SqlParser\Statements; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function array_slice; -use function count; /** * `EXPLAIN` statement. @@ -21,11 +20,8 @@ class ExplainStatement extends Statement { /** * Options for `EXPLAIN` statements. - * - * @var array> - * @psalm-var array 1, 'PARTITIONS' => 1, @@ -37,54 +33,42 @@ class ExplainStatement extends Statement /** * The parser of the statement to be explained - * - * @var Parser|null */ - public $bodyParser = null; + public Parser|null $bodyParser = null; /** * The statement alias, could be any of the following: * - {EXPLAIN | DESCRIBE | DESC} * - {EXPLAIN | DESCRIBE | DESC} ANALYZE * - ANALYZE - * - * @var string */ - public $statementAlias; + public string $statementAlias; /** * The connection identifier, if used. - * - * @var int|null */ - public $connectionId = null; + public int|null $connectionId = null; /** * The explained database for the table's name, if used. - * - * @var string|null */ - public $explainedDatabase = null; + public string|null $explainedDatabase = null; /** * The explained table's name, if used. - * - * @var string|null */ - public $explainedTable = null; + public string|null $explainedTable = null; /** * The explained column's name, if used. - * - * @var string|null */ - public $explainedColumn = null; + public string|null $explainedColumn = null; /** * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { /** * The state of the parser. @@ -100,8 +84,6 @@ public function parse(Parser $parser, TokensList $list) * 2 --------------[ tablename / STATEMENT / FOR CONNECTION ]---------------------> 2 * * 3 -----------------------------[ tablename ]-----------------------------------> 3 - * - * @var int */ $state = 0; @@ -120,13 +102,13 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { --$list->idx; // Back up one token, no real reasons to document break; } // Skipping whitespaces and comments. - if ($token->type === Token::TYPE_WHITESPACE || $token->type === Token::TYPE_COMMENT) { + if ($token->type === TokenType::Whitespace || $token->type === TokenType::Comment) { continue; } @@ -143,7 +125,7 @@ public function parse(Parser $parser, TokensList $list) $lastIdx = $list->idx; $list->idx++; // Ignore the current token - $nextKeyword = $list->getNextOfType(Token::TYPE_KEYWORD); + $nextKeyword = $list->getNextOfType(TokenType::Keyword); $list->idx = $lastIdx; // There is no other keyword, we must be describing a table @@ -155,7 +137,7 @@ public function parse(Parser $parser, TokensList $list) $miniState = 1; $lastIdx = $list->idx; - $nextKeyword = $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'ANALYZE'); + $nextKeyword = $list->getNextOfTypeAndValue(TokenType::Keyword, 'ANALYZE'); if ($nextKeyword && $nextKeyword->keyword !== null) { $miniState = 2; $this->statementAlias .= ' ANALYZE'; @@ -167,7 +149,7 @@ public function parse(Parser $parser, TokensList $list) } } elseif ($state === 1) { // Parsing options. - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, self::OPTIONS); $state = 2; } elseif ($state === 2) { $currIdx = $list->idx; @@ -201,7 +183,7 @@ public function parse(Parser $parser, TokensList $list) $subList = new TokensList(array_slice($list->tokens, $list->idx)); $this->bodyParser = new Parser($subList); - if (count($this->bodyParser->errors)) { + if ($this->bodyParser->errors !== []) { foreach ($this->bodyParser->errors as $error) { $parser->errors[] = $error; } @@ -212,13 +194,13 @@ public function parse(Parser $parser, TokensList $list) $list->idx = $idxOfLastParsedToken; break; } elseif ($state === 3) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '.')) { + if (($token->type === TokenType::Operator) && ($token->value === '.')) { continue; } if ($this->explainedDatabase === null) { $lastIdx = $list->idx; - $nextDot = $list->getNextOfTypeAndValue(Token::TYPE_OPERATOR, '.'); + $nextDot = $list->getNextOfTypeAndValue(TokenType::Operator, '.'); $list->idx = $lastIdx; if ($nextDot !== null) {// We found a dot, so it must be a db.table name format $this->explainedDatabase = $token->value; @@ -231,8 +213,8 @@ public function parse(Parser $parser, TokensList $list) continue; } - if ($this->explainedColumn === null) { - $this->explainedColumn = $token->value; + if ($this->explainedColumn === null && $token->value !== null) { + $this->explainedColumn = (string) $token->value; } } } @@ -252,11 +234,11 @@ public function build(): string $str = $this->statementAlias; if ($this->options !== null) { - if (count($this->options->options)) { + if ($this->options->options !== []) { $str .= ' '; } - $str .= OptionsArray::build($this->options) . ' '; + $str .= $this->options->build() . ' '; } if ($this->options === null) { diff --git a/src/Statements/InsertStatement.php b/src/Statements/InsertStatement.php index ac5dc1f33..de353fa0f 100644 --- a/src/Statements/InsertStatement.php +++ b/src/Statements/InsertStatement.php @@ -4,17 +4,19 @@ namespace PhpMyAdmin\SqlParser\Statements; -use PhpMyAdmin\SqlParser\Components\Array2d; use PhpMyAdmin\SqlParser\Components\ArrayObj; use PhpMyAdmin\SqlParser\Components\IntoKeyword; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\SetOperation; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Array2d; +use PhpMyAdmin\SqlParser\Parsers\ArrayObjs; +use PhpMyAdmin\SqlParser\Parsers\IntoKeywords; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; +use PhpMyAdmin\SqlParser\Parsers\SetOperations; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; -use function count; use function strlen; use function trim; @@ -59,7 +61,7 @@ class InsertStatement extends Statement * @var array> * @psalm-var array 1, 'DELAYED' => 2, 'HIGH_PRIORITY' => 3, @@ -68,17 +70,15 @@ class InsertStatement extends Statement /** * Tables used as target for this statement. - * - * @var IntoKeyword|null */ - public $into; + public IntoKeyword|null $into = null; /** * Values to be inserted. * * @var ArrayObj[]|null */ - public $values; + public array|null $values = null; /** * If SET clause is present @@ -86,23 +86,19 @@ class InsertStatement extends Statement * * @var SetOperation[]|null */ - public $set; + public array|null $set = null; /** * If SELECT clause is present * holds the SelectStatement. - * - * @var SelectStatement|null */ - public $select; + public SelectStatement|null $select = null; /** * If WITH CTE is present * holds the WithStatement. - * - * @var WithStatement|null */ - public $with; + public WithStatement|null $with = null; /** * If ON DUPLICATE KEY UPDATE clause is present @@ -110,26 +106,23 @@ class InsertStatement extends Statement * * @var SetOperation[]|null */ - public $onDuplicateSet; + public array|null $onDuplicateSet = null; - /** - * @return string - */ - public function build() + public function build(): string { $ret = 'INSERT ' . $this->options; $ret = trim($ret) . ' INTO ' . $this->into; - if ($this->values !== null && count($this->values) > 0) { - $ret .= ' VALUES ' . Array2d::build($this->values); - } elseif ($this->set !== null && count($this->set) > 0) { - $ret .= ' SET ' . SetOperation::build($this->set); + if ($this->values !== null && $this->values !== []) { + $ret .= ' VALUES ' . ArrayObjs::buildAll($this->values); + } elseif ($this->set !== null && $this->set !== []) { + $ret .= ' SET ' . SetOperations::buildAll($this->set); } elseif ($this->select !== null && strlen((string) $this->select) > 0) { $ret .= ' ' . $this->select->build(); } - if ($this->onDuplicateSet !== null && count($this->onDuplicateSet) > 0) { - $ret .= ' ON DUPLICATE KEY UPDATE ' . SetOperation::build($this->onDuplicateSet); + if ($this->onDuplicateSet !== null && $this->onDuplicateSet !== []) { + $ret .= ' ON DUPLICATE KEY UPDATE ' . SetOperations::buildAll($this->onDuplicateSet); } return $ret; @@ -139,12 +132,12 @@ public function build() * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { ++$list->idx; // Skipping `INSERT`. // parse any options if provided - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); ++$list->idx; /** @@ -157,8 +150,6 @@ public function parse(Parser $parser, TokensList $list) * 1 -------------------------[ VALUES/VALUE/SET/SELECT ]-----------------------> 2 * * 2 -------------------------[ ON DUPLICATE KEY UPDATE ]-----------------------> 3 - * - * @var int */ $state = 0; @@ -175,31 +166,31 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword !== 'INTO') { + if ($token->type === TokenType::Keyword && $token->keyword !== 'INTO') { $parser->error('Unexpected keyword.', $token); break; } ++$list->idx; - $this->into = IntoKeyword::parse( + $this->into = IntoKeywords::parse( $parser, $list, - ['fromInsert' => true] + ['fromInsert' => true], ); $state = 1; } elseif ($state === 1) { - if ($token->type !== Token::TYPE_KEYWORD) { + if ($token->type !== TokenType::Keyword) { $parser->error('Unexpected token.', $token); break; } @@ -211,7 +202,7 @@ public function parse(Parser $parser, TokensList $list) } elseif ($token->keyword === 'SET') { ++$list->idx; // skip SET - $this->set = SetOperation::parse($parser, $list); + $this->set = SetOperations::parse($parser, $list); } elseif ($token->keyword === 'SELECT') { $this->select = new SelectStatement($parser, $list); } elseif ($token->keyword === 'WITH') { @@ -243,7 +234,7 @@ public function parse(Parser $parser, TokensList $list) if ($miniState === 5) { ++$list->idx; - $this->onDuplicateSet = SetOperation::parse($parser, $list); + $this->onDuplicateSet = SetOperations::parse($parser, $list); $state = 3; } } diff --git a/src/Statements/KillStatement.php b/src/Statements/KillStatement.php index f020d795d..4b179663f 100644 --- a/src/Statements/KillStatement.php +++ b/src/Statements/KillStatement.php @@ -4,12 +4,12 @@ namespace PhpMyAdmin\SqlParser\Statements; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Exceptions\ParserException; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function array_slice; use function is_int; @@ -28,7 +28,7 @@ class KillStatement extends Statement * @var array> * @psalm-var array 1, 'SOFT' => 1, 'CONNECTION' => 2, @@ -38,24 +38,18 @@ class KillStatement extends Statement /** * Holds the identifier if explicitly set - * - * @psalm-var Statement|int|null */ - public $identifier = null; + public Statement|int|null $identifier = null; /** * Whether MariaDB ID keyword is used or not. - * - * @var bool */ - public $idKeywordUsed = false; + public bool $idKeywordUsed = false; /** * Whether parenthesis used around the identifier or not - * - * @var bool */ - public $parenthesisUsed = false; + public bool $parenthesisUsed = false; /** @throws ParserException */ public function parse(Parser $parser, TokensList $list): void @@ -84,24 +78,24 @@ public function parse(Parser $parser, TokensList $list): void $state = 0; ++$list->idx; // Skipping `KILL`. - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); ++$list->idx; for (; $list->idx < $list->count; ++$list->idx) { $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_WHITESPACE || $token->type === Token::TYPE_COMMENT) { + if ($token->type === TokenType::Whitespace || $token->type === TokenType::Comment) { continue; } switch ($state) { case 0: $currIdx = $list->idx; - $prev = $list->getPreviousOfType(Token::TYPE_KEYWORD); + $prev = $list->getPreviousOfType(TokenType::Keyword); $list->idx = $currIdx; - if ($token->type === Token::TYPE_NUMBER && is_int($token->value)) { + if ($token->type === TokenType::Number && is_int($token->value)) { $this->identifier = $token->value; $state = 2; - } elseif ($token->type === Token::TYPE_OPERATOR && $token->value === '(') { + } elseif ($token->type === TokenType::Operator && $token->value === '(') { $this->parenthesisUsed = true; $state = 3; } elseif ($prev && $token->value === 'ID' && $prev->value === 'QUERY') { @@ -115,7 +109,7 @@ public function parse(Parser $parser, TokensList $list): void break; case 3: - if ($token->type === Token::TYPE_KEYWORD && $token->value === 'SELECT') { + if ($token->type === TokenType::Keyword && $token->value === 'SELECT') { $subList = new TokensList(array_slice($list->tokens, $list->idx - 1)); $subParser = new Parser($subList); if ($subParser->errors !== []) { @@ -128,9 +122,9 @@ public function parse(Parser $parser, TokensList $list): void $this->identifier = $subParser->statements[0]; $state = 2; - } elseif ($token->type === Token::TYPE_OPERATOR && $token->value === ')') { + } elseif ($token->type === TokenType::Operator && $token->value === ')') { $state = 2; - } elseif ($token->type === Token::TYPE_NUMBER && is_int($token->value)) { + } elseif ($token->type === TokenType::Number && is_int($token->value)) { $this->identifier = $token->value; $state = 3; } else { @@ -150,15 +144,12 @@ public function parse(Parser $parser, TokensList $list): void --$list->idx; } - /** - * {@inheritdoc} - */ - public function build() + public function build(): string { $ret = 'KILL'; if ($this->options !== null && $this->options->options !== []) { - $ret .= ' ' . OptionsArray::build($this->options); + $ret .= ' ' . $this->options->build(); } if ($this->idKeywordUsed) { diff --git a/src/Statements/LoadStatement.php b/src/Statements/LoadStatement.php index f0f6253e2..c04a7677d 100644 --- a/src/Statements/LoadStatement.php +++ b/src/Statements/LoadStatement.php @@ -6,15 +6,18 @@ use PhpMyAdmin\SqlParser\Components\ArrayObj; use PhpMyAdmin\SqlParser\Components\Expression; -use PhpMyAdmin\SqlParser\Components\ExpressionArray; use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\SetOperation; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\ArrayObjs; +use PhpMyAdmin\SqlParser\Parsers\ExpressionArray; +use PhpMyAdmin\SqlParser\Parsers\Expressions; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; +use PhpMyAdmin\SqlParser\Parsers\SetOperations; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; -use function count; use function strlen; use function trim; @@ -47,7 +50,7 @@ class LoadStatement extends Statement * @var array> * @psalm-var array 1, 'CONCURRENT' => 1, 'LOCAL' => 2, @@ -55,11 +58,8 @@ class LoadStatement extends Statement /** * FIELDS/COLUMNS Options for `LOAD DATA...INFILE` statements. - * - * @var array> - * @psalm-var array [ 1, 'expr', @@ -77,11 +77,8 @@ class LoadStatement extends Statement /** * LINES Options for `LOAD DATA...INFILE` statements. - * - * @var array> - * @psalm-var array [ 1, 'expr', @@ -94,132 +91,109 @@ class LoadStatement extends Statement /** * File name being used to load data. - * - * @var Expression|null */ - public $file_name; + public Expression|null $fileName = null; /** * Table used as destination for this statement. - * - * @var Expression|null */ - public $table; + public Expression|null $table = null; /** * Partitions used as source for this statement. - * - * @var ArrayObj|null */ - public $partition; + public ArrayObj|null $partition = null; /** * Character set used in this statement. - * - * @var Expression|null */ - public $charset_name; + public Expression|null $charsetName = null; /** * Options for FIELDS/COLUMNS keyword. * - * @see static::$FIELDS_OPTIONS - * - * @var OptionsArray|null + * @see LoadStatement::STATEMENT_FIELDS_OPTIONS */ - public $fields_options; + public OptionsArray|null $fieldsOptions = null; /** * Whether to use `FIELDS` or `COLUMNS` while building. - * - * @var string|null */ - public $fields_keyword; + public string|null $fieldsKeyword = null; /** * Options for OPTIONS keyword. * - * @see static::$LINES_OPTIONS - * - * @var OptionsArray|null + * @see LoadStatement::STATEMENT_LINES_OPTIONS */ - public $lines_options; + public OptionsArray|null $linesOptions = null; /** * Column names or user variables. * * @var Expression[]|null */ - public $col_name_or_user_var; + public array|null $columnNamesOrUserVariables = null; /** * SET clause's updated values(optional). * * @var SetOperation[]|null */ - public $set; + public array|null $set = null; /** * Ignore 'number' LINES/ROWS. - * - * @var Expression|null */ - public $ignore_number; + public Expression|null $ignoreNumber = null; /** * REPLACE/IGNORE Keyword. - * - * @var string|null */ - public $replace_ignore; + public string|null $replaceIgnore = null; /** * LINES/ROWS Keyword. - * - * @var string|null */ - public $lines_rows; + public string|null $linesRows = null; - /** - * @return string - */ - public function build() + public function build(): string { $ret = 'LOAD DATA ' . $this->options - . ' INFILE ' . $this->file_name; + . ' INFILE ' . $this->fileName; - if ($this->replace_ignore !== null) { - $ret .= ' ' . trim($this->replace_ignore); + if ($this->replaceIgnore !== null) { + $ret .= ' ' . trim($this->replaceIgnore); } $ret .= ' INTO TABLE ' . $this->table; if ($this->partition !== null && strlen((string) $this->partition) > 0) { - $ret .= ' PARTITION ' . ArrayObj::build($this->partition); + $ret .= ' PARTITION ' . $this->partition->build(); } - if ($this->charset_name !== null) { - $ret .= ' CHARACTER SET ' . $this->charset_name; + if ($this->charsetName !== null) { + $ret .= ' CHARACTER SET ' . $this->charsetName; } - if ($this->fields_keyword !== null) { - $ret .= ' ' . $this->fields_keyword . ' ' . $this->fields_options; + if ($this->fieldsKeyword !== null) { + $ret .= ' ' . $this->fieldsKeyword . ' ' . $this->fieldsOptions; } - if ($this->lines_options !== null && strlen((string) $this->lines_options) > 0) { - $ret .= ' LINES ' . $this->lines_options; + if ($this->linesOptions !== null && strlen((string) $this->linesOptions) > 0) { + $ret .= ' LINES ' . $this->linesOptions; } - if ($this->ignore_number !== null) { - $ret .= ' IGNORE ' . $this->ignore_number . ' ' . $this->lines_rows; + if ($this->ignoreNumber !== null) { + $ret .= ' IGNORE ' . $this->ignoreNumber . ' ' . $this->linesRows; } - if ($this->col_name_or_user_var !== null && count($this->col_name_or_user_var) > 0) { - $ret .= ' ' . ExpressionArray::build($this->col_name_or_user_var); + if ($this->columnNamesOrUserVariables !== null && $this->columnNamesOrUserVariables !== []) { + $ret .= ' ' . Expressions::buildAll($this->columnNamesOrUserVariables); } - if ($this->set !== null && count($this->set) > 0) { - $ret .= ' SET ' . SetOperation::build($this->set); + if ($this->set !== null && $this->set !== []) { + $ret .= ' SET ' . SetOperations::buildAll($this->set); } return $ret; @@ -229,18 +203,16 @@ public function build() * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { ++$list->idx; // Skipping `LOAD DATA`. // parse any options if provided - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); ++$list->idx; /** * The state of the parser. - * - * @var int */ $state = 0; @@ -251,59 +223,59 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword !== 'INFILE') { + if ($token->type === TokenType::Keyword && $token->keyword !== 'INFILE') { $parser->error('Unexpected keyword.', $token); break; } - if ($token->type !== Token::TYPE_KEYWORD) { + if ($token->type !== TokenType::Keyword) { $parser->error('Unexpected token.', $token); break; } ++$list->idx; - $this->file_name = Expression::parse( + $this->fileName = Expressions::parse( $parser, $list, - ['parseField' => 'file'] + ['parseField' => 'file'], ); $state = 1; } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { if ($token->keyword === 'REPLACE' || $token->keyword === 'IGNORE') { - $this->replace_ignore = trim($token->keyword); + $this->replaceIgnore = trim($token->keyword); } elseif ($token->keyword === 'INTO') { $state = 2; } } } elseif ($state === 2) { - if ($token->type !== Token::TYPE_KEYWORD || $token->keyword !== 'TABLE') { + if ($token->type !== TokenType::Keyword || $token->keyword !== 'TABLE') { $parser->error('Unexpected token.', $token); break; } ++$list->idx; - $this->table = Expression::parse($parser, $list, ['parseField' => 'table', 'breakOnAlias' => true]); + $this->table = Expressions::parse($parser, $list, ['parseField' => 'table', 'breakOnAlias' => true]); $state = 3; } elseif ($state >= 3 && $state <= 7) { - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { $newState = $this->parseKeywordsAccordingToState($parser, $list, $state); if ($newState === $state) { // Avoid infinite loop break; } - } elseif ($token->type === Token::TYPE_OPERATOR && $token->token === '(') { - $this->col_name_or_user_var + } elseif ($token->type === TokenType::Operator && $token->token === '(') { + $this->columnNamesOrUserVariables = ExpressionArray::parse($parser, $list); $state = 7; } else { @@ -321,29 +293,22 @@ public function parse(Parser $parser, TokensList $list) * @param TokensList $list A token list * @param string $keyword The keyword */ - public function parseFileOptions(Parser $parser, TokensList $list, $keyword = 'FIELDS'): void + public function parseFileOptions(Parser $parser, TokensList $list, string $keyword = 'FIELDS'): void { ++$list->idx; if ($keyword === 'FIELDS' || $keyword === 'COLUMNS') { // parse field options - $this->fields_options = OptionsArray::parse($parser, $list, static::$FIELDS_OPTIONS); + $this->fieldsOptions = OptionsArrays::parse($parser, $list, self::STATEMENT_FIELDS_OPTIONS); - $this->fields_keyword = $keyword; + $this->fieldsKeyword = $keyword; } else { // parse line options - $this->lines_options = OptionsArray::parse($parser, $list, static::$LINES_OPTIONS); + $this->linesOptions = OptionsArrays::parse($parser, $list, self::STATEMENT_LINES_OPTIONS); } } - /** - * @param Parser $parser - * @param TokensList $list - * @param int $state - * - * @return int - */ - public function parseKeywordsAccordingToState($parser, $list, $state) + public function parseKeywordsAccordingToState(Parser $parser, TokensList $list, int $state): int { $token = $list->tokens[$list->idx]; @@ -351,7 +316,7 @@ public function parseKeywordsAccordingToState($parser, $list, $state) case 3: if ($token->keyword === 'PARTITION') { ++$list->idx; - $this->partition = ArrayObj::parse($parser, $list); + $this->partition = ArrayObjs::parse($parser, $list); return 4; } @@ -360,7 +325,7 @@ public function parseKeywordsAccordingToState($parser, $list, $state) case 4: if ($token->keyword === 'CHARACTER SET') { ++$list->idx; - $this->charset_name = Expression::parse($parser, $list); + $this->charsetName = Expressions::parse($parser, $list); return 5; } @@ -378,15 +343,15 @@ public function parseKeywordsAccordingToState($parser, $list, $state) if ($token->keyword === 'IGNORE') { ++$list->idx; - $this->ignore_number = Expression::parse($parser, $list); - $nextToken = $list->getNextOfType(Token::TYPE_KEYWORD); + $this->ignoreNumber = Expressions::parse($parser, $list); + $nextToken = $list->getNextOfType(TokenType::Keyword); if ( - $nextToken->type === Token::TYPE_KEYWORD + $nextToken->type === TokenType::Keyword && (($nextToken->keyword === 'LINES') || ($nextToken->keyword === 'ROWS')) ) { - $this->lines_rows = $nextToken->token; + $this->linesRows = $nextToken->token; } return 7; @@ -396,7 +361,7 @@ public function parseKeywordsAccordingToState($parser, $list, $state) case 7: if ($token->keyword === 'SET') { ++$list->idx; - $this->set = SetOperation::parse($parser, $list); + $this->set = SetOperations::parse($parser, $list); return 8; } diff --git a/src/Statements/LockStatement.php b/src/Statements/LockStatement.php index 63a0893f3..220b600e4 100644 --- a/src/Statements/LockStatement.php +++ b/src/Statements/LockStatement.php @@ -6,9 +6,10 @@ use PhpMyAdmin\SqlParser\Components\LockExpression; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\LockExpressions; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function trim; @@ -22,21 +23,19 @@ class LockStatement extends Statement * * @var LockExpression[] */ - public $locked = []; + public array $locked = []; /** * Whether it's a LOCK statement * if false, it's an UNLOCK statement - * - * @var bool */ - public $isLock = true; + public bool $isLock = true; /** * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { if ($list->tokens[$list->idx]->value === 'UNLOCK') { // this is in fact an UNLOCK statement @@ -53,8 +52,6 @@ public function parse(Parser $parser, TokensList $list) * 0 ---------------- [ TABLES ] -----------------> 1 * 1 -------------- [ lock_expr ] ----------------> 2 * 2 ------------------ [ , ] --------------------> 1 - * - * @var int */ $state = 0; @@ -70,17 +67,17 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { if ($token->keyword !== 'TABLES') { $parser->error('Unexpected keyword.', $token); break; @@ -101,7 +98,7 @@ public function parse(Parser $parser, TokensList $list) break; } - $this->locked[] = LockExpression::parse($parser, $list); + $this->locked[] = LockExpressions::parse($parser, $list); $state = 2; } elseif ($state === 2) { if ($token->value === ',') { @@ -120,12 +117,9 @@ public function parse(Parser $parser, TokensList $list) $parser->error('Unexpected end of LOCK statement.', $prevToken); } - /** - * @return string - */ - public function build() + public function build(): string { return trim(($this->isLock ? 'LOCK' : 'UNLOCK') - . ' TABLES ' . LockExpression::build($this->locked)); + . ' TABLES ' . LockExpression::buildAll($this->locked)); } } diff --git a/src/Statements/MaintenanceStatement.php b/src/Statements/MaintenanceStatement.php index d51e57aef..0073a2cd4 100644 --- a/src/Statements/MaintenanceStatement.php +++ b/src/Statements/MaintenanceStatement.php @@ -5,8 +5,8 @@ namespace PhpMyAdmin\SqlParser\Statements; use PhpMyAdmin\SqlParser\Components\Expression; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; @@ -24,7 +24,7 @@ class MaintenanceStatement extends Statement * * @var Expression[]|null */ - public $tables; + public array|null $tables = null; /** * Function called after the token was processed. @@ -34,24 +34,22 @@ class MaintenanceStatement extends Statement * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed * @param Token $token the token that is being parsed - * - * @return void */ - public function after(Parser $parser, TokensList $list, Token $token) + public function after(Parser $parser, TokensList $list, Token $token): void { // [some options] is going to be parsed first. // - // There is a parser specified in `Parser::$KEYWORD_PARSERS` + // There is a parser specified in `Parser::KEYWORD_PARSERS` // which parses the name of the tables. // // Finally, we parse here [some more options] and that's all. ++$list->idx; $this->options->merge( - OptionsArray::parse( + OptionsArrays::parse( $parser, $list, - static::$OPTIONS - ) + static::$statementOptions, + ), ); } } diff --git a/src/Statements/NotImplementedStatement.php b/src/Statements/NotImplementedStatement.php index 381e17c56..12e904eed 100644 --- a/src/Statements/NotImplementedStatement.php +++ b/src/Statements/NotImplementedStatement.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; /** * Not implemented (yet) statements. @@ -21,12 +22,9 @@ class NotImplementedStatement extends Statement * * @var Token[] */ - public $unknown = []; + public array $unknown = []; - /** - * @return string - */ - public function build() + public function build(): string { // Building the parsed part of the query (if any). $query = parent::build() . ' '; @@ -43,10 +41,10 @@ public function build() * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { for (; $list->idx < $list->count; ++$list->idx) { - if ($list->tokens[$list->idx]->type === Token::TYPE_DELIMITER) { + if ($list->tokens[$list->idx]->type === TokenType::Delimiter) { break; } diff --git a/src/Statements/OptimizeStatement.php b/src/Statements/OptimizeStatement.php index 9d99951ef..ce09fbec7 100644 --- a/src/Statements/OptimizeStatement.php +++ b/src/Statements/OptimizeStatement.php @@ -21,7 +21,7 @@ class OptimizeStatement extends Statement * @var array> * @psalm-var array 1, 'NO_WRITE_TO_BINLOG' => 2, @@ -33,5 +33,5 @@ class OptimizeStatement extends Statement * * @var Expression[]|null */ - public $tables; + public array|null $tables = null; } diff --git a/src/Statements/PurgeStatement.php b/src/Statements/PurgeStatement.php index a5d17ab9f..b4406be95 100644 --- a/src/Statements/PurgeStatement.php +++ b/src/Statements/PurgeStatement.php @@ -6,9 +6,11 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Expressions; use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function in_array; use function trim; @@ -23,32 +25,23 @@ class PurgeStatement extends Statement { /** * The type of logs - * - * @var string|null */ - public $log_type; + public string|null $logType = null; /** * The end option of this query. - * - * @var string|null */ - public $end_option; + public string|null $endOption = null; /** * The end expr of this query. - * - * @var string|null */ - public $end_expr; + public Expression|null $endExpr = null; - /** - * @return string - */ - public function build() + public function build(): string { - $ret = 'PURGE ' . $this->log_type . ' LOGS ' - . ($this->end_option !== null ? ($this->end_option . ' ' . $this->end_expr) : ''); + $ret = 'PURGE ' . $this->logType . ' LOGS ' + . ($this->endOption !== null ? ($this->endOption . ' ' . $this->endExpr) : ''); return trim($ret); } @@ -57,14 +50,12 @@ public function build() * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { ++$list->idx; // Skipping `PURGE`. /** * The state of the parser. - * - * @var int */ $state = 0; @@ -76,19 +67,19 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } switch ($state) { case 0: // parse `{ BINARY | MASTER }` - $this->log_type = self::parseExpectedKeyword($parser, $token, ['BINARY', 'MASTER']); + $this->logType = self::parseExpectedKeyword($parser, $token, ['BINARY', 'MASTER']); break; case 1: // parse `LOGS` @@ -96,11 +87,11 @@ public function parse(Parser $parser, TokensList $list) break; case 2: // parse `{ TO | BEFORE }` - $this->end_option = self::parseExpectedKeyword($parser, $token, ['TO', 'BEFORE']); + $this->endOption = self::parseExpectedKeyword($parser, $token, ['TO', 'BEFORE']); break; case 3: // parse `expr` - $this->end_expr = Expression::parse($parser, $list, []); + $this->endExpr = Expressions::parse($parser, $list, []); break; default: $parser->error('Unexpected token.', $token); @@ -125,12 +116,10 @@ public function parse(Parser $parser, TokensList $list) * @param Parser $parser the instance that requests parsing * @param Token $token token to be parsed * @param string[] $expectedKeywords array of possibly expected keywords at this point - * - * @return mixed|null */ - private static function parseExpectedKeyword($parser, $token, $expectedKeywords) + private static function parseExpectedKeyword(Parser $parser, Token $token, array $expectedKeywords): string|null { - if ($token->type === Token::TYPE_KEYWORD) { + if ($token->type === TokenType::Keyword) { if (in_array($token->keyword, $expectedKeywords)) { return $token->keyword; } diff --git a/src/Statements/RenameStatement.php b/src/Statements/RenameStatement.php index 1e8826f21..31d1ee408 100644 --- a/src/Statements/RenameStatement.php +++ b/src/Statements/RenameStatement.php @@ -6,9 +6,11 @@ use PhpMyAdmin\SqlParser\Components\RenameOperation; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\RenameOperations; use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; /** * `RENAME` statement. @@ -23,7 +25,7 @@ class RenameStatement extends Statement * * @var RenameOperation[]|null */ - public $renames; + public array|null $renames = null; /** * Function called before the token is processed. @@ -33,24 +35,19 @@ class RenameStatement extends Statement * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed * @param Token $token the token that is being parsed - * - * @return void */ - public function before(Parser $parser, TokensList $list, Token $token) + public function before(Parser $parser, TokensList $list, Token $token): void { - if (($token->type !== Token::TYPE_KEYWORD) || ($token->keyword !== 'RENAME')) { + if (($token->type !== TokenType::Keyword) || ($token->keyword !== 'RENAME')) { return; } // Checking if it is the beginning of the query. - $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'TABLE'); + $list->getNextOfTypeAndValue(TokenType::Keyword, 'TABLE'); } - /** - * @return string - */ - public function build() + public function build(): string { - return 'RENAME TABLE ' . RenameOperation::build($this->renames); + return 'RENAME TABLE ' . RenameOperations::buildAll($this->renames); } } diff --git a/src/Statements/RepairStatement.php b/src/Statements/RepairStatement.php index a96383269..8ebb090ad 100644 --- a/src/Statements/RepairStatement.php +++ b/src/Statements/RepairStatement.php @@ -19,7 +19,7 @@ class RepairStatement extends MaintenanceStatement * @var array> * @psalm-var array 1, 'NO_WRITE_TO_BINLOG' => 2, diff --git a/src/Statements/ReplaceStatement.php b/src/Statements/ReplaceStatement.php index 0c2db21b5..bd46ba8ce 100644 --- a/src/Statements/ReplaceStatement.php +++ b/src/Statements/ReplaceStatement.php @@ -4,16 +4,19 @@ namespace PhpMyAdmin\SqlParser\Statements; -use PhpMyAdmin\SqlParser\Components\Array2d; +use PhpMyAdmin\SqlParser\Components\ArrayObj; use PhpMyAdmin\SqlParser\Components\IntoKeyword; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\SetOperation; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Array2d; +use PhpMyAdmin\SqlParser\Parsers\ArrayObjs; +use PhpMyAdmin\SqlParser\Parsers\IntoKeywords; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; +use PhpMyAdmin\SqlParser\Parsers\SetOperations; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; -use function count; use function strlen; use function trim; @@ -46,24 +49,22 @@ class ReplaceStatement extends Statement * @var array> * @psalm-var array 1, 'DELAYED' => 1, ]; /** * Tables used as target for this statement. - * - * @var IntoKeyword|null */ - public $into; + public IntoKeyword|null $into = null; /** * Values to be replaced. * - * @var Array2d[]|null + * @var ArrayObj[]|null */ - public $values; + public array|null $values = null; /** * If SET clause is present @@ -71,28 +72,23 @@ class ReplaceStatement extends Statement * * @var SetOperation[]|null */ - public $set; + public array|null $set = null; /** * If SELECT clause is present * holds the SelectStatement. - * - * @var SelectStatement|null */ - public $select; + public SelectStatement|null $select = null; - /** - * @return string - */ - public function build() + public function build(): string { $ret = 'REPLACE ' . $this->options; $ret = trim($ret) . ' INTO ' . $this->into; - if ($this->values !== null && count($this->values) > 0) { - $ret .= ' VALUES ' . Array2d::build($this->values); - } elseif ($this->set !== null && count($this->set) > 0) { - $ret .= ' SET ' . SetOperation::build($this->set); + if ($this->values !== null && $this->values !== []) { + $ret .= ' VALUES ' . ArrayObjs::buildAll($this->values); + } elseif ($this->set !== null && $this->set !== []) { + $ret .= ' SET ' . SetOperations::buildAll($this->set); } elseif ($this->select !== null && strlen((string) $this->select) > 0) { $ret .= ' ' . $this->select->build(); } @@ -103,15 +99,13 @@ public function build() /** * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed - * - * @return void */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { ++$list->idx; // Skipping `REPLACE`. // parse any options if provided - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); ++$list->idx; @@ -123,8 +117,6 @@ public function parse(Parser $parser, TokensList $list) * 0 ---------------------------------[ INTO ]----------------------------------> 1 * * 1 -------------------------[ VALUES/VALUE/SET/SELECT ]-----------------------> 2 - * - * @var int */ $state = 0; @@ -135,31 +127,31 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { + if ($token->type === TokenType::Delimiter) { break; } // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { + if (($token->type === TokenType::Whitespace) || ($token->type === TokenType::Comment)) { continue; } if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword !== 'INTO') { + if ($token->type === TokenType::Keyword && $token->keyword !== 'INTO') { $parser->error('Unexpected keyword.', $token); break; } ++$list->idx; - $this->into = IntoKeyword::parse( + $this->into = IntoKeywords::parse( $parser, $list, - ['fromReplace' => true] + ['fromReplace' => true], ); $state = 1; } elseif ($state === 1) { - if ($token->type !== Token::TYPE_KEYWORD) { + if ($token->type !== TokenType::Keyword) { $parser->error('Unexpected token.', $token); break; } @@ -171,7 +163,7 @@ public function parse(Parser $parser, TokensList $list) } elseif ($token->keyword === 'SET') { ++$list->idx; // skip SET - $this->set = SetOperation::parse($parser, $list); + $this->set = SetOperations::parse($parser, $list); } elseif ($token->keyword === 'SELECT') { $this->select = new SelectStatement($parser, $list); } else { diff --git a/src/Statements/RestoreStatement.php b/src/Statements/RestoreStatement.php index d54ed9045..045a1623a 100644 --- a/src/Statements/RestoreStatement.php +++ b/src/Statements/RestoreStatement.php @@ -17,7 +17,7 @@ class RestoreStatement extends MaintenanceStatement * @var array> * @psalm-var array 1, 'FROM' => [ diff --git a/src/Statements/SelectStatement.php b/src/Statements/SelectStatement.php index fa32845f2..982c408df 100644 --- a/src/Statements/SelectStatement.php +++ b/src/Statements/SelectStatement.php @@ -16,7 +16,15 @@ use PhpMyAdmin\SqlParser\Components\Limit; use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\OrderKeyword; +use PhpMyAdmin\SqlParser\Exceptions\ParserException; +use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\Statement; +use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; + +use function array_key_exists; +use function is_string; /** * `SELECT` statement. @@ -54,7 +62,7 @@ class SelectStatement extends Statement * @var array> * @psalm-var array 1, 'DISTINCT' => 1, 'DISTINCTROW' => 1, @@ -72,17 +80,9 @@ class SelectStatement extends Statement 'SQL_CALC_FOUND_ROWS' => 9, ]; - /** - * @var array> - * @psalm-var array 1]; + protected const STATEMENT_GROUP_OPTIONS = ['WITH ROLLUP' => 1]; - /** - * @var array> - * @psalm-var array 1, 'LOCK IN SHARE MODE' => 1, ]; @@ -90,146 +90,145 @@ class SelectStatement extends Statement /** * The clauses of this statement, in order. * - * @see Statement::$CLAUSES + * @see Statement::$clauses * - * @var array> - * @psalm-var array + * @var array}> */ - public static $CLAUSES = [ + public static array $clauses = [ 'SELECT' => [ 'SELECT', - 2, + Statement::ADD_KEYWORD, ], // Used for options. '_OPTIONS' => [ '_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], // Used for selected expressions. '_SELECT' => [ 'SELECT', - 1, + Statement::ADD_CLAUSE, ], 'INTO' => [ 'INTO', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'FROM' => [ 'FROM', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'FORCE' => [ 'FORCE', - 1, + Statement::ADD_CLAUSE, ], 'USE' => [ 'USE', - 1, + Statement::ADD_CLAUSE, ], 'IGNORE' => [ 'IGNORE', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'PARTITION' => [ 'PARTITION', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'JOIN' => [ 'JOIN', - 1, + Statement::ADD_CLAUSE, ], 'FULL JOIN' => [ 'FULL JOIN', - 1, + Statement::ADD_CLAUSE, ], 'INNER JOIN' => [ 'INNER JOIN', - 1, + Statement::ADD_CLAUSE, ], 'LEFT JOIN' => [ 'LEFT JOIN', - 1, + Statement::ADD_CLAUSE, ], 'LEFT OUTER JOIN' => [ 'LEFT OUTER JOIN', - 1, + Statement::ADD_CLAUSE, ], 'RIGHT JOIN' => [ 'RIGHT JOIN', - 1, + Statement::ADD_CLAUSE, ], 'RIGHT OUTER JOIN' => [ 'RIGHT OUTER JOIN', - 1, + Statement::ADD_CLAUSE, ], 'NATURAL JOIN' => [ 'NATURAL JOIN', - 1, + Statement::ADD_CLAUSE, ], 'NATURAL LEFT JOIN' => [ 'NATURAL LEFT JOIN', - 1, + Statement::ADD_CLAUSE, ], 'NATURAL RIGHT JOIN' => [ 'NATURAL RIGHT JOIN', - 1, + Statement::ADD_CLAUSE, ], 'NATURAL LEFT OUTER JOIN' => [ 'NATURAL LEFT OUTER JOIN', - 1, + Statement::ADD_CLAUSE, ], 'NATURAL RIGHT OUTER JOIN' => [ 'NATURAL RIGHT JOIN', - 1, + Statement::ADD_CLAUSE, ], 'WHERE' => [ 'WHERE', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'GROUP BY' => [ 'GROUP BY', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], '_GROUP_OPTIONS' => [ '_GROUP_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], 'HAVING' => [ 'HAVING', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'ORDER BY' => [ 'ORDER BY', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'LIMIT' => [ 'LIMIT', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'PROCEDURE' => [ 'PROCEDURE', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'UNION' => [ 'UNION', - 1, + Statement::ADD_CLAUSE, ], 'EXCEPT' => [ 'EXCEPT', - 1, + Statement::ADD_CLAUSE, ], 'INTERSECT' => [ 'INTERSECT', - 1, + Statement::ADD_CLAUSE, ], '_END_OPTIONS' => [ '_END_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], // These are available only when `UNION` is present. - // 'ORDER BY' => ['ORDER BY', 3], - // 'LIMIT' => ['LIMIT', 3], + // 'ORDER BY' => ['ORDER BY', Statement::ADD_CLAUSE|Statement::ADD_KEYWORD], + // 'LIMIT' => ['LIMIT', Statement::ADD_CLAUSE|Statement::ADD_KEYWORD], ]; /** @@ -237,134 +236,402 @@ class SelectStatement extends Statement * * @var (CaseExpression|Expression)[] */ - public $expr = []; + public array $expr = []; /** * Tables used as sources for this statement. * * @var Expression[] */ - public $from = []; + public array $from = []; /** * Index hints * * @var IndexHint[]|null */ - public $index_hints; + public array|null $indexHints = null; /** * Partitions used as source for this statement. - * - * @var ArrayObj|null */ - public $partition; + public ArrayObj|null $partition = null; /** * Conditions used for filtering each row of the result set. * * @var Condition[]|null */ - public $where; + public array|null $where = null; /** * Conditions used for grouping the result set. * * @var GroupKeyword[]|null */ - public $group; + public array|null $group = null; /** * List of options available for the GROUP BY component. - * - * @var OptionsArray|null */ - public $group_options; + public OptionsArray|null $groupOptions = null; /** * Conditions used for filtering the result set. * * @var Condition[]|null */ - public $having; + public array|null $having = null; /** * Specifies the order of the rows in the result set. * * @var OrderKeyword[]|null */ - public $order; + public array|null $order = null; /** * Conditions used for limiting the size of the result set. - * - * @var Limit|null */ - public $limit; + public Limit|null $limit = null; /** * Procedure that should process the data in the result set. - * - * @var FunctionCall|null */ - public $procedure; + public FunctionCall|null $procedure = null; /** * Destination of this result set. - * - * @var IntoKeyword|null */ - public $into; + public IntoKeyword|null $into = null; /** * Joins. * * @var JoinKeyword[]|null */ - public $join; + public array|null $join = null; /** * Unions. * * @var SelectStatement[] */ - public $union = []; + public array $union = []; /** * The end options of this query. * - * @see static::$END_OPTIONS + * @see SelectStatement::STATEMENT_END_OPTIONS + */ + public OptionsArray|null $endOptions = null; + + /** + * Parses the statements defined by the tokens list. + * + * @param Parser $parser the instance that requests parsing + * @param TokensList $list the list of tokens to be parsed * - * @var OptionsArray|null + * @throws ParserException */ - public $end_options; + public function parse(Parser $parser, TokensList $list): void + { + /** + * Array containing all list of clauses parsed. + * This is used to check for duplicates. + */ + $parsedClauses = []; + + // This may be corrected by the parser. + $this->first = $list->idx; + + /** + * Whether options were parsed or not. + * For statements that do not have any options this is set to `true` by + * default. + */ + $parsedOptions = static::$statementOptions === []; + + for (; $list->idx < $list->count; ++$list->idx) { + /** + * Token parsed at this moment. + */ + $token = $list->tokens[$list->idx]; + + // End of statement. + if ($token->type === TokenType::Delimiter) { + break; + } + + // Checking if this closing bracket is the pair for a bracket + // outside the statement. + if (($token->value === ')') && ($parser->brackets > 0)) { + --$parser->brackets; + continue; + } + + // Only keywords are relevant here. Other parts of the query are + // processed in the functions below. + if ($token->type !== TokenType::Keyword) { + if (($token->type !== TokenType::Comment) && ($token->type !== TokenType::Whitespace)) { + $parser->error('Unexpected token.', $token); + } + + continue; + } + + // Unions are parsed by the parser because they represent more than + // one statement. + if ( + ($token->keyword === 'UNION') || + ($token->keyword === 'UNION ALL') || + ($token->keyword === 'UNION DISTINCT') || + ($token->keyword === 'EXCEPT') || + ($token->keyword === 'INTERSECT') + ) { + break; + } + + $lastIdx = $list->idx; + + // ON DUPLICATE KEY UPDATE ... + // has to be parsed in parent statement (INSERT or REPLACE) + // so look for it and break + if ($token->value === 'ON') { + ++$list->idx; // Skip ON + + // look for ON DUPLICATE KEY UPDATE + $first = $list->getNextOfType(TokenType::Keyword); + $second = $list->getNextOfType(TokenType::Keyword); + $third = $list->getNextOfType(TokenType::Keyword); + + if ( + $first && $second && $third + && $first->value === 'DUPLICATE' + && $second->value === 'KEY' + && $third->value === 'UPDATE' + ) { + $list->idx = $lastIdx; + break; + } + } + + $list->idx = $lastIdx; + + /** + * The name of the class that is used for parsing. + */ + $class = null; + + /** + * The name of the field where the result of the parsing is stored. + */ + $field = null; + + /** + * Parser's options. + */ + $options = []; + + // Looking for duplicated clauses. + if ( + is_string($token->value) + && ( + isset(Parser::KEYWORD_PARSERS[$token->value]) + || ( + isset(Parser::STATEMENT_PARSERS[$token->value]) + && Parser::STATEMENT_PARSERS[$token->value] !== '' + ) + ) + ) { + if (array_key_exists($token->value, $parsedClauses)) { + $parser->error('This type of clause was previously parsed.', $token); + break; + } + + $parsedClauses[$token->value] = true; + } + + // Checking if this is the beginning of a clause. + // Fix Issue #221: As `truncate` is not a keyword, + // but it might be the beginning of a statement of truncate, + // so let the value use the keyword field for truncate type. + $tokenValue = $token->keyword === 'TRUNCATE' ? $token->keyword : $token->value; + if (is_string($tokenValue) && isset(Parser::KEYWORD_PARSERS[$tokenValue]) && $list->idx < $list->count) { + $class = Parser::KEYWORD_PARSERS[$tokenValue]['class']; + $field = Parser::KEYWORD_PARSERS[$tokenValue]['field']; + if (isset(Parser::KEYWORD_PARSERS[$tokenValue]['options'])) { + $options = Parser::KEYWORD_PARSERS[$tokenValue]['options']; + } + } + + // Checking if this is the beginning of the statement. + if ( + isset(Parser::STATEMENT_PARSERS[$token->keyword]) + && Parser::STATEMENT_PARSERS[$token->keyword] !== '' + ) { + if (static::$clauses !== [] && is_string($token->value) && ! isset(static::$clauses[$token->value])) { + // Some keywords (e.g. `SET`) may be the beginning of a + // statement and a clause. + // If such keyword was found, and it cannot be a clause of + // this statement it means it is a new statement, but no + // delimiter was found between them. + $parser->error( + 'A new statement was found, but no delimiter between it and the previous one.', + $token, + ); + break; + } + + if (! $parsedOptions) { + if (! array_key_exists((string) $token->value, static::$statementOptions)) { + // Skipping keyword because if it is not a option. + ++$list->idx; + } + + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); + $parsedOptions = true; + } + } elseif ($class === null) { + if ($token->value === 'WITH ROLLUP') { + // Handle group options in Select statement + $this->groupOptions = OptionsArrays::parse($parser, $list, self::STATEMENT_GROUP_OPTIONS); + } elseif ($token->value === 'FOR UPDATE' || $token->value === 'LOCK IN SHARE MODE') { + // Handle special end options in Select statement + $this->endOptions = OptionsArrays::parse($parser, $list, self::STATEMENT_END_OPTIONS); + } else { + // There is no parser for this keyword and isn't the beginning + // of a statement (so no options) either. + $parser->error('Unrecognized keyword.', $token); + continue; + } + } + + if ($class === null) { + continue; + } + + // Parsing this keyword. + // We can't parse keyword at the end of statement + if ($list->idx >= $list->count) { + $parser->error('Keyword at end of statement.', $token); + continue; + } + + ++$list->idx; // Skipping keyword or last option. + $this->$field = $class::parse($parser, $list, $options); + } + + // This may be corrected by the parser. + $this->last = --$list->idx; // Go back to last used token. + } /** * Gets the clauses of this statement. * - * @return array> - * @psalm-return array + * @return array}> */ - public function getClauses() + public function getClauses(): array { // This is a cheap fix for `SELECT` statements that contain `UNION`. // The `ORDER BY` and `LIMIT` clauses should be at the end of the // statement. - if (! empty($this->union)) { - $clauses = static::$CLAUSES; + if ($this->union !== []) { + $clauses = static::$clauses; unset($clauses['ORDER BY'], $clauses['LIMIT']); $clauses['ORDER BY'] = [ 'ORDER BY', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ]; $clauses['LIMIT'] = [ 'LIMIT', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ]; return $clauses; } - return static::$CLAUSES; + return static::$clauses; + } + + /** + * Gets a list of all aliases and their original names. + * + * @param string $database the name of the database + * + * @return array|string|null>>|null>> + */ + public function getAliases(string $database): array + { + if ($this->expr === [] || $this->from === []) { + return []; + } + + $retval = []; + + $tables = []; + + /** + * Expressions that may contain aliases. + * These are extracted from `FROM` and `JOIN` keywords. + */ + $expressions = $this->from; + + // Adding expressions from JOIN. + if (! empty($this->join)) { + foreach ($this->join as $join) { + $expressions[] = $join->expr; + } + } + + foreach ($expressions as $expr) { + if (! isset($expr->table) || ($expr->table === '')) { + continue; + } + + $thisDb = isset($expr->database) && ($expr->database !== '') ? + $expr->database : $database; + + if (! isset($retval[$thisDb])) { + $retval[$thisDb] = [ + 'alias' => null, + 'tables' => [], + ]; + } + + if (! isset($retval[$thisDb]['tables'][$expr->table])) { + $retval[$thisDb]['tables'][$expr->table] = [ + 'alias' => isset($expr->alias) && ($expr->alias !== '') ? + $expr->alias : null, + 'columns' => [], + ]; + } + + if (! isset($tables[$thisDb])) { + $tables[$thisDb] = []; + } + + $tables[$thisDb][$expr->alias] = $expr->table; + } + + foreach ($this->expr as $expr) { + if (! isset($expr->column, $expr->alias) || ($expr->column === '') || ($expr->alias === '')) { + continue; + } + + $thisDb = isset($expr->database) && ($expr->database !== '') ? + $expr->database : $database; + + if (isset($expr->table) && ($expr->table !== '')) { + $thisTable = $tables[$thisDb][$expr->table] ?? $expr->table; + $retval[$thisDb]['tables'][$thisTable]['columns'][$expr->column] = $expr->alias; + } else { + foreach ($retval[$thisDb]['tables'] as &$table) { + $table['columns'][$expr->column] = $expr->alias; + } + } + } + + return $retval; } } diff --git a/src/Statements/SetStatement.php b/src/Statements/SetStatement.php index b3186c1df..3f7117e41 100644 --- a/src/Statements/SetStatement.php +++ b/src/Statements/SetStatement.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\SetOperation; +use PhpMyAdmin\SqlParser\Parsers\SetOperations; use PhpMyAdmin\SqlParser\Statement; use function trim; @@ -18,19 +19,18 @@ class SetStatement extends Statement /** * The clauses of this statement, in order. * - * @see Statement::$CLAUSES + * @see Statement::$clauses * - * @var array> - * @psalm-var array + * @var array}> */ - public static $CLAUSES = [ + public static array $clauses = [ 'SET' => [ 'SET', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], '_END_OPTIONS' => [ '_END_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], ]; @@ -40,7 +40,7 @@ class SetStatement extends Statement * @var array> * @psalm-var array [ 3, 'var', @@ -67,11 +67,7 @@ class SetStatement extends Statement '@@PERSIST_ONLY' => 3, ]; - /** - * @var array> - * @psalm-var array [ 1, 'var', @@ -81,35 +77,28 @@ class SetStatement extends Statement /** * Options used in current statement. - * - * @var OptionsArray|null */ - public $options; + public OptionsArray|null $options = null; /** * The end options of this query. * - * @see static::$END_OPTIONS - * - * @var OptionsArray|null + * @see SetStatement::STATEMENT_END_OPTIONS */ - public $end_options; + public OptionsArray|null $endOptions = null; /** * The updated values. * * @var SetOperation[]|null */ - public $set; + public array|null $set = null; - /** - * @return string - */ - public function build() + public function build(): string { - $ret = 'SET ' . OptionsArray::build($this->options) - . ' ' . SetOperation::build($this->set) - . ' ' . OptionsArray::build($this->end_options); + $ret = 'SET ' . $this->options->build() + . ' ' . SetOperations::buildAll($this->set) + . ' ' . ($this->endOptions?->build() ?? ''); return trim($ret); } diff --git a/src/Statements/ShowStatement.php b/src/Statements/ShowStatement.php index 961385ea4..9da56babe 100644 --- a/src/Statements/ShowStatement.php +++ b/src/Statements/ShowStatement.php @@ -15,7 +15,7 @@ class ShowStatement extends NotImplementedStatement * @var array> * @psalm-var array 1, 'AUTHORS' => 2, 'BINARY' => 2, diff --git a/src/Statements/TransactionStatement.php b/src/Statements/TransactionStatement.php index a45cc4126..7894b41dd 100644 --- a/src/Statements/TransactionStatement.php +++ b/src/Statements/TransactionStatement.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Statements; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\TokensList; @@ -26,24 +25,20 @@ class TransactionStatement extends Statement /** * The type of this query. - * - * @var int|null */ - public $type; + public int|null $type = null; /** * The list of statements in this transaction. * * @var Statement[]|null */ - public $statements; + public array|null $statements = null; /** * The ending transaction statement which may be a `COMMIT` or a `ROLLBACK`. - * - * @var TransactionStatement|null */ - public $end; + public TransactionStatement|null $end = null; /** * Options for this query. @@ -51,7 +46,7 @@ class TransactionStatement extends Statement * @var array> * @psalm-var array 1, 'BEGIN' => 1, 'COMMIT' => 1, @@ -67,10 +62,8 @@ class TransactionStatement extends Statement /** * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed - * - * @return void */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { parent::parse($parser, $list); @@ -82,12 +75,9 @@ public function parse(Parser $parser, TokensList $list) } } - /** - * @return string - */ - public function build() + public function build(): string { - $ret = OptionsArray::build($this->options); + $ret = $this->options->build(); if ($this->type === self::TYPE_BEGIN) { foreach ($this->statements as $statement) { /* diff --git a/src/Statements/TruncateStatement.php b/src/Statements/TruncateStatement.php index fc5044e89..2cad3cbd9 100644 --- a/src/Statements/TruncateStatement.php +++ b/src/Statements/TruncateStatement.php @@ -18,21 +18,17 @@ class TruncateStatement extends Statement * @var array> * @psalm-var array 1]; + public static array $statementOptions = ['TABLE' => 1]; /** * The name of the truncated table. - * - * @var Expression|null */ - public $table; + public Expression|null $table = null; /** * Special build method for truncate statement as Statement::build would return empty string. - * - * @return string */ - public function build() + public function build(): string { return 'TRUNCATE TABLE ' . $this->table . ';'; } diff --git a/src/Statements/UpdateStatement.php b/src/Statements/UpdateStatement.php index 021e09d5f..efc4a0bcb 100644 --- a/src/Statements/UpdateStatement.php +++ b/src/Statements/UpdateStatement.php @@ -40,7 +40,7 @@ class UpdateStatement extends Statement * @var array> * @psalm-var array 1, 'IGNORE' => 2, ]; @@ -48,53 +48,52 @@ class UpdateStatement extends Statement /** * The clauses of this statement, in order. * - * @see Statement::$CLAUSES + * @see Statement::$clauses * - * @var array> - * @psalm-var array + * @var array}> */ - public static $CLAUSES = [ + public static array $clauses = [ 'UPDATE' => [ 'UPDATE', - 2, + Statement::ADD_KEYWORD, ], // Used for options. '_OPTIONS' => [ '_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], // Used for updated tables. '_UPDATE' => [ 'UPDATE', - 1, + Statement::ADD_CLAUSE, ], 'JOIN' => [ 'JOIN', - 1, + Statement::ADD_CLAUSE, ], 'LEFT JOIN' => [ 'LEFT JOIN', - 1, + Statement::ADD_CLAUSE, ], 'INNER JOIN' => [ 'INNER JOIN', - 1, + Statement::ADD_CLAUSE, ], 'SET' => [ 'SET', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'WHERE' => [ 'WHERE', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'ORDER BY' => [ 'ORDER BY', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], 'LIMIT' => [ 'LIMIT', - 3, + Statement::ADD_CLAUSE | Statement::ADD_KEYWORD, ], ]; @@ -103,58 +102,54 @@ class UpdateStatement extends Statement * * @var Expression[]|null */ - public $tables; + public array|null $tables = null; /** * The updated values. * * @var SetOperation[]|null */ - public $set; + public array|null $set = null; /** * Conditions used for filtering each row of the result set. * * @var Condition[]|null */ - public $where; + public array|null $where = null; /** * Specifies the order of the rows in the result set. * * @var OrderKeyword[]|null */ - public $order; + public array|null $order = null; /** * Conditions used for limiting the size of the result set. - * - * @var Limit|null */ - public $limit; + public Limit|null $limit = null; /** * Joins. * * @var JoinKeyword[]|null */ - public $join; + public array|null $join = null; /** * Function called after the token was processed. * In the update statement, this is used to check that at least one assignment has been set to throw an error if a * query like `UPDATE acme SET WHERE 1;` is parsed. * - * @return void - * * @throws ParserException throws the exception, if strict mode is enabled. */ - public function after(Parser $parser, TokensList $list, Token $token) + public function after(Parser $parser, TokensList $list, Token $token): void { /** @psalm-var string $tokenValue */ $tokenValue = $token->value; // Ensure we finished to parse the "SET" token, and if yes, ensure that assignments are defined. - if ($this->set !== [] || (Parser::$KEYWORD_PARSERS[$tokenValue]['field'] ?? null) !== 'set') { + if ($this->set !== [] || (Parser::KEYWORD_PARSERS[$tokenValue]['field'] ?? null) !== 'set') { return; } diff --git a/src/Statements/WithStatement.php b/src/Statements/WithStatement.php index 7c63dc475..0da0a7cf7 100644 --- a/src/Statements/WithStatement.php +++ b/src/Statements/WithStatement.php @@ -4,18 +4,18 @@ namespace PhpMyAdmin\SqlParser\Statements; -use PhpMyAdmin\SqlParser\Components\Array2d; -use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\WithKeyword; use PhpMyAdmin\SqlParser\Exceptions\ParserException; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Array2d; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\Statement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use PhpMyAdmin\SqlParser\Translator; use function array_slice; -use function count; +use function implode; use function preg_match; /** @@ -31,49 +31,44 @@ final class WithStatement extends Statement * @var array> * @psalm-var array 1]; + public static array $statementOptions = ['RECURSIVE' => 1]; /** * The clauses of this statement, in order. * - * @see Statement::$CLAUSES + * @see Statement::$clauses * - * @var array> - * @psalm-var array + * @var array}> */ - public static $CLAUSES = [ + public static array $clauses = [ 'WITH' => [ 'WITH', - 2, + Statement::ADD_KEYWORD, ], // Used for options. '_OPTIONS' => [ '_OPTIONS', - 1, + Statement::ADD_CLAUSE, ], 'AS' => [ 'AS', - 2, + Statement::ADD_KEYWORD, ], ]; /** @var WithKeyword[] */ - public $withers = []; + public array $withers = []; /** * holds the CTE parser. - * - * @var Parser|null */ - public $cteStatementParser; + public Parser|null $cteStatementParser = null; /** * @param Parser $parser the instance that requests parsing * @param TokensList $list the list of tokens to be parsed - * - * @return void */ - public function parse(Parser $parser, TokensList $list) + public function parse(Parser $parser, TokensList $list): void { /** * The state of the parser. @@ -91,8 +86,6 @@ public function parse(Parser $parser, TokensList $list) * 4 ------------------ [ , ] ------------------> 1 * * 4 ----- [ SELECT/UPDATE/DELETE/INSERT ] -----> 5 - * - * @var int */ $state = 0; $wither = null; @@ -100,7 +93,7 @@ public function parse(Parser $parser, TokensList $list) ++$list->idx; // Skipping `WITH`. // parse any options if provided - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); + $this->options = OptionsArrays::parse($parser, $list, static::$statementOptions); ++$list->idx; for (; $list->idx < $list->count; ++$list->idx) { @@ -110,12 +103,12 @@ public function parse(Parser $parser, TokensList $list) $token = $list->tokens[$list->idx]; // Skipping whitespaces and comments. - if ($token->type === Token::TYPE_WHITESPACE || $token->type === Token::TYPE_COMMENT) { + if ($token->type === TokenType::Whitespace || $token->type === TokenType::Comment) { continue; } if ($state === 0) { - if ($token->type !== Token::TYPE_NONE || ! preg_match('/^[a-zA-Z0-9_$]+$/', $token->token)) { + if ($token->type !== TokenType::None || ! preg_match('/^[a-zA-Z0-9_$]+$/', $token->token)) { $parser->error('The name of the CTE was expected.', $token); break; } @@ -124,7 +117,7 @@ public function parse(Parser $parser, TokensList $list) $this->withers[$wither] = new WithKeyword($wither); $state = 1; } elseif ($state === 1) { - if ($token->type === Token::TYPE_OPERATOR && $token->value === '(') { + if ($token->type === TokenType::Operator && $token->value === '(') { $columns = Array2d::parse($parser, $list); if ($parser->errors !== []) { break; @@ -132,14 +125,14 @@ public function parse(Parser $parser, TokensList $list) $this->withers[$wither]->columns = $columns; $state = 2; - } elseif ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'AS') { + } elseif ($token->type === TokenType::Keyword && $token->keyword === 'AS') { $state = 3; } else { $parser->error('Unexpected token.', $token); break; } } elseif ($state === 2) { - if (! ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'AS')) { + if (! ($token->type === TokenType::Keyword && $token->keyword === 'AS')) { $parser->error('AS keyword was expected.', $token); break; } @@ -169,7 +162,7 @@ public function parse(Parser $parser, TokensList $list) $subParser = new Parser($subList); - if (count($subParser->errors)) { + if ($subParser->errors !== []) { foreach ($subParser->errors as $error) { $parser->errors[] = $error; } @@ -188,7 +181,7 @@ public function parse(Parser $parser, TokensList $list) } if ( - $token->type === Token::TYPE_KEYWORD && ( + $token->type === TokenType::Keyword && ( $token->value === 'SELECT' || $token->value === 'INSERT' || $token->value === 'UPDATE' @@ -221,7 +214,7 @@ public function parse(Parser $parser, TokensList $list) // from $list->idx to the end of the $list. $lengthOfExpressionTokens = null; - if ($list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'ON')) { + if ($list->getNextOfTypeAndValue(TokenType::Keyword, 'ON')) { // (-1) because getNextOfTypeAndValue returned ON and increased the index. $idxOfOn = $list->idx - 1; // We want to make sure that it's `ON DUPLICATE KEY UPDATE` @@ -247,7 +240,7 @@ public function parse(Parser $parser, TokensList $list) $subList = new TokensList(array_slice($list->tokens, $list->idx, $lengthOfExpressionTokens)); $subParser = new Parser($subList); - if (count($subParser->errors)) { + if ($subParser->errors !== []) { foreach ($subParser->errors as $error) { $parser->errors[] = $error; } @@ -275,30 +268,20 @@ public function parse(Parser $parser, TokensList $list) --$list->idx; } - /** - * {@inheritdoc} - */ - public function build() + public function build(): string { - $initial = true; - $str = 'WITH'; + $str = 'WITH '; if ($this->options !== null && $this->options->options !== []) { - $str .= ' ' . OptionsArray::build($this->options); + $str .= $this->options->build() . ' '; } - foreach ($this->withers as $wither) { - $str .= $initial ? ' ' : ', '; - $str .= WithKeyword::build($wither); - $initial = false; + if ($this->withers !== []) { + $str .= implode(', ', $this->withers) . ' '; } - $str .= ' '; - if ($this->cteStatementParser) { - foreach ($this->cteStatementParser->statements as $statement) { - $str .= $statement->build(); - } + $str .= implode('', $this->cteStatementParser->statements); } return $str; @@ -306,10 +289,8 @@ public function build() /** * Get tokens within the WITH expression to use them in another parser - * - * @return ParserException|TokensList */ - private function getSubTokenList(TokensList $list) + private function getSubTokenList(TokensList $list): ParserException|TokensList { $idx = $list->idx; $token = $list->tokens[$list->idx]; @@ -338,12 +319,12 @@ private function getSubTokenList(TokensList $list) return new ParserException( Translator::gettext('A closing bracket was expected.'), - $token + $token, ); } $length = $list->idx - $idx; - return new TokensList(array_slice($list->tokens, $idx, $length), $length); + return new TokensList(array_slice($list->tokens, $idx, $length)); } } diff --git a/src/Token.php b/src/Token.php index e4a2f45d2..b325ea552 100644 --- a/src/Token.php +++ b/src/Token.php @@ -20,111 +20,7 @@ */ class Token { - // Types of tokens (a vague description of a token's purpose). - - /** - * This type is used when the token is invalid or its type cannot be - * determined because of the ambiguous context. Further analysis might be - * required to detect its type. - */ - public const TYPE_NONE = 0; - - /** - * SQL specific keywords: SELECT, UPDATE, INSERT, etc. - */ - public const TYPE_KEYWORD = 1; - - /** - * Any type of legal operator. - * - * Arithmetic operators: +, -, *, /, etc. - * Logical operators: ===, <>, !==, etc. - * Bitwise operators: &, |, ^, etc. - * Assignment operators: =, +=, -=, etc. - * SQL specific operators: . (e.g. .. WHERE database.table ..), - * * (e.g. SELECT * FROM ..) - */ - public const TYPE_OPERATOR = 2; - - /** - * Spaces, tabs, new lines, etc. - */ - public const TYPE_WHITESPACE = 3; - - /** - * Any type of legal comment. - * - * Bash (#), C (/* *\/) or SQL (--) comments: - * - * -- SQL-comment - * - * #Bash-like comment - * - * /*C-like comment*\/ - * - * or: - * - * /*C-like - * comment*\/ - * - * Backslashes were added to respect PHP's comments syntax. - */ - public const TYPE_COMMENT = 4; - - /** - * Boolean values: true or false. - */ - public const TYPE_BOOL = 5; - - /** - * Numbers: 4, 0x8, 15.16, 23e42, etc. - */ - public const TYPE_NUMBER = 6; - - /** - * Literal strings: 'string', "test". - * Some of these strings are actually symbols. - */ - public const TYPE_STRING = 7; - - /** - * Database, table names, variables, etc. - * For example: ```SELECT `foo`, `bar` FROM `database`.`table`;```. - */ - public const TYPE_SYMBOL = 8; - - /** - * Delimits an unknown string. - * For example: ```SELECT * FROM test;```, `test` is a delimiter. - */ - public const TYPE_DELIMITER = 9; - - /** - * Labels in LOOP statement, ITERATE statement etc. - * For example (only for begin label): - * begin_label: BEGIN [statement_list] END [end_label] - * begin_label: LOOP [statement_list] END LOOP [end_label] - * begin_label: REPEAT [statement_list] ... END REPEAT [end_label] - * begin_label: WHILE ... DO [statement_list] END WHILE [end_label]. - */ - public const TYPE_LABEL = 10; - - /** - * All tokens types - */ - public const TYPE_ALL = [ - self::TYPE_NONE, - self::TYPE_KEYWORD, - self::TYPE_OPERATOR, - self::TYPE_WHITESPACE, - self::TYPE_COMMENT, - self::TYPE_BOOL, - self::TYPE_NUMBER, - self::TYPE_STRING, - self::TYPE_SYMBOL, - self::TYPE_DELIMITER, - self::TYPE_LABEL, - ]; + public const FLAG_NONE = 0; // Flags that describe the tokens in more detail. // All keywords must have flag 1 so `Context::isKeyword` method doesn't @@ -169,74 +65,59 @@ class Token /** * The token it its raw string representation. - * - * @var string */ - public $token; + public string $token; /** * The value this token contains (i.e. token after some evaluation). - * - * @var mixed */ - public $value; + public bool|float|int|string $value; /** * The keyword value this token contains, always uppercase. - * - * @var mixed|string|null */ - public $keyword; + public string|null $keyword = null; /** * The type of this token. - * - * @var int */ - public $type; + public TokenType $type; /** * The flags of this token. - * - * @var int */ - public $flags; + public int $flags; /** * The position in the initial string where this token started. * * The position is counted in chars, not bytes, so you should * use mb_* functions to properly handle utf-8 multibyte chars. - * - * @var int|null */ - public $position; + public int|null $position = null; /** - * @param string $token the value of the token - * @param int $type the type of the token - * @param int $flags the flags of the token + * @param string $token the value of the token + * @param TokenType $type the type of the token + * @param int $flags the flags of the token */ - public function __construct($token, $type = 0, $flags = 0) + public function __construct(string $token, TokenType $type = TokenType::None, int $flags = self::FLAG_NONE) { $this->token = $token; $this->type = $type; $this->flags = $flags; - $this->keyword = null; $this->value = $this->extract(); } /** - * Does little processing to the token to extract a value. + * Does a little processing to the token to extract a value. * * If no processing can be done it will return the initial string. - * - * @return mixed */ - public function extract() + public function extract(): bool|float|int|string { switch ($this->type) { - case self::TYPE_KEYWORD: + case TokenType::Keyword: $this->keyword = strtoupper($this->token); if (! ($this->flags & self::FLAG_KEYWORD_RESERVED)) { // Unreserved keywords should stay the way they are because they @@ -246,13 +127,13 @@ public function extract() return $this->keyword; - case self::TYPE_WHITESPACE: + case TokenType::Whitespace: return ' '; - case self::TYPE_BOOL: + case TokenType::Bool: return strtoupper($this->token) === 'TRUE'; - case self::TYPE_NUMBER: + case TokenType::Number: $ret = str_replace('--', '', $this->token); // e.g. ---42 === -42 if ($this->flags & self::FLAG_NUMBER_HEX) { $ret = str_replace(['-', '+'], '', $this->token); @@ -269,7 +150,7 @@ public function extract() return $ret; - case self::TYPE_STRING: + case TokenType::String: // Trims quotes. $str = $this->token; $str = mb_substr($str, 1, -1, 'UTF-8'); @@ -291,7 +172,7 @@ public function extract() return $str; - case self::TYPE_SYMBOL: + case TokenType::Symbol: $str = $this->token; if (isset($str[0]) && ($str[0] === '@')) { // `mb_strlen($str)` must be used instead of `null` because @@ -300,7 +181,7 @@ public function extract() $str, ! empty($str[1]) && ($str[1] === '@') ? 2 : 1, mb_strlen($str), - 'UTF-8' + 'UTF-8', ); } @@ -315,17 +196,16 @@ public function extract() } return $str; - } - return $this->token; + default: + return $this->token; + } } /** * Converts the token into an inline token by replacing tabs and new lines. - * - * @return string */ - public function getInlineToken() + public function getInlineToken(): string { return str_replace( [ @@ -338,7 +218,7 @@ public function getInlineToken() '\n', '\t', ], - $this->token + $this->token, ); } } diff --git a/src/TokenType.php b/src/TokenType.php new file mode 100644 index 000000000..cc13516a3 --- /dev/null +++ b/src/TokenType.php @@ -0,0 +1,95 @@ +, !==, etc. + * Bitwise operators: &, |, ^, etc. + * Assignment operators: =, +=, -=, etc. + * SQL specific operators: . (e.g. .. WHERE database.table ..), + * * (e.g. SELECT * FROM ..) + */ + case Operator = 2; + + /** + * Spaces, tabs, new lines, etc. + */ + case Whitespace = 3; + + /** + * Any type of legal comment. + * + * Bash (#), C (/* *\/) or SQL (--) comments: + * + * -- SQL-comment + * + * #Bash-like comment + * + * /*C-like comment*\/ + * + * or: + * + * /*C-like + * comment*\/ + * + * Backslashes were added to respect PHP's comments syntax. + */ + case Comment = 4; + + /** + * Boolean values: true or false. + */ + case Bool = 5; + + /** + * Numbers: 4, 0x8, 15.16, 23e42, etc. + */ + case Number = 6; + + /** + * Literal strings: 'string', "test". + * Some of these strings are actually symbols. + */ + case String = 7; + + /** + * Database, table names, variables, etc. + * For example: ```SELECT `foo`, `bar` FROM `database`.`table`;```. + */ + case Symbol = 8; + + /** + * Delimits an unknown string. + * For example: ```SELECT * FROM test;```, `test` is a delimiter. + */ + case Delimiter = 9; + + /** + * Labels in LOOP statement, ITERATE statement etc. + * For example (only for begin label): + * begin_label: BEGIN [statement_list] END [end_label] + * begin_label: LOOP [statement_list] END LOOP [end_label] + * begin_label: REPEAT [statement_list] ... END REPEAT [end_label] + * begin_label: WHILE ... DO [statement_list] END WHILE [end_label]. + */ + case Label = 10; +} diff --git a/src/TokensList.php b/src/TokensList.php index 883835395..2f2202df6 100644 --- a/src/TokensList.php +++ b/src/TokensList.php @@ -10,7 +10,6 @@ use function count; use function in_array; use function is_array; -use function is_string; /** * Defines an array of tokens and utility functions to iterate through it. @@ -21,63 +20,40 @@ */ class TokensList implements ArrayAccess { - /** - * The array of tokens. - * - * @var Token[] - */ - public $tokens = []; - /** * The count of tokens. - * - * @var int */ - public $count = 0; + public int $count = 0; /** * The index of the next token to be returned. - * - * @var int */ - public $idx = 0; + public int $idx = 0; + + /** @param Token[] $tokens The array of tokens. */ + public function __construct(public array $tokens = []) + { + $this->count = count($tokens); + } /** - * @param Token[] $tokens the initial array of tokens - * @param int $count the count of tokens in the initial array + * Builds an array of tokens by merging their raw value. */ - public function __construct(array $tokens = [], $count = -1) + public function build(): string { - if (empty($tokens)) { - return; - } - - $this->tokens = $tokens; - $this->count = $count === -1 ? count($tokens) : $count; + return static::buildFromArray($this->tokens); } /** * Builds an array of tokens by merging their raw value. * - * @param string|Token[]|TokensList $list the tokens to be built - * - * @return string + * @param Token[] $list the tokens to be built */ - public static function build($list) + public static function buildFromArray(array $list): string { - if (is_string($list)) { - return $list; - } - - if ($list instanceof self) { - $list = $list->tokens; - } - $ret = ''; - if (is_array($list)) { - foreach ($list as $tok) { - $ret .= $tok->token; - } + foreach ($list as $token) { + $ret .= $token->token; } return $ret; @@ -87,10 +63,8 @@ public static function build($list) * Adds a new token. * * @param Token $token token to be added in list - * - * @return void */ - public function add(Token $token) + public function add(Token $token): void { $this->tokens[$this->count++] = $token; } @@ -98,15 +72,13 @@ public function add(Token $token) /** * Gets the next token. Skips any irrelevant token (whitespaces and * comments). - * - * @return Token|null */ - public function getNext() + public function getNext(): Token|null { for (; $this->idx < $this->count; ++$this->idx) { if ( - ($this->tokens[$this->idx]->type !== Token::TYPE_WHITESPACE) - && ($this->tokens[$this->idx]->type !== Token::TYPE_COMMENT) + ($this->tokens[$this->idx]->type !== TokenType::Whitespace) + && ($this->tokens[$this->idx]->type !== TokenType::Comment) ) { return $this->tokens[$this->idx++]; } @@ -119,12 +91,12 @@ public function getNext() * Gets the previous token. Skips any irrelevant token (whitespaces and * comments). */ - public function getPrevious(): ?Token + public function getPrevious(): Token|null { for (; $this->idx >= 0; --$this->idx) { if ( - ($this->tokens[$this->idx]->type !== Token::TYPE_WHITESPACE) - && ($this->tokens[$this->idx]->type !== Token::TYPE_COMMENT) + ($this->tokens[$this->idx]->type !== TokenType::Whitespace) + && ($this->tokens[$this->idx]->type !== TokenType::Comment) ) { return $this->tokens[$this->idx--]; } @@ -136,11 +108,9 @@ public function getPrevious(): ?Token /** * Gets the previous token. * - * @param int|int[] $type the type - * - * @return Token|null + * @param TokenType|TokenType[] $type the type */ - public function getPreviousOfType($type) + public function getPreviousOfType(TokenType|array $type): Token|null { if (! is_array($type)) { $type = [$type]; @@ -158,11 +128,9 @@ public function getPreviousOfType($type) /** * Gets the next token. * - * @param int|int[] $type the type - * - * @return Token|null + * @param TokenType|TokenType[] $type the type */ - public function getNextOfType($type) + public function getNextOfType(TokenType|array $type): Token|null { if (! is_array($type)) { $type = [$type]; @@ -180,12 +148,10 @@ public function getNextOfType($type) /** * Gets the next token. * - * @param int $type the type of the token - * @param string $value the value of the token - * - * @return Token|null + * @param TokenType $type the type of the token + * @param string $value the value of the token */ - public function getNextOfTypeAndValue($type, $value) + public function getNextOfTypeAndValue(TokenType $type, string $value): Token|null { for (; $this->idx < $this->count; ++$this->idx) { if (($this->tokens[$this->idx]->type === $type) && ($this->tokens[$this->idx]->value === $value)) { @@ -199,10 +165,10 @@ public function getNextOfTypeAndValue($type, $value) /** * Gets the next token. * - * @param int $type the type of the token - * @param int $flag the flag of the token + * @param TokenType $type the type of the token + * @param int $flag the flag of the token */ - public function getNextOfTypeAndFlag(int $type, int $flag): ?Token + public function getNextOfTypeAndFlag(TokenType $type, int $flag): Token|null { for (; $this->idx < $this->count; ++$this->idx) { if (($this->tokens[$this->idx]->type === $type) && ($this->tokens[$this->idx]->flags === $flag)) { @@ -221,11 +187,8 @@ public function getNextOfTypeAndFlag(int $type, int $flag): ?Token * * @param int|null $offset the offset to be set. Must be positive otherwise, nothing will be stored. * @param Token $value the token to be saved - * - * @return void */ - #[\ReturnTypeWillChange] - public function offsetSet($offset, $value) + public function offsetSet(mixed $offset, mixed $value): void { if ($offset === null || $offset >= $this->count) { $this->tokens[$this->count++] = $value; @@ -239,11 +202,8 @@ public function offsetSet($offset, $value) * If the offset is negative or above the number of tokens set in the list, will return null. * * @param int $offset the offset to be returned - * - * @return Token|null */ - #[\ReturnTypeWillChange] - public function offsetGet($offset) + public function offsetGet(mixed $offset): Token|null { return $this->offsetExists($offset) ? $this->tokens[$offset] : null; } @@ -253,11 +213,8 @@ public function offsetGet($offset) * If the offset is negative or above the number of tokens set in the list, will return false. * * @param int $offset the offset to be checked - * - * @return bool */ - #[\ReturnTypeWillChange] - public function offsetExists($offset) + public function offsetExists(mixed $offset): bool { return $offset >= 0 && $offset < $this->count; } @@ -266,11 +223,8 @@ public function offsetExists($offset) * Unsets the value of an offset, if the offset exists. * * @param int $offset the offset to be unset - * - * @return void */ - #[\ReturnTypeWillChange] - public function offsetUnset($offset) + public function offsetUnset(mixed $offset): void { if (! $this->offsetExists($offset)) { return; diff --git a/src/Tools/ContextGenerator.php b/src/Tools/ContextGenerator.php index 7d6f4d610..05e1a99aa 100644 --- a/src/Tools/ContextGenerator.php +++ b/src/Tools/ContextGenerator.php @@ -21,10 +21,10 @@ use function scandir; use function sort; use function sprintf; +use function str_contains; use function str_replace; use function str_split; use function strlen; -use function strstr; use function strtoupper; use function substr; use function trim; @@ -42,7 +42,7 @@ class ContextGenerator * * @var array */ - public static $LABELS_FLAGS = [ + public static array $labelsFlags = [ '(R)' => Token::FLAG_KEYWORD_RESERVED, '(D)' => Token::FLAG_KEYWORD_DATA_TYPE, '(K)' => Token::FLAG_KEYWORD_KEY, @@ -54,7 +54,7 @@ class ContextGenerator * * @var array */ - public static $LINKS = [ + public static array $links = [ 'MySql50000' => 'https://dev.mysql.com/doc/refman/5.0/en/keywords.html', 'MySql50100' => 'https://dev.mysql.com/doc/refman/5.1/en/keywords.html', 'MySql50500' => 'https://dev.mysql.com/doc/refman/5.5/en/keywords.html', @@ -67,6 +67,8 @@ class ContextGenerator 'MySql80400' => 'https://dev.mysql.com/doc/refman/8.4/en/keywords.html', 'MySql90000' => 'https://dev.mysql.com/doc/refman/9.0/en/keywords.html', 'MySql90100' => 'https://dev.mysql.com/doc/refman/9.1/en/keywords.html', + 'MySql90200' => 'https://dev.mysql.com/doc/refman/9.2/en/keywords.html', + 'MySql90300' => 'https://dev.mysql.com/doc/refman/9.3/en/keywords.html', 'MariaDb100000' => 'https://mariadb.com/kb/en/reserved-words/', 'MariaDb100100' => 'https://mariadb.com/kb/en/reserved-words/', 'MariaDb100200' => 'https://mariadb.com/kb/en/reserved-words/', @@ -87,6 +89,9 @@ class ContextGenerator 'MariaDb110500' => 'https://mariadb.com/kb/en/reserved-words/', 'MariaDb110600' => 'https://mariadb.com/kb/en/reserved-words/', 'MariaDb110700' => 'https://mariadb.com/kb/en/reserved-words/', + 'MariaDb110800' => 'https://mariadb.com/kb/en/reserved-words/', + 'MariaDb120000' => 'https://mariadb.com/kb/en/reserved-words/', + 'MariaDb120100' => 'https://mariadb.com/kb/en/reserved-words/', ]; /** @@ -94,7 +99,7 @@ class ContextGenerator * * @var array */ - private static $typesNumToConst = [ + private static array $typesNumToConst = [ 1 => 'Token::FLAG_KEYWORD', 2 => 'Token::FLAG_KEYWORD_RESERVED', 4 => 'Token::FLAG_KEYWORD_COMPOSED', @@ -119,7 +124,6 @@ class ContextGenerator namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -130,7 +134,7 @@ class ContextGenerator * * @see %3$s */ -class %2$s extends Context +final class %2$s { /** * List of keywords. @@ -139,10 +143,10 @@ class %2$s extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ %4$s ]; } @@ -155,7 +159,7 @@ class %2$s extends Context * * @return array> */ - public static function sortWords(array &$arr) + public static function sortWords(array &$arr): array { ksort($arr); foreach ($arr as &$words) { @@ -172,7 +176,7 @@ public static function sortWords(array &$arr) * * @return array> */ - public static function readWords(array $files) + public static function readWords(array $files): array { /** @psalm-var list $words */ $words = []; @@ -192,8 +196,8 @@ public static function readWords(array $files) $type = Token::FLAG_KEYWORD; // Reserved, data types, keys, functions, etc. keywords. - foreach (static::$LABELS_FLAGS as $label => $flags) { - if (strstr($value, $label) === false) { + foreach (static::$labelsFlags as $label => $flags) { + if (! str_contains($value, $label)) { continue; } @@ -202,7 +206,7 @@ public static function readWords(array $files) } // Composed keyword. - if (strstr($value, ' ') !== false) { + if (str_contains($value, ' ')) { $type |= Token::FLAG_KEYWORD_RESERVED; $type |= Token::FLAG_KEYWORD_COMPOSED; } @@ -248,7 +252,7 @@ private static function translateIntTypeToTextConstant(int $type): string static function (int $num) use ($type): bool { return ($type & $num) !== 0; }, - ARRAY_FILTER_USE_KEY + ARRAY_FILTER_USE_KEY, ); return implode(' | ', $matchingFlags); @@ -264,10 +268,8 @@ static function (int $num) use ($type): bool { * link: string, * keywords: array> * } $options - * - * @return string */ - public static function generate($options) + public static function generate(array $options): string { $options['keywords'] = static::printWords($options['keywords']); @@ -278,10 +280,8 @@ public static function generate($options) * Formats context name. * * @param string $name name to format - * - * @return string */ - public static function formatName($name) + public static function formatName(string $name): string { /* Split name and version */ $parts = []; @@ -291,13 +291,10 @@ public static function formatName($name) /* Format name */ $base = $parts[1]; - switch ($base) { - case 'MySql': - $base = 'MySQL'; - break; - case 'MariaDb': - $base = 'MariaDB'; - break; + if ($base === 'MySql') { + $base = 'MySQL'; + } elseif ($base === 'MariaDb') { + $base = 'MariaDB'; } /* Parse version to array */ @@ -323,17 +320,13 @@ public static function formatName($name) * * @param string $input the input file * @param string $output the output directory - * - * @return void */ - public static function build($input, $output) + public static function build(string $input, string $output): void { /** * The directory that contains the input file. * * Used to include common files. - * - * @var string */ $directory = dirname($input) . '/'; @@ -344,15 +337,11 @@ public static function build($input, $output) /** * The name of the context. - * - * @var string */ $name = substr($file, 0, -4); /** * The name of the class that defines this context. - * - * @var string */ $class = 'Context' . $name; @@ -367,16 +356,16 @@ public static function build($input, $output) [ 'name' => $formattedName, 'class' => $class, - 'link' => static::$LINKS[$name], + 'link' => static::$links[$name], 'keywords' => static::readWords( [ $directory . '_common.txt', $directory . '_functions' . $file, $directory . $file, - ] + ], ), - ] - ) + ], + ), ); } @@ -385,10 +374,8 @@ public static function build($input, $output) * * @param string $input the input directory * @param string $output the output directory - * - * @return void */ - public static function buildAll($input, $output) + public static function buildAll(string $input, string $output): void { $files = scandir($input); diff --git a/src/Tools/CustomJsonSerializer.php b/src/Tools/CustomJsonSerializer.php index 65ef9058e..d05f0f0bc 100644 --- a/src/Tools/CustomJsonSerializer.php +++ b/src/Tools/CustomJsonSerializer.php @@ -16,33 +16,9 @@ class CustomJsonSerializer extends JsonSerializer { public const SKIP_PROPERTIES = [ - 'ALLOWED_KEYWORDS', - 'GROUP_OPTIONS', - 'END_OPTIONS', - 'KEYWORD_PARSERS', - 'STATEMENT_PARSERS', - 'KEYWORD_NAME_INDICATORS', - 'OPERATOR_NAME_INDICATORS', - 'DEFAULT_DELIMITER', - 'PARSER_METHODS', - 'OPTIONS', - 'CLAUSES', - 'DB_OPTIONS', - 'DELIMITERS', - 'JOINS', - 'FIELDS_OPTIONS', - 'LINES_OPTIONS', - 'TRIGGER_OPTIONS', - 'FUNC_OPTIONS', - 'TABLE_OPTIONS', - 'FIELD_OPTIONS', - 'DATA_TYPE_OPTIONS', - 'REFERENCES_OPTIONS', - 'KEY_OPTIONS', - 'VIEW_OPTIONS', - 'EVENT_OPTIONS', - 'USER_OPTIONS', - 'asciiMap', + 'defaultDelimiter', + 'clauses', + 'statementOptions', ]; /** @@ -54,7 +30,8 @@ class CustomJsonSerializer extends JsonSerializer * * @return array */ - protected function extractObjectData($value, $ref, $properties) + // phpcs:ignore SlevomatCodingStandard.TypeHints + protected function extractObjectData($value, $ref, $properties): array { $data = []; foreach ($properties as $property) { @@ -66,7 +43,7 @@ protected function extractObjectData($value, $ref, $properties) $propRef = $ref->getProperty($property); $propRef->setAccessible(true); $data[$property] = $propRef->getValue($value); - } catch (ReflectionException $e) { + } catch (ReflectionException) { $data[$property] = $value->$property; } } diff --git a/src/Tools/TestGenerator.php b/src/Tools/TestGenerator.php index 1fa924d20..ec032b72f 100644 --- a/src/Tools/TestGenerator.php +++ b/src/Tools/TestGenerator.php @@ -10,7 +10,9 @@ use PhpMyAdmin\SqlParser\Exceptions\ParserException; use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Tests\UtfStringSerializer; use PhpMyAdmin\SqlParser\Token; +use PhpMyAdmin\SqlParser\UtfString; use function dirname; use function file_exists; @@ -48,7 +50,7 @@ class TestGenerator * * @return array>>|null> */ - public static function generate($query, $type = 'parser') + public static function generate(string $query, string $type = 'parser'): array { /** * Lexer used for tokenizing the query. @@ -58,15 +60,11 @@ public static function generate($query, $type = 'parser') /** * Parsed used for analyzing the query. * A new instance of parser is generated only if the test requires. - * - * @var Parser */ $parser = $type === 'parser' ? new Parser($lexer->list) : null; /** * Lexer's errors. - * - * @var array> */ $lexerErrors = []; @@ -130,11 +128,14 @@ public static function generate($query, $type = 'parser') * @param string $output the output file * @param string $debug the debug file * @param bool $ansi activate quotes ANSI mode - * - * @return void */ - public static function build($type, $input, $output, $debug = null, $ansi = false) - { + public static function build( + string $type, + string $input, + string $output, + string|null $debug = null, + bool $ansi = false, + ): void { // Support query types: `lexer` / `parser`. if (! in_array($type, ['lexer', 'parser'])) { throw new Exception('Unknown test type (expected `lexer` or `parser`).'); @@ -142,8 +143,6 @@ public static function build($type, $input, $output, $debug = null, $ansi = fals /** * The query that is used to generate the test. - * - * @var string */ $query = file_get_contents($input); @@ -164,20 +163,22 @@ public static function build($type, $input, $output, $debug = null, $ansi = fals Context::load('MariaDb' . $mariaDbVersion); } else { // Load the default context to be sure there is no side effects - Context::load(''); + Context::load(); } $test = static::generate($query, $type); // unset mode, reset to default every time, to be sure Context::setMode(); - $serializer = new CustomJsonSerializer(); + $serializer = new CustomJsonSerializer(null, [ + UtfString::class => new UtfStringSerializer(), + ]); // Writing test's data. $encoded = $serializer->serialize($test); $encoded = (string) json_encode( json_decode($encoded), - JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION | JSON_UNESCAPED_SLASHES + JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION | JSON_UNESCAPED_SLASHES, ); // Remove the project path from .out file, it changes for each dev @@ -197,13 +198,10 @@ public static function build($type, $input, $output, $debug = null, $ansi = fals /** * Generates recursively all tests preserving the directory structure. * - * @param string $input the input directory - * @param string $output the output directory - * @param mixed|null $debug - * - * @return void + * @param string $input the input directory + * @param string $output the output directory */ - public static function buildAll($input, $output, $debug = null) + public static function buildAll(string $input, string $output, mixed $debug = null): void { $files = scandir($input); @@ -247,7 +245,7 @@ public static function buildAll($input, $output, $debug = null) $inputFile, $outputFile, $debugFile, - str_contains($inputFile, 'ansi') + str_contains($inputFile, 'ansi'), ); } else { echo sprintf("Test for %s already built!\n", $inputFile); diff --git a/src/Translator.php b/src/Translator.php index b0a9ebc52..b1e07a65a 100644 --- a/src/Translator.php +++ b/src/Translator.php @@ -5,7 +5,10 @@ namespace PhpMyAdmin\SqlParser; use PhpMyAdmin\MoTranslator\Loader; +use PhpMyAdmin\MoTranslator\Translator as MoTranslator; +use RuntimeException; +use function assert; use function class_exists; /** @@ -15,33 +18,36 @@ class Translator { /** * The MoTranslator loader object. - * - * @var Loader */ - private static $loader; + private static Loader|null $loader = null; /** * The MoTranslator translator object. - * - * @var \PhpMyAdmin\MoTranslator\Translator */ - private static $translator; + private static MoTranslator|null $translator = null; + + private static string $locale = ''; /** * Loads translator. * - * @return void + * @internal This method is not covered by the backward compatibility promise for SQL-Parser */ - public static function load() + public static function load(): void { - if (self::$loader === null) { + if (! class_exists(Loader::class)) { + throw new RuntimeException('The phpmyadmin/motranslator package is missing.'); + } + + if (! isset(self::$loader)) { // Create loader object self::$loader = new Loader(); - // Set locale - self::$loader->setlocale( - self::$loader->detectlocale() - ); + if (self::$locale === '') { + self::$locale = self::$loader->detectlocale(); + } + + self::$loader->setlocale(self::$locale); // Set default text domain self::$loader->textdomain('sqlparser'); @@ -50,7 +56,7 @@ public static function load() self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/'); } - if (self::$translator !== null) { + if (isset(self::$translator)) { return; } @@ -65,14 +71,25 @@ public static function load() * * @return string translated string (or original, if not found) */ - public static function gettext($msgid) + public static function gettext(string $msgid): string { - if (! class_exists('\PhpMyAdmin\MoTranslator\Loader', true)) { + if (! class_exists(Loader::class)) { return $msgid; } self::load(); + assert(self::$translator instanceof MoTranslator); return self::$translator->gettext($msgid); } + + public static function setLocale(string $locale): void + { + self::$locale = $locale; + } + + public static function getLocale(): string + { + return self::$locale; + } } diff --git a/src/UtfString.php b/src/UtfString.php index a94950858..c2a750b00 100644 --- a/src/UtfString.php +++ b/src/UtfString.php @@ -8,9 +8,10 @@ use Exception; use Stringable; +use function count; +use function implode; use function mb_check_encoding; -use function mb_strlen; -use function ord; +use function mb_str_split; /** * Implementation for UTF-8 strings. @@ -29,171 +30,19 @@ class UtfString implements ArrayAccess, Stringable { /** - * The raw, multi-byte string. + * The multi-byte characters. * - * @var string + * @var list */ - public $str = ''; + public array $characters; - /** - * The index of current byte. - * - * For ASCII strings, the byte index is equal to the character index. - * - * @var int - */ - public $byteIdx = 0; - - /** - * The index of current character. - * - * For non-ASCII strings, some characters occupy more than one byte and - * the character index will have a lower value than the byte index. - * - * @var int - */ - public $charIdx = 0; - - /** - * The length of the string (in bytes). - * - * @var int - */ - public $byteLen = 0; - - /** - * The length of the string (in characters). - * - * @var int - */ - public $charLen = 0; - - /** - * A map of ASCII binary values to their ASCII code - * This is to improve performance and avoid calling ord($byte) - * - * Source: https://www.freecodecamp.org/news/ascii-table-hex-to-ascii-value-character-code-chart-2/ - * - * @var array - */ - protected static $asciiMap = [ - "\0" => 0, // (00000000) NUL Null - "\t" => 9, // (00001001) HT Horizontal Tab - "\n" => 10, // (00001010) LF Newline / Line Feed - "\v" => 11, // (00001011) VT Vertical Tab - "\f" => 12, // (00001100) FF Form Feed - "\r" => 13, // (00001101) CR Carriage Return - ' ' => 32, // (00100000) SP Space - '!' => 33, // (00100001) ! Exclamation mark - '"' => 34, // (00100010) " Double quote - '#' => 35, // (00100011) # Number - '$' => 36, // (00100100) $ Dollar - '%' => 37, // (00100101) % Percent - '&' => 38, // (00100110) & Ampersand - '\'' => 39, // (00100111) ' Single quote - '(' => 40, // (00101000) ( Left parenthesis - ')' => 41, // (00101001) ) Right parenthesis - '*' => 42, // (00101010) * Asterisk - '+' => 43, // (00101011) + Plus - ',' => 44, // (00101100) , Comma - '-' => 45, // (00101101) - Minus - '.' => 46, // (00101110) . Period - '/' => 47, // (00101111) / Slash - '0' => 48, // (00110000) 0 Zero - '1' => 49, // (00110001) 1 One - '2' => 50, // (00110010) 2 Two - '3' => 51, // (00110011) 3 Three - '4' => 52, // (00110100) 4 Four - '5' => 53, // (00110101) 5 Five - '6' => 54, // (00110110) 6 Six - '7' => 55, // (00110111) 7 Seven - '8' => 56, // (00111000) 8 Eight - '9' => 57, // (00111001) 9 Nine - ':' => 58, // (00111010) : Colon - ';' => 59, // (00111011) ; Semicolon - '<' => 60, // (00111100) < Less than - '=' => 61, // (00111101) = Equal sign - '>' => 62, // (00111110) > Greater than - '?' => 63, // (00111111) ? Question mark - '@' => 64, // (01000000) @ At sign - 'A' => 65, // (01000001) A Uppercase A - 'B' => 66, // (01000010) B Uppercase B - 'C' => 67, // (01000011) C Uppercase C - 'D' => 68, // (01000100) D Uppercase D - 'E' => 69, // (01000101) E Uppercase E - 'F' => 70, // (01000110) F Uppercase F - 'G' => 71, // (01000111) G Uppercase G - 'H' => 72, // (01001000) H Uppercase H - 'I' => 73, // (01001001) I Uppercase I - 'J' => 74, // (01001010) J Uppercase J - 'K' => 75, // (01001011) K Uppercase K - 'L' => 76, // (01001100) L Uppercase L - 'M' => 77, // (01001101) M Uppercase M - 'N' => 78, // (01001110) N Uppercase N - 'O' => 79, // (01001111) O Uppercase O - 'P' => 80, // (01010000) P Uppercase P - 'Q' => 81, // (01010001) Q Uppercase Q - 'R' => 82, // (01010010) R Uppercase R - 'S' => 83, // (01010011) S Uppercase S - 'T' => 84, // (01010100) T Uppercase T - 'U' => 85, // (01010101) U Uppercase U - 'V' => 86, // (01010110) V Uppercase V - 'W' => 87, // (01010111) W Uppercase W - 'X' => 88, // (01011000) X Uppercase X - 'Y' => 89, // (01011001) Y Uppercase Y - 'Z' => 90, // (01011010) Z Uppercase Z - '[' => 91, // (01011011) [ Left square bracket - '\\' => 92, // (01011100) \ backslash - ']' => 93, // (01011101) ] Right square bracket - '^' => 94, // (01011110) ^ Caret / circumflex - '_' => 95, // (01011111) _ Underscore - '`' => 96, // (01100000) ` Grave / accent - 'a' => 97, // (01100001) a Lowercase a - 'b' => 98, // (01100010) b Lowercase b - 'c' => 99, // (01100011) c Lowercase c - 'd' => 100, // (01100100) d Lowercase d - 'e' => 101, // (01100101) e Lowercase e - 'f' => 102, // (01100110) f Lowercase - 'g' => 103, // (01100111) g Lowercase g - 'h' => 104, // (01101000) h Lowercase h - 'i' => 105, // (01101001) i Lowercase i - 'j' => 106, // (01101010) j Lowercase j - 'k' => 107, // (01101011) k Lowercase k - 'l' => 108, // (01101100) l Lowercase l - 'm' => 109, // (01101101) m Lowercase m - 'n' => 110, // (01101110) n Lowercase n - 'o' => 111, // (01101111) o Lowercase o - 'p' => 112, // (01110000) p Lowercase p - 'q' => 113, // (01110001) q Lowercase q - 'r' => 114, // (01110010) r Lowercase r - 's' => 115, // (01110011) s Lowercase s - 't' => 116, // (01110100) t Lowercase t - 'u' => 117, // (01110101) u Lowercase u - 'v' => 118, // (01110110) v Lowercase v - 'w' => 119, // (01110111) w Lowercase w - 'x' => 120, // (01111000) x Lowercase x - 'y' => 121, // (01111001) y Lowercase y - 'z' => 122, // (01111010) z Lowercase z - '{' => 123, // (01111011) { Left curly bracket - '|' => 124, // (01111100) | Vertical bar - '}' => 125, // (01111101) } Right curly bracket - '~' => 126, // (01111110) ~ Tilde - "\x7f" => 127, // (01111111) DEL Delete - ]; - - /** - * @param string $str the string - */ - public function __construct($str) + /** @param string $str the string */ + public function __construct(string $str) { - $this->str = $str; - $this->byteIdx = 0; - $this->charIdx = 0; - $this->byteLen = mb_strlen($str, '8bit'); - if (! mb_check_encoding($str, 'UTF-8')) { - $this->charLen = 0; + if (mb_check_encoding($str, 'UTF-8')) { + $this->characters = mb_str_split($str, 1, 'UTF-8'); } else { - $this->charLen = mb_strlen($str, 'UTF-8'); + $this->characters = []; } } @@ -201,56 +50,20 @@ public function __construct($str) * Checks if the given offset exists. * * @param int $offset the offset to be checked - * - * @return bool */ - #[\ReturnTypeWillChange] - public function offsetExists($offset) + public function offsetExists(mixed $offset): bool { - return ($offset >= 0) && ($offset < $this->charLen); + return $offset >= 0 && $offset < count($this->characters); } /** * Gets the character at given offset. * * @param int $offset the offset to be returned - * - * @return string|null */ - #[\ReturnTypeWillChange] - public function offsetGet($offset) + public function offsetGet(mixed $offset): string { - if (($offset < 0) || ($offset >= $this->charLen)) { - return null; - } - - $delta = $offset - $this->charIdx; - - if ($delta > 0) { - // Fast forwarding. - while ($delta-- > 0) { - $this->byteIdx += static::getCharLength($this->str[$this->byteIdx]); - ++$this->charIdx; - } - } elseif ($delta < 0) { - // Rewinding. - while ($delta++ < 0) { - do { - $byte = ord($this->str[--$this->byteIdx]); - } while (($byte >= 128) && ($byte < 192)); - - --$this->charIdx; - } - } - - $bytesCount = static::getCharLength($this->str[$this->byteIdx]); - - $ret = ''; - for ($i = 0; $bytesCount-- > 0; ++$i) { - $ret .= $this->str[$this->byteIdx + $i]; - } - - return $ret; + return $this->characters[$offset] ?? ''; } /** @@ -259,12 +72,9 @@ public function offsetGet($offset) * @param int $offset the offset to be set * @param string $value the value to be set * - * @return void - * * @throws Exception not implemented. */ - #[\ReturnTypeWillChange] - public function offsetSet($offset, $value) + public function offsetSet(mixed $offset, mixed $value): void { throw new Exception('Not implemented.'); } @@ -274,81 +84,26 @@ public function offsetSet($offset, $value) * * @param int $offset the value to be unset * - * @return void - * * @throws Exception not implemented. */ - #[\ReturnTypeWillChange] - public function offsetUnset($offset) + public function offsetUnset(mixed $offset): void { throw new Exception('Not implemented.'); } - /** - * Gets the length of an UTF-8 character. - * - * According to RFC 3629, a UTF-8 character can have at most 4 bytes. - * However, this implementation supports UTF-8 characters containing up to 6 - * bytes. - * - * @see https://tools.ietf.org/html/rfc3629 - * - * @param string $byte the byte to be analyzed - * - * @return int - */ - public static function getCharLength($byte) - { - // Use the default ASCII map as queries are mostly ASCII chars - // ord($byte) has a performance cost - - if (! isset(static::$asciiMap[$byte])) { - // Complete the cache with missing items - static::$asciiMap[$byte] = ord($byte); - } - - $byte = static::$asciiMap[$byte]; - - if ($byte < 128) { - return 1; - } - - if ($byte < 224) { - return 2; - } - - if ($byte < 240) { - return 3; - } - - if ($byte < 248) { - return 4; - } - - if ($byte < 252) { - return 5; // unofficial - } - - return 6; // unofficial - } - /** * Returns the length in characters of the string. - * - * @return int */ - public function length() + public function length(): int { - return $this->charLen; + return count($this->characters); } /** * Returns the contained string. - * - * @return string */ - public function __toString() + public function __toString(): string { - return $this->str; + return implode('', $this->characters); } } diff --git a/src/Utils/BufferedQuery.php b/src/Utils/BufferedQuery.php index b583c6fda..f7e552374 100644 --- a/src/Utils/BufferedQuery.php +++ b/src/Utils/BufferedQuery.php @@ -38,10 +38,8 @@ class BufferedQuery * The query that is being processed. * * This field can be modified just by appending to it! - * - * @var string */ - public $query = ''; + public string $query = ''; /** * The options of this parser. @@ -49,42 +47,34 @@ class BufferedQuery * @var array * @psalm-var array{delimiter?: non-empty-string, parse_delimiter?: bool, add_delimiter?: bool} */ - public $options = []; + public array $options = []; /** * The last delimiter used. - * - * @var string */ - public $delimiter; + public string $delimiter; /** * The length of the delimiter. - * - * @var int */ - public $delimiterLen; + public int $delimiterLen; /** * The current status of the parser. - * - * @var int|null */ - public $status; + public int|null $status = null; /** * The last incomplete query that was extracted. - * - * @var string */ - public $current = ''; + public string $current = ''; /** * @param string $query the query to be parsed * @param array $options the options of this parser * @psalm-param array{delimiter?: non-empty-string, parse_delimiter?: bool, add_delimiter?: bool} $options */ - public function __construct($query = '', array $options = []) + public function __construct(string $query = '', array $options = []) { // Merges specified options with defaults. $this->options = array_merge( @@ -96,7 +86,7 @@ public function __construct($query = '', array $options = []) // Whether a delimiter should be added at the end of the statement. 'add_delimiter' => false, ], - $options + $options, ); $this->query = $query; @@ -107,12 +97,8 @@ public function __construct($query = '', array $options = []) * Sets the delimiter. * * Used to update the length of it too. - * - * @param string $delimiter - * - * @return void */ - public function setDelimiter($delimiter) + public function setDelimiter(string $delimiter): void { $this->delimiter = $delimiter; $this->delimiterLen = strlen($delimiter); @@ -122,10 +108,8 @@ public function setDelimiter($delimiter) * Extracts a statement from the buffer. * * @param bool $end whether the end of the buffer was reached - * - * @return string|false */ - public function extract($end = false) + public function extract(bool $end = false): string|false { /** * The last parsed position. @@ -134,7 +118,7 @@ public function extract($end = false) * outside this method and there is probably a (minor) performance * improvement to it. * - * @var int + * @var int $i */ static $i = 0; @@ -144,8 +128,6 @@ public function extract($end = false) /** * The length of the buffer. - * - * @var int */ $len = strlen($this->query); @@ -191,7 +173,9 @@ public function extract($end = false) $this->current .= $this->query[$i]; continue; - } elseif ($this->status === self::STATUS_STRING_DOUBLE_QUOTES) { + } + + if ($this->status === self::STATUS_STRING_DOUBLE_QUOTES) { // Double-quoted strings like "bar". if ($this->query[$i] === '"') { $this->status = 0; @@ -199,14 +183,18 @@ public function extract($end = false) $this->current .= $this->query[$i]; continue; - } elseif ($this->status === self::STATUS_STRING_BACKTICK) { + } + + if ($this->status === self::STATUS_STRING_BACKTICK) { if ($this->query[$i] === '`') { $this->status = 0; } $this->current .= $this->query[$i]; continue; - } elseif (($this->status === self::STATUS_COMMENT_BASH) || ($this->status === self::STATUS_COMMENT_SQL)) { + } + + if (($this->status === self::STATUS_COMMENT_BASH) || ($this->status === self::STATUS_COMMENT_SQL)) { // Bash-like (#) or SQL-like (-- ) comments end in new line. if ($this->query[$i] === "\n") { $this->status = 0; @@ -214,7 +202,9 @@ public function extract($end = false) $this->current .= $this->query[$i]; continue; - } elseif ($this->status === self::STATUS_COMMENT_C) { + } + + if ($this->status === self::STATUS_COMMENT_C) { // C-like comments end in */. if (($this->query[$i - 1] === '*') && ($this->query[$i] === '/')) { $this->status = 0; @@ -328,7 +318,7 @@ public function extract($end = false) // Appending the `DELIMITER` statement that was just // found to the current statement. $ret = trim( - $this->current . ' ' . substr($this->query, $iBak, $i - $iBak) + $this->current . ' ' . substr($this->query, $iBak, $i - $iBak), ); } diff --git a/src/Utils/CLI.php b/src/Utils/CLI.php index 99e237b0e..fbd75c130 100644 --- a/src/Utils/CLI.php +++ b/src/Utils/CLI.php @@ -8,7 +8,6 @@ use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Parser; -use function count; use function getopt; use function implode; use function in_array; @@ -24,26 +23,31 @@ */ class CLI { + public function __construct() + { + Context::load(); + } + public function run(): int { $params = $this->getopt('', ['lint', 'highlight', 'tokenize']); if ($params !== false) { if (isset($params['lint'])) { - return $this->runLint(false); + return $this->runLint(); } if (isset($params['highlight'])) { - return $this->runHighlight(false); + return $this->runHighlight(); } if (isset($params['tokenize'])) { - return $this->runTokenize(false); + return $this->runTokenize(); } } - $this->usageLint(false); - $this->usageHighlight(false); - $this->usageTokenize(false); + $this->usageLint(); + $this->usageHighlight(); + $this->usageTokenize(); return 1; } @@ -51,10 +55,8 @@ public function run(): int /** * @param string[]|false[] $params * @param string[] $longopts - * - * @return void */ - public function mergeLongOpts(&$params, &$longopts) + public function mergeLongOpts(array &$params, array &$longopts): void { foreach ($longopts as $value) { $value = rtrim($value, ':'); @@ -66,32 +68,26 @@ public function mergeLongOpts(&$params, &$longopts) } } - /** - * @return void - */ - public function usageHighlight(bool $isStandalone = true) + public function usageHighlight(): void { - $command = $isStandalone ? 'highlight-query' : 'sql-parser --highlight'; + $command = 'sql-parser --highlight'; echo 'Usage: ' . $command . ' --query SQL [--format html|cli|text] [--ansi]' . "\n"; echo ' cat file.sql | ' . $command . "\n"; } /** - * @param string $opt * @param string[] $long * * @return string[]|false[]|false */ - public function getopt($opt, $long) + public function getopt(string $opt, array $long): array|false { return getopt($opt, $long); } - /** - * @return mixed|false - */ - public function parseHighlight() + /** @return string[]|false[]|false */ + public function parseHighlight(): array|false { $longopts = [ 'help', @@ -118,10 +114,7 @@ public function parseHighlight() return $params; } - /** - * @return int - */ - public function runHighlight(bool $isStandalone = true) + public function runHighlight(): int { $params = $this->parseHighlight(); if ($params === false) { @@ -129,7 +122,7 @@ public function runHighlight(bool $isStandalone = true) } if (isset($params['h'])) { - $this->usageHighlight($isStandalone); + $this->usageHighlight(); return 0; } @@ -146,37 +139,34 @@ public function runHighlight(bool $isStandalone = true) Context::setMode(Context::SQL_MODE_ANSI_QUOTES); } - if (isset($params['q'])) { + if (isset($params['q']) && $params['q'] !== false) { + // $params['f'] is guaranteed to be set and valid at this point. @see parseHighlight() echo Formatter::format( $params['q'], - ['type' => $params['f']] + new FormattingOptions(type: $params['f']), ); + echo "\n"; return 0; } echo "ERROR: Missing parameters!\n"; - $this->usageHighlight($isStandalone); + $this->usageHighlight(); return 1; } - /** - * @return void - */ - public function usageLint(bool $isStandalone = true) + public function usageLint(): void { - $command = $isStandalone ? 'lint-query' : 'sql-parser --lint'; + $command = 'sql-parser --lint'; echo 'Usage: ' . $command . ' --query SQL [--ansi]' . "\n"; echo ' cat file.sql | ' . $command . "\n"; } - /** - * @return mixed - */ - public function parseLint() + /** @return string[]|false[]|false */ + public function parseLint(): array|false { $longopts = [ 'help', @@ -185,15 +175,16 @@ public function parseLint() 'ansi', ]; $params = $this->getopt('hq:c:a', $longopts); + if ($params === false) { + return false; + } + $this->mergeLongOpts($params, $longopts); return $params; } - /** - * @return int - */ - public function runLint(bool $isStandalone = true) + public function runLint(): int { $params = $this->parseLint(); if ($params === false) { @@ -201,7 +192,7 @@ public function runLint(bool $isStandalone = true) } if (isset($params['h'])) { - $this->usageLint($isStandalone); + $this->usageLint(); return 0; } @@ -226,7 +217,7 @@ public function runLint(bool $isStandalone = true) $lexer = new Lexer($params['q'], false); $parser = new Parser($lexer->list); $errors = Error::get([$lexer, $parser]); - if (count($errors) === 0) { + if ($errors === []) { return 0; } @@ -238,26 +229,21 @@ public function runLint(bool $isStandalone = true) } echo "ERROR: Missing parameters!\n"; - $this->usageLint($isStandalone); + $this->usageLint(); return 1; } - /** - * @return void - */ - public function usageTokenize(bool $isStandalone = true) + public function usageTokenize(): void { - $command = $isStandalone ? 'tokenize-query' : 'sql-parser --tokenize'; + $command = 'sql-parser --tokenize'; echo 'Usage: ' . $command . ' --query SQL [--ansi]' . "\n"; echo ' cat file.sql | ' . $command . "\n"; } - /** - * @return mixed - */ - public function parseTokenize() + /** @return string[]|false[]|false */ + public function parseTokenize(): array|false { $longopts = [ 'help', @@ -265,15 +251,16 @@ public function parseTokenize() 'ansi', ]; $params = $this->getopt('hq:a', $longopts); + if ($params === false) { + return false; + } + $this->mergeLongOpts($params, $longopts); return $params; } - /** - * @return int - */ - public function runTokenize(bool $isStandalone = true) + public function runTokenize(): int { $params = $this->parseTokenize(); if ($params === false) { @@ -281,7 +268,7 @@ public function runTokenize(bool $isStandalone = true) } if (isset($params['h'])) { - $this->usageTokenize($isStandalone); + $this->usageTokenize(); return 0; } @@ -302,7 +289,7 @@ public function runTokenize(bool $isStandalone = true) $lexer = new Lexer($params['q'], false); foreach ($lexer->list->tokens as $idx => $token) { echo '[TOKEN ', $idx, "]\n"; - echo 'Type = ', $token->type, "\n"; + echo 'Type = ', $token->type->value, "\n"; echo 'Flags = ', $token->flags, "\n"; echo 'Value = '; var_export($token->value); @@ -317,15 +304,12 @@ public function runTokenize(bool $isStandalone = true) } echo "ERROR: Missing parameters!\n"; - $this->usageTokenize($isStandalone); + $this->usageTokenize(); return 1; } - /** - * @return string|false - */ - public function readStdin() + public function readStdin(): string|false|null { $read = [STDIN]; $write = []; diff --git a/src/Utils/Error.php b/src/Utils/Error.php index f52b91ccd..9bf9b8562 100644 --- a/src/Utils/Error.php +++ b/src/Utils/Error.php @@ -29,7 +29,7 @@ class Error * `$err[3]` holds the position of the string. * (i.e. `[$msg, $code, $str, $pos]`) */ - public static function get($objs) + public static function get(array $objs): array { $ret = []; @@ -50,8 +50,8 @@ public static function get($objs) $ret[] = [ $err->getMessage(), $err->getCode(), - $err->token !== null ? $err->token->token : '', - $err->token !== null ? $err->token->position : null, + $err->token?->token ?? '', + $err->token?->position, ]; } } @@ -75,9 +75,9 @@ public static function get($objs) * @return string[] */ public static function format( - $errors, - $format = '#%1$d: %2$s (near "%4$s" at position %5$d)' - ) { + array $errors, + string $format = '#%1$d: %2$s (near "%4$s" at position %5$d)', + ): array { $ret = []; $i = 0; @@ -88,7 +88,7 @@ public static function format( $err[0], $err[1], htmlspecialchars((string) $err[2]), - $err[3] + $err[3], ); } diff --git a/src/Utils/ForeignKey.php b/src/Utils/ForeignKey.php new file mode 100644 index 000000000..50a08eb2f --- /dev/null +++ b/src/Utils/ForeignKey.php @@ -0,0 +1,23 @@ +>> - */ - public $options; - /** * Clauses that are usually short. * @@ -54,7 +46,7 @@ class Formatter * * @var array */ - public static $SHORT_CLAUSES = [ + public static array $shortClauses = [ 'CREATE' => true, 'INSERT' => true, ]; @@ -66,7 +58,7 @@ class Formatter * * @var array */ - public static $INLINE_CLAUSES = [ + public static array $inlineClauses = [ 'CREATE' => true, 'INTO' => true, 'LIMIT' => true, @@ -77,290 +69,44 @@ class Formatter 'VALUES' => true, ]; - /** - * @param array>> $options the formatting options - */ - public function __construct(array $options = []) - { - $this->options = $this->getMergedOptions($options); - } - - /** - * The specified formatting options are merged with the default values. - * - * @param array>> $options - * - * @return array>> - */ - protected function getMergedOptions(array $options) - { - $options = array_merge( - $this->getDefaultOptions(), - $options - ); - - if (isset($options['formats'])) { - $options['formats'] = self::mergeFormats($this->getDefaultFormats(), $options['formats']); - } else { - $options['formats'] = $this->getDefaultFormats(); - } - - if ($options['line_ending'] === null) { - $options['line_ending'] = $options['type'] === 'html' ? '
' : "\n"; - } - - if ($options['indentation'] === null) { - $options['indentation'] = $options['type'] === 'html' ? '    ' : ' '; - } - - // `parts_newline` requires `clause_newline` - $options['parts_newline'] &= $options['clause_newline']; - - return $options; - } - - /** - * The default formatting options. - * - * @return array - * @psalm-return array{ - * type: ('cli'|'text'), - * line_ending: null, - * indentation: null, - * remove_comments: false, - * clause_newline: true, - * parts_newline: true, - * indent_parts: true - * } - */ - protected function getDefaultOptions() - { - return [ - /* - * The format of the result. - * - * @var string The type ('text', 'cli' or 'html') - */ - 'type' => PHP_SAPI === 'cli' ? 'cli' : 'text', - - /* - * The line ending used. - * By default, for text this is "\n" and for HTML this is "
". - * - * @var string - */ - 'line_ending' => null, - - /* - * The string used for indentation. - * - * @var string - */ - 'indentation' => null, - - /* - * Whether comments should be removed or not. - * - * @var bool - */ - 'remove_comments' => false, - - /* - * Whether each clause should be on a new line. - * - * @var bool - */ - 'clause_newline' => true, - - /* - * Whether each part should be on a new line. - * Parts are delimited by brackets and commas. - * - * @var bool - */ - 'parts_newline' => true, - - /* - * Whether each part of each clause should be indented. - * - * @var bool - */ - 'indent_parts' => true, - ]; - } - - /** - * The styles used for HTML formatting. - * [$type, $flags, $span, $callback]. - * - * @return array> - * @psalm-return list - */ - protected function getDefaultFormats() - { - return [ - [ - 'type' => Token::TYPE_KEYWORD, - 'flags' => Token::FLAG_KEYWORD_RESERVED, - 'html' => 'class="sql-reserved"', - 'cli' => "\x1b[35m", - 'function' => 'strtoupper', - ], - [ - 'type' => Token::TYPE_KEYWORD, - 'flags' => 0, - 'html' => 'class="sql-keyword"', - 'cli' => "\x1b[95m", - 'function' => 'strtoupper', - ], - [ - 'type' => Token::TYPE_COMMENT, - 'flags' => 0, - 'html' => 'class="sql-comment"', - 'cli' => "\x1b[37m", - 'function' => '', - ], - [ - 'type' => Token::TYPE_BOOL, - 'flags' => 0, - 'html' => 'class="sql-atom"', - 'cli' => "\x1b[36m", - 'function' => 'strtoupper', - ], - [ - 'type' => Token::TYPE_NUMBER, - 'flags' => 0, - 'html' => 'class="sql-number"', - 'cli' => "\x1b[92m", - 'function' => 'strtolower', - ], - [ - 'type' => Token::TYPE_STRING, - 'flags' => 0, - 'html' => 'class="sql-string"', - 'cli' => "\x1b[91m", - 'function' => '', - ], - [ - 'type' => Token::TYPE_SYMBOL, - 'flags' => Token::FLAG_SYMBOL_PARAMETER, - 'html' => 'class="sql-parameter"', - 'cli' => "\x1b[31m", - 'function' => '', - ], - [ - 'type' => Token::TYPE_SYMBOL, - 'flags' => 0, - 'html' => 'class="sql-variable"', - 'cli' => "\x1b[36m", - 'function' => '', - ], - ]; - } + private const FORMATTERS = [ + 'PARTITION BY', + 'SUBPARTITION BY', + ]; - /** - * @param array> $formats - * @param array> $newFormats - * - * @return array> - */ - private static function mergeFormats(array $formats, array $newFormats): array + protected function __construct(protected FormattingOptions $options = new FormattingOptions()) { - $added = []; - $integers = [ - 'flags', - 'type', - ]; - $strings = [ - 'html', - 'cli', - 'function', - ]; - - /* Sanitize the array so that we do not have to care later */ - foreach ($newFormats as $j => $new) { - foreach ($integers as $name) { - if (isset($new[$name])) { - continue; - } - - $newFormats[$j][$name] = 0; - } - - foreach ($strings as $name) { - if (isset($new[$name])) { - continue; - } - - $newFormats[$j][$name] = ''; - } - } - - /* Process changes to existing formats */ - foreach ($formats as $i => $original) { - foreach ($newFormats as $j => $new) { - if ($new['type'] !== $original['type'] || $original['flags'] !== $new['flags']) { - continue; - } - - $formats[$i] = $new; - $added[] = $j; - } - } - - /* Add not already handled formats */ - foreach ($newFormats as $j => $new) { - if (in_array($j, $added)) { - continue; - } - - $formats[] = $new; - } - - return $formats; } /** * Formats the given list of tokens. * * @param TokensList $list the list of tokens - * - * @return string */ - public function formatList($list) + public function formatList(TokensList $list): string { /** * The query to be returned. - * - * @var string */ $ret = ''; /** * The indentation level. - * - * @var int */ $indent = 0; /** * Whether the line ended. - * - * @var bool */ $lineEnded = false; /** * Whether current group is short (no linebreaks). - * - * @var bool */ $shortGroup = false; /** * The name of the last clause. - * - * @var string */ $lastClause = ''; @@ -378,15 +124,11 @@ public function formatList($list) /** * Whether clause's options were formatted. - * - * @var bool */ $formattedOptions = false; /** * Previously parsed token. - * - * @var Token|null */ $prev = null; @@ -405,12 +147,12 @@ public function formatList($list) $next = null; } - if ($curr->type === Token::TYPE_WHITESPACE) { + if ($curr->type === TokenType::Whitespace) { // Keep linebreaks before and after comments if ( str_contains($curr->token, "\n") && ( - ($prev !== null && $prev->type === Token::TYPE_COMMENT) || - ($next !== null && $next->type === Token::TYPE_COMMENT) + ($prev !== null && $prev->type === TokenType::Comment) || + ($next !== null && $next->type === TokenType::Comment) ) ) { $lineEnded = true; @@ -420,7 +162,7 @@ public function formatList($list) continue; } - if ($curr->type === Token::TYPE_COMMENT && $this->options['remove_comments']) { + if ($curr->type === TokenType::Comment && $this->options->removeComments) { // Skip Comments if option `remove_comments` is enabled continue; } @@ -435,15 +177,12 @@ public function formatList($list) // The options of a clause should stay on the same line and everything that follows. if ( - $this->options['parts_newline'] + $this->options->clauseNewline && ! $formattedOptions - && empty(self::$INLINE_CLAUSES[$lastClause]) + && empty(self::$inlineClauses[$lastClause]) && ( - $curr->type !== Token::TYPE_KEYWORD - || ( - $curr->type === Token::TYPE_KEYWORD - && $curr->flags & Token::FLAG_KEYWORD_FUNCTION - ) + $curr->type !== TokenType::Keyword + || ($curr->flags & Token::FLAG_KEYWORD_FUNCTION) ) ) { $formattedOptions = true; @@ -455,12 +194,9 @@ public function formatList($list) $isClause = static::isClause($curr); if ($isClause !== false) { - if ( - ($isClause === 2 || $this->options['clause_newline']) - && empty(self::$SHORT_CLAUSES[$lastClause]) - ) { + if (($isClause === 2 || $this->options->clauseNewline) && empty(self::$shortClauses[$lastClause])) { $lineEnded = true; - if ($this->options['parts_newline'] && $indent > 0) { + if ($this->options->clauseNewline && $indent > 0) { --$indent; } } @@ -468,36 +204,36 @@ public function formatList($list) // Inline JOINs if ( - ($prev->type === Token::TYPE_KEYWORD && isset(JoinKeyword::$JOINS[$prev->value])) + ($prev->type === TokenType::Keyword && isset(JoinKeyword::JOINS[$prev->value])) || (in_array($curr->value, ['ON', 'USING'], true) - && isset(JoinKeyword::$JOINS[$list->tokens[$list->idx - 2]->value])) - || isset($list->tokens[$list->idx - 4], JoinKeyword::$JOINS[$list->tokens[$list->idx - 4]->value]) - || isset($list->tokens[$list->idx - 6], JoinKeyword::$JOINS[$list->tokens[$list->idx - 6]->value]) + && isset(JoinKeyword::JOINS[$list->tokens[$list->idx - 2]->value])) + || isset($list->tokens[$list->idx - 4], JoinKeyword::JOINS[$list->tokens[$list->idx - 4]->value]) + || isset($list->tokens[$list->idx - 6], JoinKeyword::JOINS[$list->tokens[$list->idx - 6]->value]) ) { $lineEnded = false; } // Indenting BEGIN ... END blocks. - if ($prev->type === Token::TYPE_KEYWORD && $prev->keyword === 'BEGIN') { + if ($prev->type === TokenType::Keyword && $prev->keyword === 'BEGIN') { $lineEnded = true; $blocksIndentation[] = $indent; ++$indent; - } elseif ($curr->type === Token::TYPE_KEYWORD && $curr->keyword === 'END') { + } elseif ($curr->type === TokenType::Keyword && $curr->keyword === 'END') { $lineEnded = true; $indent = array_pop($blocksIndentation); } // Formatting fragments delimited by comma. - if ($prev->type === Token::TYPE_OPERATOR && $prev->value === ',') { + if ($prev->type === TokenType::Operator && $prev->value === ',') { // Fragments delimited by a comma are broken into multiple // pieces only if the clause is not inlined or this fragment // is between brackets that are on new line. if ( end($blocksLineEndings) === true || ( - empty(self::$INLINE_CLAUSES[$lastClause]) + empty(self::$inlineClauses[$lastClause]) && ! $shortGroup - && $this->options['parts_newline'] + && $this->options->clauseNewline ) ) { $lineEnded = true; @@ -507,7 +243,7 @@ public function formatList($list) // Handling brackets. // Brackets are indented only if the length of the fragment between // them is longer than 30 characters. - if ($prev->type === Token::TYPE_OPERATOR && $prev->value === '(') { + if ($prev->type === TokenType::Operator && $prev->value === '(') { $blocksIndentation[] = $indent; $shortGroup = true; if (static::getGroupLength($list) > 30) { @@ -517,7 +253,7 @@ public function formatList($list) } $blocksLineEndings[] = $lineEnded; - } elseif ($curr->type === Token::TYPE_OPERATOR && $curr->value === ')') { + } elseif ($curr->type === TokenType::Operator && $curr->value === ')') { $indent = array_pop($blocksIndentation); $lineEnded |= array_pop($blocksLineEndings); $shortGroup = false; @@ -528,28 +264,27 @@ public function formatList($list) // Finishing the line. if ($lineEnded) { - $ret .= $this->options['line_ending'] - . str_repeat($this->options['indentation'], (int) $indent); - + $ret .= $this->options->lineEnding . str_repeat($this->options->indentation, (int) $indent); $lineEnded = false; - } else { - // If the line ended there is no point in adding whitespaces. + } elseif ( + $prev->keyword === 'DELIMITER' + || ! ( + ($prev->type === TokenType::Operator + && ($prev->value === '.' || $prev->value === '(' + || $prev->value === '->' || $prev->value === '->>')) + // No space after punctuation and JSON operators. + || ($curr->type === TokenType::Operator + && ($curr->value === '.' || $curr->value === ',' + || $curr->value === '(' || $curr->value === ')' + || $curr->value === '->' || $curr->value === '->>')) + // No space before punctuation and JSON operators. + || $curr->type === TokenType::Delimiter && mb_strlen((string) $curr->value, 'UTF-8') < 2 + ) + ) { + // If the line ended, there is no point in adding whitespaces. // Also, some tokens do not have spaces before or after them. - if ( - // A space after delimiters that are longer than 2 characters. - $prev->keyword === 'DELIMITER' - || ! ( - ($prev->type === Token::TYPE_OPERATOR && ($prev->value === '.' || $prev->value === '(')) - // No space after . ( - || ($curr->type === Token::TYPE_OPERATOR - && ($curr->value === '.' || $curr->value === ',' - || $curr->value === '(' || $curr->value === ')')) - // No space before . , ( ) - || $curr->type === Token::TYPE_DELIMITER && mb_strlen((string) $curr->value, 'UTF-8') < 2 - ) - ) { - $ret .= ' '; - } + // A space after delimiters that are longer than 2 characters. + $ret .= ' '; } } @@ -557,7 +292,7 @@ public function formatList($list) $prev = $curr; } - if ($this->options['type'] === 'cli') { + if ($this->options->type === 'cli') { return $ret . "\x1b[0m"; } @@ -635,7 +370,7 @@ public function escapeConsole(string $string): string '\x1E', '\x1F', ], - $string + $string, ); } @@ -643,31 +378,26 @@ public function escapeConsole(string $string): string * Tries to print the query and returns the result. * * @param Token $token the token to be printed - * - * @return string */ - public function toString($token) + public function toString(Token $token): string { $text = $token->token; static $prev; - foreach ($this->options['formats'] as $format) { + foreach ($this->options->formats as $format) { if ($token->type !== $format['type'] || ! (($token->flags & $format['flags']) === $format['flags'])) { continue; } - // Running transformation function. - if (! empty($format['function'])) { - $func = $format['function']; - $text = $func($text); + if ($format['function'] !== '') { + $text = $format['function']($text); } - // Formatting HTML. - if ($this->options['type'] === 'html') { - return '' . htmlspecialchars($text, ENT_NOQUOTES) . ''; + if ($this->options->type === 'html') { + return '' . htmlspecialchars($text, ENT_NOQUOTES) . ''; } - if ($this->options['type'] === 'cli') { + if ($this->options->type === 'cli') { if ($prev !== $format['cli']) { $prev = $format['cli']; @@ -680,7 +410,7 @@ public function toString($token) break; } - if ($this->options['type'] === 'cli') { + if ($this->options->type === 'cli') { if ($prev !== "\x1b[39m") { $prev = "\x1b[39m"; @@ -690,7 +420,7 @@ public function toString($token) return $this->escapeConsole($text); } - if ($this->options['type'] === 'html') { + if ($this->options->type === 'html') { return htmlspecialchars($text, ENT_NOQUOTES); } @@ -700,12 +430,12 @@ public function toString($token) /** * Formats a query. * - * @param string $query The query to be formatted - * @param array>> $options the formatting options + * @param string $query The query to be formatted + * @param FormattingOptions $options the formatting options * * @return string the formatted string */ - public static function format($query, array $options = []) + public static function format(string $query, FormattingOptions $options = new FormattingOptions()): string { $lexer = new Lexer($query); $formatter = new self($options); @@ -719,31 +449,25 @@ public static function format($query, array $options = []) * A group is delimited by a pair of brackets. * * @param TokensList $list the list of tokens - * - * @return int */ - public static function getGroupLength($list) + public static function getGroupLength(TokensList $list): int { /** * The number of opening brackets found. * This counter starts at one because by the time this function called, * the list already advanced one position and the opening bracket was * already parsed. - * - * @var int */ $count = 1; /** * The length of this group. - * - * @var int */ $length = 0; for ($idx = $list->idx; $idx < $list->count; ++$idx) { // Counting the brackets. - if ($list->tokens[$idx]->type === Token::TYPE_OPERATOR) { + if ($list->tokens[$idx]->type === TokenType::Operator) { if ($list->tokens[$idx]->value === '(') { ++$count; } elseif ($list->tokens[$idx]->value === ')') { @@ -766,19 +490,22 @@ public static function getGroupLength($list) * * @param Token $token the token to be checked * - * @return int|false * @psalm-return 1|2|false */ - public static function isClause($token) + public static function isClause(Token $token): int|false { if ( - ($token->type === Token::TYPE_KEYWORD && isset(Parser::$STATEMENT_PARSERS[$token->keyword])) - || ($token->type === Token::TYPE_NONE && strtoupper($token->token) === 'DELIMITER') + ($token->type === TokenType::Keyword && isset(Parser::STATEMENT_PARSERS[$token->keyword])) + || ($token->type === TokenType::None && strtoupper($token->token) === 'DELIMITER') ) { return 2; } - if ($token->type === Token::TYPE_KEYWORD && isset(Parser::$KEYWORD_PARSERS[$token->keyword])) { + if ( + $token->type === TokenType::Keyword && ( + in_array($token->keyword, self::FORMATTERS, true) || isset(Parser::KEYWORD_PARSERS[$token->keyword]) + ) + ) { return 1; } diff --git a/src/Utils/FormattingOptions.php b/src/Utils/FormattingOptions.php new file mode 100644 index 000000000..16a98abb4 --- /dev/null +++ b/src/Utils/FormattingOptions.php @@ -0,0 +1,127 @@ + $formats + */ + public function __construct( + public readonly string $type = PHP_SAPI === 'cli' ? 'cli' : 'text', + string|null $lineEnding = null, + string|null $indentation = null, + public bool $removeComments = false, + public bool $clauseNewline = true, + public array $formats = [], + ) { + $this->lineEnding = $lineEnding ?? ($this->type === 'html' ? '
' : "\n"); + $this->indentation = $indentation ?? ($this->type === 'html' ? '    ' : ' '); + $this->formats = self::mergeFormats(self::getDefaultFormats(), $this->formats); + } + + /** + * @param list $formats + * @param list $newFormats + * + * @return list + */ + private static function mergeFormats(array $formats, array $newFormats): array + { + foreach ($newFormats as $new) { + foreach ($formats as $i => $original) { + if ($new['type'] !== $original['type'] || $original['flags'] !== $new['flags']) { + continue; + } + + $formats[$i] = $new; + continue 2; + } + + $formats[] = $new; + } + + return $formats; + } + + /** + * The styles used for HTML formatting. + * + * @return list + */ + public static function getDefaultFormats(): array + { + return [ + [ + 'type' => TokenType::Keyword, + 'flags' => Token::FLAG_KEYWORD_RESERVED, + 'html' => 'sql-reserved', + 'cli' => "\x1b[35m", + 'function' => strtoupper(...), + ], + [ + 'type' => TokenType::Keyword, + 'flags' => 0, + 'html' => 'sql-keyword', + 'cli' => "\x1b[95m", + 'function' => strtoupper(...), + ], + [ + 'type' => TokenType::Comment, + 'flags' => 0, + 'html' => 'sql-comment', + 'cli' => "\x1b[37m", + 'function' => '', + ], + [ + 'type' => TokenType::Bool, + 'flags' => 0, + 'html' => 'sql-atom', + 'cli' => "\x1b[36m", + 'function' => strtoupper(...), + ], + [ + 'type' => TokenType::Number, + 'flags' => 0, + 'html' => 'sql-number', + 'cli' => "\x1b[92m", + 'function' => strtolower(...), + ], + [ + 'type' => TokenType::String, + 'flags' => 0, + 'html' => 'sql-string', + 'cli' => "\x1b[91m", + 'function' => '', + ], + [ + 'type' => TokenType::Symbol, + 'flags' => Token::FLAG_SYMBOL_PARAMETER, + 'html' => 'sql-parameter', + 'cli' => "\x1b[31m", + 'function' => '', + ], + [ + 'type' => TokenType::Symbol, + 'flags' => 0, + 'html' => 'sql-variable', + 'cli' => "\x1b[36m", + 'function' => '', + ], + ]; + } +} diff --git a/src/Utils/Misc.php b/src/Utils/Misc.php deleted file mode 100644 index f4e0bcd83..000000000 --- a/src/Utils/Misc.php +++ /dev/null @@ -1,98 +0,0 @@ -|string|null>>|null>> - */ - public static function getAliases($statement, $database) - { - if (! ($statement instanceof SelectStatement) || empty($statement->expr) || empty($statement->from)) { - return []; - } - - $retval = []; - - $tables = []; - - /** - * Expressions that may contain aliases. - * These are extracted from `FROM` and `JOIN` keywords. - * - * @var Expression[] - */ - $expressions = $statement->from; - - // Adding expressions from JOIN. - if (! empty($statement->join)) { - foreach ($statement->join as $join) { - $expressions[] = $join->expr; - } - } - - foreach ($expressions as $expr) { - if (! isset($expr->table) || ($expr->table === '')) { - continue; - } - - $thisDb = isset($expr->database) && ($expr->database !== '') ? - $expr->database : $database; - - if (! isset($retval[$thisDb])) { - $retval[$thisDb] = [ - 'alias' => null, - 'tables' => [], - ]; - } - - if (! isset($retval[$thisDb]['tables'][$expr->table])) { - $retval[$thisDb]['tables'][$expr->table] = [ - 'alias' => isset($expr->alias) && ($expr->alias !== '') ? - $expr->alias : null, - 'columns' => [], - ]; - } - - if (! isset($tables[$thisDb])) { - $tables[$thisDb] = []; - } - - $tables[$thisDb][$expr->alias] = $expr->table; - } - - foreach ($statement->expr as $expr) { - if (! isset($expr->column, $expr->alias) || ($expr->column === '') || ($expr->alias === '')) { - continue; - } - - $thisDb = isset($expr->database) && ($expr->database !== '') ? - $expr->database : $database; - - if (isset($expr->table) && ($expr->table !== '')) { - $thisTable = $tables[$thisDb][$expr->table] ?? $expr->table; - $retval[$thisDb]['tables'][$thisTable]['columns'][$expr->column] = $expr->alias; - } else { - foreach ($retval[$thisDb]['tables'] as &$table) { - $table['columns'][$expr->column] = $expr->alias; - } - } - } - - return $retval; - } -} diff --git a/src/Utils/Query.php b/src/Utils/Query.php index e9e335937..bdc30bcd2 100644 --- a/src/Utils/Query.php +++ b/src/Utils/Query.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Utils; -use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statement; @@ -29,49 +28,21 @@ use PhpMyAdmin\SqlParser\Statements\ShowStatement; use PhpMyAdmin\SqlParser\Statements\TruncateStatement; use PhpMyAdmin\SqlParser\Statements\UpdateStatement; -use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function array_flip; use function array_keys; use function count; +use function ctype_space; use function in_array; use function is_string; +use function mb_substr; use function strtoupper; use function trim; /** * Statement utilities. - * - * @psalm-type QueryFlagsType = array{ - * distinct?: bool, - * drop_database?: bool, - * group?: bool, - * having?: bool, - * is_affected?: bool, - * is_analyse?: bool, - * is_count?: bool, - * is_delete?: bool, - * is_explain?: bool, - * is_export?: bool, - * is_func?: bool, - * is_group?: bool, - * is_insert?: bool, - * is_maint?: bool, - * is_procedure?: bool, - * is_replace?: bool, - * is_select?: bool, - * is_show?: bool, - * is_subquery?: bool, - * join?: bool, - * limit?: bool, - * offset?: bool, - * order?: bool, - * querytype: ('ALTER'|'ANALYZE'|'CALL'|'CHECK'|'CHECKSUM'|'CREATE'|'DELETE'|'DROP'|'EXPLAIN'|'INSERT'|'KILL'|'LOAD'|'OPTIMIZE'|'REPAIR'|'REPLACE'|'SELECT'|'SET'|'SHOW'|'UPDATE'|false), - * reload?: bool, - * select_from?: bool, - * union?: bool - * } */ class Query { @@ -80,7 +51,7 @@ class Query * * @var string[] */ - public static $FUNCTIONS = [ + public static array $functions = [ 'SUM', 'AVG', 'STD', @@ -91,223 +62,32 @@ class Query 'BIT_AND', ]; - /** - * @var array - * @psalm-var array{ - * distinct: false, - * drop_database: false, - * group: false, - * having: false, - * is_affected: false, - * is_analyse: false, - * is_count: false, - * is_delete: false, - * is_explain: false, - * is_export: false, - * is_func: false, - * is_group: false, - * is_insert: false, - * is_maint: false, - * is_procedure: false, - * is_replace: false, - * is_select: false, - * is_show: false, - * is_subquery: false, - * join: false, - * limit: false, - * offset: false, - * order: false, - * querytype: false, - * reload: false, - * select_from: false, - * union: false - * } - */ - public static $ALLFLAGS = [ - /* - * select ... DISTINCT ... - */ - 'distinct' => false, - - /* - * drop ... DATABASE ... - */ - 'drop_database' => false, - - /* - * ... GROUP BY ... - */ - 'group' => false, - - /* - * ... HAVING ... - */ - 'having' => false, - - /* - * INSERT ... - * or - * REPLACE ... - * or - * DELETE ... - */ - 'is_affected' => false, - - /* - * select ... PROCEDURE ANALYSE( ... ) ... - */ - 'is_analyse' => false, - - /* - * select COUNT( ... ) ... - */ - 'is_count' => false, - - /* - * DELETE ... - */ - 'is_delete' => false, // @deprecated; use `querytype` - - /* - * EXPLAIN ... - */ - 'is_explain' => false, // @deprecated; use `querytype` - - /* - * select ... INTO OUTFILE ... - */ - 'is_export' => false, - - /* - * select FUNC( ... ) ... - */ - 'is_func' => false, - - /* - * select ... GROUP BY ... - * or - * select ... HAVING ... - */ - 'is_group' => false, - - /* - * INSERT ... - * or - * REPLACE ... - * or - * LOAD DATA ... - */ - 'is_insert' => false, - - /* - * ANALYZE ... - * or - * CHECK ... - * or - * CHECKSUM ... - * or - * OPTIMIZE ... - * or - * REPAIR ... - */ - 'is_maint' => false, - - /* - * CALL ... - */ - 'is_procedure' => false, - - /* - * REPLACE ... - */ - 'is_replace' => false, // @deprecated; use `querytype` - - /* - * SELECT ... - */ - 'is_select' => false, // @deprecated; use `querytype` - - /* - * SHOW ... - */ - 'is_show' => false, // @deprecated; use `querytype` - - /* - * Contains a subquery. - */ - 'is_subquery' => false, - - /* - * ... JOIN ... - */ - 'join' => false, - - /* - * ... LIMIT ... - */ - 'limit' => false, - - /* - * TODO - */ - 'offset' => false, - - /* - * ... ORDER ... - */ - 'order' => false, - - /* - * The type of the query (which is usually the first keyword of - * the statement). - */ - 'querytype' => false, - - /* - * Whether a page reload is required. - */ - 'reload' => false, - - /* - * SELECT ... FROM ... - */ - 'select_from' => false, - - /* - * ... UNION ... - */ - 'union' => false, - ]; - /** * Gets an array with flags select statement has. * - * @param SelectStatement $statement the statement to be processed - * @param array $flags flags set so far - * @psalm-param QueryFlagsType $flags - * - * @return array - * @psalm-return QueryFlagsType + * @param SelectStatement $statement the statement to be processed + * @param StatementFlags $flags flags set so far */ - private static function getFlagsSelect($statement, $flags) + private static function getFlagsSelect(SelectStatement $statement, StatementFlags $flags): void { - $flags['querytype'] = 'SELECT'; - $flags['is_select'] = true; + $flags->queryType = StatementType::Select; + /** @psalm-suppress DeprecatedProperty */ + $flags->isSelect = true; - if (! empty($statement->from)) { - $flags['select_from'] = true; + if ($statement->from !== []) { + $flags->selectFrom = true; } if ($statement->options->has('DISTINCT')) { - $flags['distinct'] = true; + $flags->distinct = true; } if (! empty($statement->group) || ! empty($statement->having)) { - $flags['is_group'] = true; + $flags->isGroup = true; } if (! empty($statement->into) && ($statement->into->type === 'OUTFILE')) { - $flags['is_export'] = true; + $flags->isExport = true; } $expressions = $statement->expr; @@ -321,9 +101,9 @@ private static function getFlagsSelect($statement, $flags) if (! empty($expr->function)) { $function = strtoupper($expr->function); if ($function === 'COUNT') { - $flags['is_count'] = true; - } elseif (in_array($function, static::$FUNCTIONS, true)) { - $flags['is_func'] = true; + $flags->isCount = true; + } elseif (in_array($function, static::$functions, true)) { + $flags->isFunc = true; } } @@ -331,111 +111,108 @@ private static function getFlagsSelect($statement, $flags) continue; } - $flags['is_subquery'] = true; + $flags->isSubQuery = true; } if (! empty($statement->procedure) && ($statement->procedure->name === 'ANALYSE')) { - $flags['is_analyse'] = true; + $flags->isAnalyse = true; } if (! empty($statement->group)) { - $flags['group'] = true; + $flags->group = true; } if (! empty($statement->having)) { - $flags['having'] = true; + $flags->having = true; } - if (! empty($statement->union)) { - $flags['union'] = true; + if ($statement->union !== []) { + $flags->union = true; } - if (! empty($statement->join)) { - $flags['join'] = true; + if (empty($statement->join)) { + return; } - return $flags; + $flags->join = true; } /** * Gets an array with flags this statement has. * * @param Statement|null $statement the statement to be processed - * @param bool $all if `false`, false values will not be included - * - * @return array - * @psalm-return QueryFlagsType */ - public static function getFlags($statement, $all = false) + public static function getFlags(Statement|null $statement): StatementFlags { - $flags = ['querytype' => false]; - if ($all) { - $flags = self::$ALLFLAGS; - } + $flags = new StatementFlags(); if ($statement instanceof AlterStatement) { - $flags['querytype'] = 'ALTER'; - $flags['reload'] = true; + $flags->queryType = StatementType::Alter; + $flags->reload = true; } elseif ($statement instanceof CreateStatement) { - $flags['querytype'] = 'CREATE'; - $flags['reload'] = true; + $flags->queryType = StatementType::Create; + $flags->reload = true; } elseif ($statement instanceof AnalyzeStatement) { - $flags['querytype'] = 'ANALYZE'; - $flags['is_maint'] = true; + $flags->queryType = StatementType::Analyze; + $flags->isMaint = true; } elseif ($statement instanceof CheckStatement) { - $flags['querytype'] = 'CHECK'; - $flags['is_maint'] = true; + $flags->queryType = StatementType::Check; + $flags->isMaint = true; } elseif ($statement instanceof ChecksumStatement) { - $flags['querytype'] = 'CHECKSUM'; - $flags['is_maint'] = true; + $flags->queryType = StatementType::Checksum; + $flags->isMaint = true; } elseif ($statement instanceof OptimizeStatement) { - $flags['querytype'] = 'OPTIMIZE'; - $flags['is_maint'] = true; + $flags->queryType = StatementType::Optimize; + $flags->isMaint = true; } elseif ($statement instanceof RepairStatement) { - $flags['querytype'] = 'REPAIR'; - $flags['is_maint'] = true; + $flags->queryType = StatementType::Repair; + $flags->isMaint = true; } elseif ($statement instanceof CallStatement) { - $flags['querytype'] = 'CALL'; - $flags['is_procedure'] = true; + $flags->queryType = StatementType::Call; + $flags->isProcedure = true; } elseif ($statement instanceof DeleteStatement) { - $flags['querytype'] = 'DELETE'; - $flags['is_delete'] = true; - $flags['is_affected'] = true; + $flags->queryType = StatementType::Delete; + /** @psalm-suppress DeprecatedProperty */ + $flags->isDelete = true; + $flags->isAffected = true; } elseif ($statement instanceof DropStatement) { - $flags['querytype'] = 'DROP'; - $flags['reload'] = true; + $flags->queryType = StatementType::Drop; + $flags->reload = true; if ($statement->options->has('DATABASE') || $statement->options->has('SCHEMA')) { - $flags['drop_database'] = true; + $flags->dropDatabase = true; } } elseif ($statement instanceof ExplainStatement) { - $flags['querytype'] = 'EXPLAIN'; - $flags['is_explain'] = true; + $flags->queryType = StatementType::Explain; + /** @psalm-suppress DeprecatedProperty */ + $flags->isExplain = true; } elseif ($statement instanceof InsertStatement) { - $flags['querytype'] = 'INSERT'; - $flags['is_affected'] = true; - $flags['is_insert'] = true; + $flags->queryType = StatementType::Insert; + $flags->isAffected = true; + $flags->isInsert = true; } elseif ($statement instanceof LoadStatement) { - $flags['querytype'] = 'LOAD'; - $flags['is_affected'] = true; - $flags['is_insert'] = true; + $flags->queryType = StatementType::Load; + $flags->isAffected = true; + $flags->isInsert = true; } elseif ($statement instanceof ReplaceStatement) { - $flags['querytype'] = 'REPLACE'; - $flags['is_affected'] = true; - $flags['is_replace'] = true; - $flags['is_insert'] = true; + $flags->queryType = StatementType::Replace; + $flags->isAffected = true; + /** @psalm-suppress DeprecatedProperty */ + $flags->isReplace = true; + $flags->isInsert = true; } elseif ($statement instanceof SelectStatement) { - $flags = self::getFlagsSelect($statement, $flags); + self::getFlagsSelect($statement, $flags); } elseif ($statement instanceof ShowStatement) { - $flags['querytype'] = 'SHOW'; - $flags['is_show'] = true; + $flags->queryType = StatementType::Show; + /** @psalm-suppress DeprecatedProperty */ + $flags->isShow = true; } elseif ($statement instanceof UpdateStatement) { - $flags['querytype'] = 'UPDATE'; - $flags['is_affected'] = true; + $flags->queryType = StatementType::Update; + $flags->isAffected = true; } elseif ($statement instanceof SetStatement) { - $flags['querytype'] = 'SET'; + $flags->queryType = StatementType::Set; } elseif ($statement instanceof KillStatement) { - $flags['querytype'] = 'KILL'; + $flags->queryType = StatementType::Kill; } if ( @@ -444,11 +221,11 @@ public static function getFlags($statement, $all = false) || ($statement instanceof DeleteStatement) ) { if (! empty($statement->limit)) { - $flags['limit'] = true; + $flags->limit = true; } if (! empty($statement->order)) { - $flags['order'] = true; + $flags->order = true; } } @@ -459,41 +236,21 @@ public static function getFlags($statement, $all = false) * Parses a query and gets all information about it. * * @param string $query the query to be parsed - * - * @return array The array returned is the one returned by - * `static::getFlags()`, with the following keys added: - * - parser - the parser used to analyze the query; - * - statement - the first statement resulted from parsing; - * - select_tables - the real name of the tables selected; - * if there are no table names in the `SELECT` - * expressions, the table names are fetched from the - * `FROM` expressions - * - select_expr - selected expressions - * @psalm-return QueryFlagsType&array{ - * select_expr?: (string|null)[], - * select_tables?: array{string, string|null}[], - * statement?: Statement|null, parser?: Parser - * } */ - public static function getAll($query) + public static function getAll(string $query): StatementInfo { $parser = new Parser($query); - if (empty($parser->statements[0])) { - return static::getFlags(null, true); + if ($parser->statements === []) { + return new StatementInfo($parser, null, static::getFlags(null), [], []); } $statement = $parser->statements[0]; - - $ret = static::getFlags($statement, true); - - $ret['parser'] = $parser; - $ret['statement'] = $statement; + $flags = static::getFlags($statement); + $selectTables = []; + $selectExpressions = []; if ($statement instanceof SelectStatement) { - $ret['select_tables'] = []; - $ret['select_expr'] = []; - // Finding tables' aliases and their associated real names. $tableAliases = []; foreach ($statement->from as $expr) { @@ -522,18 +279,18 @@ public static function getAll($query) ]; } - if (! in_array($arr, $ret['select_tables'])) { - $ret['select_tables'][] = $arr; + if (! in_array($arr, $selectTables)) { + $selectTables[] = $arr; } } else { - $ret['select_expr'][] = $expr->expr; + $selectExpressions[] = $expr->expr; } } // If no tables names were found in the SELECT clause or if there // are expressions like * or COUNT(*), etc. tables names should be // extracted from the FROM clause. - if (empty($ret['select_tables'])) { + if ($selectTables === []) { foreach ($statement->from as $expr) { if (! isset($expr->table) || ($expr->table === '')) { continue; @@ -544,16 +301,16 @@ public static function getAll($query) isset($expr->database) && ($expr->database !== '') ? $expr->database : null, ]; - if (in_array($arr, $ret['select_tables'])) { + if (in_array($arr, $selectTables)) { continue; } - $ret['select_tables'][] = $arr; + $selectTables[] = $arr; } } } - return $ret; + return new StatementInfo($parser, $statement, $flags, $selectTables, $selectExpressions); } /** @@ -563,7 +320,7 @@ public static function getAll($query) * * @return array */ - public static function getTables($statement) + public static function getTables(Statement $statement): array { $expressions = []; @@ -596,7 +353,7 @@ public static function getTables($statement) $expr->expr = null; // Force rebuild. $expr->alias = null; // Aliases are not required. - $ret[] = Expression::build($expr); + $ret[] = $expr->build(); } return $ret; @@ -616,30 +373,27 @@ public static function getTables($statement) * If string, the name of the first clause that * should not be included. * @param bool $skipFirst whether to skip the first keyword in clause - * - * @return string */ - public static function getClause($statement, $list, $clause, $type = 0, $skipFirst = true) - { + public static function getClause( + Statement $statement, + TokensList $list, + string $clause, + int|string $type = 0, + bool $skipFirst = true, + ): string { /** * The index of the current clause. - * - * @var int */ $currIdx = 0; /** * The count of brackets. * We keep track of them so we won't insert the clause in a subquery. - * - * @var int */ $brackets = 0; /** * The string to be returned. - * - * @var string */ $ret = ''; @@ -655,15 +409,13 @@ public static function getClause($statement, $list, $clause, $type = 0, $skipFir /** * The type of this clause. - * - * @var string */ - $clauseType = $lexer->list->getNextOfType(Token::TYPE_KEYWORD)->keyword; + $clauseType = $lexer->list->getNextOfType(TokenType::Keyword); /** * The index of this clause. */ - $clauseIdx = $clauses[$clauseType] ?? -1; + $clauseIdx = $clauseType !== null ? $clauses[$clauseType->keyword] ?? -1 : -1; $firstClauseIdx = $clauseIdx; $lastClauseIdx = $clauseIdx; @@ -693,11 +445,11 @@ public static function getClause($statement, $list, $clause, $type = 0, $skipFir for ($i = $statement->first; $i <= $statement->last; ++$i) { $token = $list->tokens[$i]; - if ($token->type === Token::TYPE_COMMENT) { + if ($token->type === TokenType::Comment) { continue; } - if ($token->type === Token::TYPE_OPERATOR) { + if ($token->type === TokenType::Operator) { if ($token->value === '(') { ++$brackets; } elseif ($token->value === ')') { @@ -708,7 +460,7 @@ public static function getClause($statement, $list, $clause, $type = 0, $skipFir if ($brackets === 0) { // Checking if the section was changed. if ( - ($token->type === Token::TYPE_KEYWORD) + ($token->type === TokenType::Keyword) && isset($clauses[$token->keyword]) && ($clauses[$token->keyword] >= $currIdx) ) { @@ -731,6 +483,29 @@ public static function getClause($statement, $list, $clause, $type = 0, $skipFir return trim($ret); } + /** @param list $parts */ + private static function glueQueryPartsWithSpaces(array $parts): string + { + $statement = ''; + foreach ($parts as $part) { + if ($part === '') { + continue; + } + + if ( + $statement !== '' && + ! ctype_space(mb_substr($statement, -1)) && + ! ctype_space(mb_substr($part, 0, 1)) + ) { + $statement .= ' '; + } + + $statement .= $part; + } + + return $statement; + } + /** * Builds a query by rebuilding the statement from the tokens list supplied * and replaces a clause. @@ -745,25 +520,27 @@ public static function getClause($statement, $list, $clause, $type = 0, $skipFir * it is considered to be equal with `$old`. * @param bool $onlyType whether only the type of the clause should * be replaced or the entire clause - * - * @return string */ - public static function replaceClause($statement, $list, $old, $new = null, $onlyType = false) - { + public static function replaceClause( + Statement $statement, + TokensList $list, + string $old, + string|null $new = null, + bool $onlyType = false, + ): string { // TODO: Update the tokens list and the statement. - if ($new === null) { - $new = $old; - } - + $parts = [ + static::getClause($statement, $list, $old, -1, false), + $new ?? $old, + ]; if ($onlyType) { - return static::getClause($statement, $list, $old, -1, false) . ' ' . - $new . ' ' . static::getClause($statement, $list, $old, 0) . ' ' . - static::getClause($statement, $list, $old, 1, false); + $parts[] = static::getClause($statement, $list, $old, 0); } - return static::getClause($statement, $list, $old, -1, false) . ' ' . - $new . ' ' . static::getClause($statement, $list, $old, 1, false); + $parts[] = static::getClause($statement, $list, $old, 1, false); + + return self::glueQueryPartsWithSpaces($parts); } /** @@ -775,10 +552,8 @@ public static function replaceClause($statement, $list, $old, $new = null, $only * @param array> $ops Clauses to be replaced. Contains multiple * arrays having two values: [$old, $new]. * Clauses must be sorted. - * - * @return string */ - public static function replaceClauses($statement, $list, array $ops) + public static function replaceClauses(Statement $statement, TokensList $list, array $ops): string { $count = count($ops); @@ -787,35 +562,30 @@ public static function replaceClauses($statement, $list, array $ops) return ''; } - /** - * Value to be returned. - * - * @var string - */ - $ret = ''; - // If there is only one clause, `replaceClause()` should be used. if ($count === 1) { return static::replaceClause($statement, $list, $ops[0][0], $ops[0][1]); } // Adding everything before first replacement. - $ret .= static::getClause($statement, $list, $ops[0][0], -1) . ' '; + $parts = [static::getClause($statement, $list, $ops[0][0], -1)]; // Doing replacements. foreach ($ops as $i => $clause) { - $ret .= $clause[1] . ' '; + $parts[] = $clause[1]; // Adding everything between this and next replacement. if ($i + 1 === $count) { continue; } - $ret .= static::getClause($statement, $list, $clause[0], $ops[$i + 1][0]) . ' '; + $parts[] = static::getClause($statement, $list, $clause[0], $ops[$i + 1][0]); } // Adding everything after the last replacement. - return $ret . static::getClause($statement, $list, $ops[$count - 1][0], 1); + $parts[] = static::getClause($statement, $list, $ops[$count - 1][0], 1); + + return self::glueQueryPartsWithSpaces($parts); } /** @@ -828,35 +598,31 @@ public static function replaceClauses($statement, $list, array $ops) * the remaining part of the query and the last delimiter * @psalm-return array{string|null, string, string|null} */ - public static function getFirstStatement($query, $delimiter = null) + public static function getFirstStatement(string $query, string|null $delimiter = null): array { $lexer = new Lexer($query, false, $delimiter); $list = $lexer->list; /** * Whether a full statement was found. - * - * @var bool */ $fullStatement = false; /** * The first full statement. - * - * @var string */ $statement = ''; for ($list->idx = 0; $list->idx < $list->count; ++$list->idx) { $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_COMMENT) { + if ($token->type === TokenType::Comment) { continue; } $statement .= $token->token; - if (($token->type === Token::TYPE_DELIMITER) && ! empty($token->token)) { + if (($token->type === TokenType::Delimiter) && ! empty($token->token)) { $delimiter = $token->token; $fullStatement = true; break; @@ -893,16 +659,12 @@ public static function getFirstStatement($query, $delimiter = null) * @param Statement $statement the parsed query that has to be modified * @param TokensList $list the list of tokens * @param string $clause the clause to be returned - * - * @return int */ - public static function getClauseStartOffset($statement, $list, $clause) + public static function getClauseStartOffset(Statement $statement, TokensList $list, string $clause): int { /** * The count of brackets. * We keep track of them so we won't insert the clause in a subquery. - * - * @var int */ $brackets = 0; @@ -914,11 +676,11 @@ public static function getClauseStartOffset($statement, $list, $clause) for ($i = $statement->first; $i <= $statement->last; ++$i) { $token = $list->tokens[$i]; - if ($token->type === Token::TYPE_COMMENT) { + if ($token->type === TokenType::Comment) { continue; } - if ($token->type === Token::TYPE_OPERATOR) { + if ($token->type === TokenType::Operator) { if ($token->value === '(') { ++$brackets; } elseif ($token->value === ')') { @@ -931,7 +693,7 @@ public static function getClauseStartOffset($statement, $list, $clause) } if ( - ($token->type === Token::TYPE_KEYWORD) + ($token->type === TokenType::Keyword) && isset($clauses[$token->keyword]) && ($clause === $token->keyword) ) { diff --git a/src/Utils/Routine.php b/src/Utils/Routine.php deleted file mode 100644 index 7d54738c5..000000000 --- a/src/Utils/Routine.php +++ /dev/null @@ -1,141 +0,0 @@ -list); - - if ($type === null) { - return [ - '', - '', - '', - '', - '', - ]; - } - - $options = []; - foreach ($type->options->options as $opt) { - $options[] = is_string($opt) ? $opt : $opt['value']; - } - - return [ - '', - '', - $type->name, - implode(',', $type->parameters), - implode(' ', $options), - ]; - } - - /** - * Parses a parameter of a routine. - * - * @param string $param parameter's definition - * - * @return string[] - */ - public static function getParameter($param) - { - $lexer = new Lexer('(' . $param . ')'); - - // A dummy parser is used for error reporting. - $param = ParameterDefinition::parse(new Parser(), $lexer->list); - - if (empty($param[0])) { - return [ - '', - '', - '', - '', - '', - ]; - } - - $param = $param[0]; - - $options = []; - foreach ($param->type->options->options as $opt) { - $options[] = is_string($opt) ? $opt : $opt['value']; - } - - return [ - empty($param->inOut) ? '' : $param->inOut, - $param->name, - $param->type->name, - implode(',', $param->type->parameters), - implode(' ', $options), - ]; - } - - /** - * Gets the parameters of a routine from the parse tree. - * - * @param CreateStatement $statement the statement to be processed - * - * @return array> - */ - public static function getParameters($statement) - { - $retval = [ - 'num' => 0, - 'dir' => [], - 'name' => [], - 'type' => [], - 'length' => [], - 'length_arr' => [], - 'opts' => [], - ]; - - if (! empty($statement->parameters)) { - $idx = 0; - foreach ($statement->parameters as $param) { - $retval['dir'][$idx] = $param->inOut; - $retval['name'][$idx] = $param->name; - $retval['type'][$idx] = $param->type->name; - $retval['length'][$idx] = implode(',', $param->type->parameters); - $retval['length_arr'][$idx] = $param->type->parameters; - $retval['opts'][$idx] = []; - foreach ($param->type->options->options as $opt) { - $retval['opts'][$idx][] = is_string($opt) ? - $opt : $opt['value']; - } - - $retval['opts'][$idx] = implode(' ', $retval['opts'][$idx]); - ++$idx; - } - - $retval['num'] = $idx; - } - - return $retval; - } -} diff --git a/src/Utils/StatementFlags.php b/src/Utils/StatementFlags.php new file mode 100644 index 000000000..f135adad9 --- /dev/null +++ b/src/Utils/StatementFlags.php @@ -0,0 +1,153 @@ + $selectTables + * @psalm-param list $selectExpressions + */ + public function __construct( + public readonly Parser $parser, + public readonly Statement|null $statement, + public readonly StatementFlags $flags, + public readonly array $selectTables, + public readonly array $selectExpressions, + ) { + } +} diff --git a/src/Utils/StatementType.php b/src/Utils/StatementType.php new file mode 100644 index 000000000..7d3216a38 --- /dev/null +++ b/src/Utils/StatementType.php @@ -0,0 +1,28 @@ +> - */ - public static function getForeignKeys($statement) - { - if (empty($statement->fields) || (! is_array($statement->fields)) || (! $statement->options->has('TABLE'))) { - return []; - } - - $ret = []; - - foreach ($statement->fields as $field) { - if (empty($field->key) || ($field->key->type !== 'FOREIGN KEY')) { - continue; - } - - $columns = []; - foreach ($field->key->columns as $column) { - if (! isset($column['name'])) { - continue; - } - - $columns[] = $column['name']; - } - - $tmp = [ - 'constraint' => $field->name, - 'index_list' => $columns, - ]; - - if (! empty($field->references)) { - $tmp['ref_db_name'] = $field->references->table->database; - $tmp['ref_table_name'] = $field->references->table->table; - $tmp['ref_index_list'] = $field->references->columns; - - $opt = $field->references->options->has('ON UPDATE'); - - if ($opt) { - $tmp['on_update'] = str_replace(' ', '_', $opt); - } - - $opt = $field->references->options->has('ON DELETE'); - - if ($opt) { - $tmp['on_delete'] = str_replace(' ', '_', $opt); - } - } - - $ret[] = $tmp; - } - - return $ret; - } - /** * Gets fields of the table. * * @param CreateStatement $statement the statement to be processed * * @return array> + * @psalm-return array */ - public static function getFields($statement) + public static function getFields(CreateStatement $statement): array { - if (empty($statement->fields) || (! is_array($statement->fields)) || (! $statement->options->has('TABLE'))) { + if (empty($statement->fields) || ! is_array($statement->fields) || ! $statement->options->has('TABLE')) { return []; } @@ -108,28 +57,25 @@ public static function getFields($statement) } } - $option = $field->options->has('DEFAULT'); + $option = $field->options->get('DEFAULT'); - if ($option) { + if ($option !== '') { $ret[$field->name]['default_value'] = $option; if ($option === 'CURRENT_TIMESTAMP') { $ret[$field->name]['default_current_timestamp'] = true; } } - $option = $field->options->has('ON UPDATE'); - - if ($option === 'CURRENT_TIMESTAMP') { + if ($field->options->get('ON UPDATE') === 'CURRENT_TIMESTAMP') { $ret[$field->name]['on_update_current_timestamp'] = true; } - $option = $field->options->has('AS'); + $option = $field->options->get('AS'); - if (! $option) { + if ($option === '') { continue; } - $ret[$field->name]['generated'] = true; $ret[$field->name]['expr'] = $option; } diff --git a/src/Utils/Tokens.php b/src/Utils/Tokens.php deleted file mode 100644 index 50884d383..000000000 --- a/src/Utils/Tokens.php +++ /dev/null @@ -1,155 +0,0 @@ - $pattern the pattern to be matches - * - * @return bool - */ - public static function match(Token $token, array $pattern) - { - // Token. - if (isset($pattern['token']) && ($pattern['token'] !== $token->token)) { - return false; - } - - // Value. - if (isset($pattern['value']) && ($pattern['value'] !== $token->value)) { - return false; - } - - if (isset($pattern['value_str']) && strcasecmp($pattern['value_str'], (string) $token->value)) { - return false; - } - - // Type. - if (isset($pattern['type']) && ($pattern['type'] !== $token->type)) { - return false; - } - - // Flags. - return ! isset($pattern['flags']) - || (! (($pattern['flags'] & $token->flags) === 0)); - } - - /** - * @param TokensList|string|UtfString $list - * @param Token[] $find - * @param Token[] $replace - * - * @return TokensList - */ - public static function replaceTokens($list, array $find, array $replace) - { - /** - * Whether the first parameter is a list. - */ - $isList = $list instanceof TokensList; - - // Parsing the tokens. - if (! $isList) { - $list = Lexer::getTokens($list); - } - - /** - * The list to be returned. - * - * @var Token[] - */ - $newList = []; - - /** - * The length of the find pattern is calculated only once. - * - * @var int - */ - $findCount = count($find); - - /** - * The starting index of the pattern. - * - * @var int - */ - $i = 0; - - while ($i < $list->count) { - // A sequence may not start with a comment. - if ($list->tokens[$i]->type === Token::TYPE_COMMENT) { - $newList[] = $list->tokens[$i]; - ++$i; - continue; - } - - /** - * The index used to parse `$list->tokens`. - * - * This index might be running faster than `$k` because some tokens - * are skipped. - */ - $j = $i; - - /** - * The index used to parse `$find`. - * - * This index might be running slower than `$j` because some tokens - * are skipped. - * - * @var int - */ - $k = 0; - - // Checking if the next tokens match the pattern described. - while (($j < $list->count) && ($k < $findCount)) { - // Comments are being skipped. - if ($list->tokens[$j]->type === Token::TYPE_COMMENT) { - ++$j; - } - - if (! static::match($list->tokens[$j], $find[$k])) { - // This token does not match the pattern. - break; - } - - // Going to next token and segment of find pattern. - ++$j; - ++$k; - } - - // Checking if the sequence was found. - if ($k === $findCount) { - // Inserting new tokens. - foreach ($replace as $token) { - $newList[] = $token; - } - - // Skipping next `$findCount` tokens. - $i = $j; - } else { - // Adding the same token. - $newList[] = $list->tokens[$i]; - ++$i; - } - } - - return $isList ? new TokensList($newList) : TokensList::build($newList); - } -} diff --git a/tests/Builder/AlterStatementTest.php b/tests/Builder/AlterStatementTest.php index f011b1a54..2ef398ea1 100644 --- a/tests/Builder/AlterStatementTest.php +++ b/tests/Builder/AlterStatementTest.php @@ -7,6 +7,7 @@ use Generator; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AlterStatementTest extends TestCase { @@ -87,7 +88,7 @@ public function testBuilderPartitions(): void "ALTER TABLE t1 ADD PARTITION (\n" . "PARTITION p3 VALUES LESS THAN (2002)\n" . ')', - $stmt->build() + $stmt->build(), ); $parser = new Parser('ALTER TABLE p PARTITION BY LINEAR KEY ALGORITHM=2 (id) PARTITIONS 32;'); @@ -95,7 +96,7 @@ public function testBuilderPartitions(): void $this->assertEquals( 'ALTER TABLE p PARTITION BY LINEAR KEY ALGORITHM=2 (id) PARTITIONS 32', - $stmt->build() + $stmt->build(), ); $parser = new Parser('ALTER TABLE t1 DROP PARTITION p0, p1;'); @@ -103,7 +104,7 @@ public function testBuilderPartitions(): void $this->assertEquals( 'ALTER TABLE t1 DROP PARTITION p0, p1', - $stmt->build() + $stmt->build(), ); $parser = new Parser( @@ -122,7 +123,7 @@ public function testBuilderPartitions(): void . ' PARTITION p11 VALUES LESS THAN (12),' . "\n" . ' PARTITION p12 VALUES LESS THAN (13),' . "\n" . ' PARTITION pmaxval VALUES LESS THAN MAXVALUE' . "\n" - . ');' + . ');', ); $stmt = $parser->statements[0]; @@ -142,7 +143,7 @@ public function testBuilderPartitions(): void . 'PARTITION p12 VALUES LESS THAN (13),' . "\n" . 'PARTITION pmaxval VALUES LESS THAN MAXVALUE' . "\n" . ')', - $stmt->build() + $stmt->build(), ); } @@ -154,9 +155,7 @@ public function testBuilderEventWithDefiner(): void $this->assertEquals($query, $stmt->build()); } - /** - * @return Generator - */ + /** @return Generator */ public static function provideBuilderForRenameColumn(): Generator { $query = 'ALTER TABLE myTable RENAME COLUMN a TO b'; @@ -184,9 +183,7 @@ public static function provideBuilderForRenameColumn(): Generator yield 'Mixed RENAME table + RENAME INDEX + RENAME COLUMNS' => [$query]; } - /** - * @dataProvider provideBuilderForRenameColumn - */ + #[DataProvider('provideBuilderForRenameColumn')] public function testBuilderRenameColumn(string $query): void { $parser = new Parser($query); @@ -194,9 +191,7 @@ public function testBuilderRenameColumn(string $query): void $this->assertEquals($query, $stmt->build()); } - /** - * @return Generator - */ + /** @return Generator */ public static function provideBuilderForAlterRoutine(): Generator { $query = 'ALTER FUNCTION func_name COMMENT "test"'; @@ -248,9 +243,7 @@ public static function provideBuilderForAlterRoutine(): Generator yield 'Procedure with all remaining options #2' => [$query]; } - /** - * @dataProvider provideBuilderForAlterRoutine - */ + #[DataProvider('provideBuilderForAlterRoutine')] public function testBuilderForAlterRoutine(string $query): void { $parser = new Parser($query); diff --git a/tests/Builder/CreateStatementTest.php b/tests/Builder/CreateStatementTest.php index c76497fd7..3ba1c1c53 100644 --- a/tests/Builder/CreateStatementTest.php +++ b/tests/Builder/CreateStatementTest.php @@ -9,11 +9,15 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\Key; use PhpMyAdmin\SqlParser\Components\OptionsArray; -use PhpMyAdmin\SqlParser\Components\ParameterDefinition; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\CreateDefinitions; +use PhpMyAdmin\SqlParser\Parsers\ParameterDefinitions; use PhpMyAdmin\SqlParser\Statements\CreateStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; +use PHPUnit\Framework\Attributes\DataProvider; use function implode; @@ -25,7 +29,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'CREATE USER "jeffrey"@"localhost" IDENTIFIED BY "mypass"', - $stmt->build() + $stmt->build(), ); } @@ -34,14 +38,14 @@ public function testBuilderDatabase(): void // CREATE DATABASE ... $parser = new Parser( 'CREATE DATABASE `mydb` ' . - 'DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci' + 'DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci', ); $stmt = $parser->statements[0]; $this->assertEquals( 'CREATE DATABASE `mydb` ' . 'DEFAULT CHARACTER SET=utf8 DEFAULT COLLATE=utf8_general_ci', - $stmt->build() + $stmt->build(), ); // CREATE SCHEMA ... @@ -51,7 +55,7 @@ public function testBuilderDatabase(): void $this->assertEquals( 'CREATE SCHEMA `mydb` ' . 'DEFAULT CHARACTER SET=utf8 DEFAULT COLLATE=utf8_general_ci', - $stmt->build() + $stmt->build(), ); } @@ -60,7 +64,7 @@ public function testBuilderDefaultInt(): void $parser = new Parser( 'CREATE TABLE IF NOT EXISTS t1 (' . " c1 int(11) NOT NULL DEFAULT '0' COMMENT 'xxx'" . - ') ENGINE=MyISAM' + ') ENGINE=MyISAM', ); $stmt = $parser->statements[0]; @@ -68,7 +72,7 @@ public function testBuilderDefaultInt(): void "CREATE TABLE IF NOT EXISTS t1 (\n" . " `c1` int(11) NOT NULL DEFAULT '0' COMMENT 'xxx'\n" . ') ENGINE=MyISAM', - $stmt->build() + $stmt->build(), ); } @@ -79,7 +83,7 @@ public function testBuilderWithComments(): void $this->assertEquals( // TODO: fix with https://github.com/phpmyadmin/sql-parser/issues/256 "CREATE TABLE tab1 (\n `col1` timestamp DEFAULT NULL\n) ", - $stmt->build() + $stmt->build(), ); } @@ -89,7 +93,7 @@ public function testBuilderCompressed(): void $stmt = $parser->statements[0]; $this->assertEquals( "CREATE TABLE users (\n `user_id` int\n) PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=9", - $stmt->build() + $stmt->build(), ); } @@ -98,7 +102,7 @@ public function testBuilderCollate(): void $parser = new Parser( 'CREATE TABLE IF NOT EXISTS t1 (' . " c1 varchar(11) NOT NULL DEFAULT '0' COLLATE 'utf8_czech_ci' COMMENT 'xxx'" . - ') ENGINE=MyISAM' + ') ENGINE=MyISAM', ); $stmt = $parser->statements[0]; @@ -106,7 +110,7 @@ public function testBuilderCollate(): void "CREATE TABLE IF NOT EXISTS t1 (\n" . " `c1` varchar(11) NOT NULL DEFAULT '0' COLLATE 'utf8_czech_ci' COMMENT 'xxx'\n" . ') ENGINE=MyISAM', - $stmt->build() + $stmt->build(), ); } @@ -116,7 +120,7 @@ public function testBuilderDefaultComment(): void 'CREATE TABLE `wp_audio` (' . " `somedata` int(11) DEFAULT NULL COMMENT 'ma data', " . " `someinfo` int(11) DEFAULT NULL COMMENT 'ma info' " . - ' )' + ' )', ); $stmt = $parser->statements[0]; @@ -125,7 +129,7 @@ public function testBuilderDefaultComment(): void " `somedata` int(11) DEFAULT NULL COMMENT 'ma data',\n" . " `someinfo` int(11) DEFAULT NULL COMMENT 'ma info'\n" . ') ', - $stmt->build() + $stmt->build(), ); } @@ -140,12 +144,12 @@ public function testBuilderTable(): void new CreateDefinition( 'id', new OptionsArray(['NOT NULL', 'AUTO_INCREMENT']), - new DataType('INT', [11], new OptionsArray(['UNSIGNED'])) + new DataType('INT', [11], new OptionsArray(['UNSIGNED'])), ), new CreateDefinition( '', null, - new Key('', [['name' => 'id']], 'PRIMARY KEY') + new Key('', [['name' => 'id']], 'PRIMARY KEY'), ), ]; @@ -154,7 +158,7 @@ public function testBuilderTable(): void " `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,\n" . " PRIMARY KEY (`id`)\n" . ') ', - $stmt->build() + $stmt->build(), ); /* Assertion 2 */ @@ -192,7 +196,7 @@ public function testBuilderTable(): void $parser = new Parser( 'CREATE table table_name WITH' . ' cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 )' . - ' SELECT col1 FROM cte' + ' SELECT col1 FROM cte', ); $stmt = $parser->statements[0]; @@ -200,7 +204,7 @@ public function testBuilderTable(): void 'CREATE TABLE table_name WITH' . ' cte(col1) AS (SELECT 1 UNION ALL SELECT 2)' . ' SELECT col1 FROM cte', - $stmt->build() + $stmt->build(), ); } @@ -251,54 +255,52 @@ public function testBuilderPartitions(): void $this->assertEquals($query, $parser->statements[0]->build()); } - /** - * @return string[][] - */ - public static function partitionQueriesProvider(): array + /** @psalm-return iterable */ + public static function partitionQueriesProvider(): iterable { - $subPartitions = << [ + <<<'SQL' + CREATE TABLE `ts` ( + `id` int(11) DEFAULT NULL, + `purchased` date DEFAULT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 + PARTITION BY RANGE (YEAR(purchased)) + SUBPARTITION BY HASH (TO_DAYS(purchased)) + ( + PARTITION p0 VALUES LESS THAN (1990) ( + SUBPARTITION s0 ENGINE=InnoDB, + SUBPARTITION s1 ENGINE=InnoDB + ), + PARTITION p1 VALUES LESS THAN (2000) ( + SUBPARTITION s2 ENGINE=InnoDB, + SUBPARTITION s3 ENGINE=InnoDB + ), + PARTITION p2 VALUES LESS THAN MAXVALUE ( + SUBPARTITION s4 ENGINE=InnoDB, + SUBPARTITION s5 ENGINE=InnoDB + ) + ) + SQL, + ]; - return ['subpartitions' => [$subPartitions], 'partitions' => [$partitions]]; + yield 'partitions' => [ + <<<'SQL' + CREATE TABLE ptest ( + `event_date` date NOT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC + PARTITION BY HASH (TO_DAYS(event_date)) + ( + PARTITION p0 ENGINE=InnoDB, + PARTITION p1 ENGINE=InnoDB, + PARTITION p2 ENGINE=InnoDB, + PARTITION p3 ENGINE=InnoDB, + PARTITION p4 ENGINE=InnoDB + ) + SQL, + ]; } - /** - * @dataProvider partitionQueriesProvider - */ + #[DataProvider('partitionQueriesProvider')] public function testBuilderPartitionsEngine(string $query): void { $parser = new Parser($query); @@ -312,7 +314,7 @@ public function testBuilderView(): void $parser = new Parser( 'CREATE OR REPLACE VIEW xviewmytable AS SELECT mytable.id ' . 'AS id, mytable.personid AS personid FROM mytable ' - . 'WHERE (mytable.birth > \'1990-01-19\') GROUP BY mytable.personid ;' + . 'WHERE (mytable.birth > \'1990-01-19\') GROUP BY mytable.personid ;', ); $stmt = $parser->statements[0]; @@ -320,50 +322,50 @@ public function testBuilderView(): void 'CREATE OR REPLACE VIEW xviewmytable AS SELECT mytable.id ' . 'AS `id`, mytable.personid AS `personid` FROM mytable ' . 'WHERE (mytable.birth > \'1990-01-19\') GROUP BY mytable.personid ', - $stmt->build() + $stmt->build(), ); $parser = new Parser( 'CREATE VIEW myView (vid, vfirstname) AS ' . - 'SELECT id, first_name FROM employee WHERE id = 1' + 'SELECT id, first_name FROM employee WHERE id = 1', ); $stmt = $parser->statements[0]; $this->assertEquals( 'CREATE VIEW myView (vid, vfirstname) AS ' . 'SELECT id, first_name FROM employee WHERE id = 1 ', - $stmt->build() + $stmt->build(), ); $parser = new Parser( 'CREATE OR REPLACE VIEW myView (vid, vfirstname) AS ' . - 'SELECT id, first_name FROM employee WHERE id = 1' + 'SELECT id, first_name FROM employee WHERE id = 1', ); $stmt = $parser->statements[0]; $this->assertEquals( 'CREATE OR REPLACE VIEW myView (vid, vfirstname) AS ' . 'SELECT id, first_name FROM employee WHERE id = 1 ', - $stmt->build() + $stmt->build(), ); // Assert the builder can build wrong syntax select expressions $parser = new Parser( 'CREATE OR REPLACE VIEW myView (vid, vfirstname) AS ' . - 'SELECT id, first_name, FROMzz employee WHERE id = 1' + 'SELECT id, first_name, FROMzz employee WHERE id = 1', ); $stmt = $parser->statements[0]; $this->assertEquals( 'CREATE OR REPLACE VIEW myView (vid, vfirstname) AS ' . 'SELECT id, first_name, FROMzz employee WHERE id = 1 ', - $stmt->build() + $stmt->build(), ); $parser = new Parser( 'CREATE OR REPLACE VIEW myView (vid, vfirstname) AS ' . 'SELECT id, first_name, FROMzz employee WHERE id = 1 ' . 'UNION ' . - 'SELECT id, first_name, FROMzz employee WHERE id = 2 ' + 'SELECT id, first_name, FROMzz employee WHERE id = 2 ', ); $stmt = $parser->statements[0]; @@ -372,7 +374,7 @@ public function testBuilderView(): void 'SELECT id, first_name, FROMzz employee WHERE id = 1 ' . 'UNION ' . 'SELECT id, first_name, FROMzz employee WHERE id = 2 ', - $stmt->build() + $stmt->build(), ); $parser = new Parser('CREATE VIEW `view_programlevelpartner` AS SELECT `p`.`country_id`' @@ -381,7 +383,7 @@ public function testBuilderView(): void $this->assertEquals( 'CREATE VIEW `view_programlevelpartner` AS SELECT `p`.`country_id`' . ' AS `country_id` FROM `program_level_partner` AS `p` ORDER BY `p`.`id` ASC ', - $stmt->build() + $stmt->build(), ); $parser = new Parser('CREATE VIEW `view_zg_bycountry` AS ' @@ -390,7 +392,7 @@ public function testBuilderView(): void $this->assertEquals( 'CREATE VIEW `view_zg_bycountry` AS ' . 'SELECT `d`.`zg_id` FROM `view_zg_value` AS `d` GROUP BY `d`.`ind_id` ', - $stmt->build() + $stmt->build(), ); $parser = new Parser('CREATE view view_name AS WITH aa(col1)' @@ -399,7 +401,7 @@ public function testBuilderView(): void $this->assertEquals( 'CREATE view view_name AS WITH aa(col1)' . ' AS (SELECT 1 UNION ALL SELECT 2) SELECT col1 FROM cte AS `d` ', - $stmt->build() + $stmt->build(), ); $parser = new Parser( @@ -413,7 +415,7 @@ public function testBuilderView(): void ' WHERE `number` < 5', ')', 'SELECT * FROM number_sequence;', - ]) + ]), ); $stmt = $parser->statements[0]; $this->assertEquals( @@ -426,7 +428,7 @@ public function testBuilderView(): void . ' WHERE `number` < 5' . ')' . ' SELECT * FROM number_sequence ', - $stmt->build() + $stmt->build(), ); } @@ -442,7 +444,7 @@ public function testBuilderViewComplex(): void . "\n" . 'SELECT cte.*' . "\n" . 'FROM cte' . "\n" - . 'CROSS JOIN gis_all;' + . 'CROSS JOIN gis_all;', ); $stmt = $parser->statements[0]; @@ -455,7 +457,7 @@ public function testBuilderViewComplex(): void . 'SELECT cte.* ' . 'FROM cte ' . 'CROSS JOIN gis_all ', - $stmt->build() + $stmt->build(), ); $parser = new Parser( 'CREATE VIEW withclause2 AS' . "\n" @@ -470,7 +472,7 @@ public function testBuilderViewComplex(): void . "\n" . 'SELECT cte.*,cte2.*' . "\n" . 'FROM cte,cte2' . "\n" - . 'CROSS JOIN gis_all;' + . 'CROSS JOIN gis_all;', ); $stmt = $parser->statements[0]; @@ -486,7 +488,7 @@ public function testBuilderViewComplex(): void . ' SELECT cte.*, cte2.* ' . 'FROM cte, cte2' . ' CROSS JOIN gis_all ', - $stmt->build() + $stmt->build(), ); } @@ -495,60 +497,64 @@ public function testBuilderCreateProcedure(): void $parser = new Parser( 'CREATE DEFINER=`root`@`%`' . ' PROCEDURE `test2`(IN `_var` INT) DETERMINISTIC' - . ' MODIFIES SQL DATA SELECT _var' + . ' MODIFIES SQL DATA SELECT _var', ); - /** @var CreateStatement $stmt */ $stmt = $parser->statements[0]; + $this->assertInstanceOf(CreateStatement::class, $stmt); $this->assertSame( 'CREATE DEFINER=`root`@`%`' . ' PROCEDURE `test2` (IN `_var` INT) DETERMINISTIC' . ' MODIFIES SQL DATA SELECT _var', - $stmt->build() + $stmt->build(), ); $parser = new Parser( 'CREATE DEFINER=`root`@`%`' . ' PROCEDURE `test2`(IN `_var` INT) NOT DETERMINISTIC NO SQL' - . ' SQL SECURITY INVOKER NO SQL SQL SECURITY INVOKER SELECT _var' + . ' SQL SECURITY INVOKER NO SQL SQL SECURITY INVOKER SELECT _var', ); - /** @var CreateStatement $stmt */ $stmt = $parser->statements[0]; + $this->assertInstanceOf(CreateStatement::class, $stmt); $this->assertSame( 'CREATE DEFINER=`root`@`%`' . ' PROCEDURE `test2` (IN `_var` INT) NOT DETERMINISTIC NO SQL' . ' SQL SECURITY INVOKER NO SQL SQL SECURITY INVOKER SELECT _var', - $stmt->build() + $stmt->build(), ); + $this->assertNotNull($stmt->entityOptions); $this->assertFalse($stmt->entityOptions->isEmpty()); + $this->assertNotNull($stmt->options); $this->assertFalse($stmt->options->isEmpty()); $this->assertSame( 'DEFINER=`root`@`%` PROCEDURE', - $stmt->options->__toString() + $stmt->options->__toString(), ); + $this->assertNotNull($stmt->name); $this->assertSame( '`test2`', - $stmt->name->__toString() + $stmt->name->__toString(), ); + $this->assertNotNull($stmt->parameters); $this->assertSame( '(IN `_var` INT)', - ParameterDefinition::build($stmt->parameters) + ParameterDefinitions::buildAll($stmt->parameters), ); $this->assertSame( 'NOT DETERMINISTIC NO SQL SQL SECURITY INVOKER NO SQL SQL SECURITY INVOKER', - $stmt->entityOptions->__toString() + $stmt->entityOptions->__toString(), ); $this->assertSame( 'SELECT _var', - TokensList::build($stmt->body) + TokensList::buildFromArray($stmt->body), ); } @@ -585,11 +591,11 @@ public function testBuilderCreateFunction(): void . ' ELSE' . "\n" . ' RETURN TRUE;' . "\n" . ' END IF;' . "\n" - . 'END' + . 'END', ); - /** @var CreateStatement $stmt */ $stmt = $parser->statements[0]; + $this->assertInstanceOf(CreateStatement::class, $stmt); $this->assertSame( 'CREATE DEFINER=`root`@`localhost`' @@ -622,30 +628,34 @@ public function testBuilderCreateFunction(): void . ' RETURN TRUE;' . "\n" . ' END IF;' . "\n" . 'END', - $stmt->build() + $stmt->build(), ); + $this->assertNotNull($stmt->entityOptions); $this->assertFalse($stmt->entityOptions->isEmpty()); + $this->assertNotNull($stmt->options); $this->assertFalse($stmt->options->isEmpty()); $this->assertSame( 'DEFINER=`root`@`localhost` FUNCTION', - $stmt->options->__toString() + $stmt->options->__toString(), ); + $this->assertNotNull($stmt->name); $this->assertSame( '`inventory_in_stock`', - $stmt->name->__toString() + $stmt->name->__toString(), ); + $this->assertNotNull($stmt->parameters); $this->assertSame( '(`p_inventory_id` INT)', - ParameterDefinition::build($stmt->parameters) + ParameterDefinitions::buildAll($stmt->parameters), ); $this->assertSame( 'READS SQL DATA COMMENT \'My best function written by a friend\'\'s friend\'', - $stmt->entityOptions->__toString() + $stmt->entityOptions->__toString(), ); $this->assertSame( @@ -675,7 +685,7 @@ public function testBuilderCreateFunction(): void . ' RETURN TRUE;' . "\n" . ' END IF;' . "\n" . 'END', - TokensList::build($stmt->body) + TokensList::buildFromArray($stmt->body), ); } @@ -687,12 +697,26 @@ public function testBuilderTrigger(): void $stmt->name = new Expression('ins_sum'); $stmt->entityOptions = new OptionsArray(['BEFORE', 'INSERT']); $stmt->table = new Expression('account'); - $stmt->body = 'SET @sum = @sum + NEW.amount'; + $stmt->body = [ + new Token('SET', TokenType::Keyword), + new Token(' ', TokenType::Whitespace), + new Token('@sum', TokenType::None), + new Token(' ', TokenType::Whitespace), + new Token('=', TokenType::Operator), + new Token(' ', TokenType::Whitespace), + new Token('@sum', TokenType::None), + new Token(' ', TokenType::Whitespace), + new Token('+', TokenType::Operator), + new Token(' ', TokenType::Whitespace), + new Token('NEW', TokenType::Keyword), + new Token('.', TokenType::Operator), + new Token('amount', TokenType::None), + ]; $this->assertEquals( 'CREATE TRIGGER ins_sum BEFORE INSERT ON account ' . 'FOR EACH ROW SET @sum = @sum + NEW.amount', - $stmt->build() + $stmt->build(), ); } @@ -705,7 +729,7 @@ public function testBuilderRoutine(): void 'DECLARE name VARCHAR DEFAULT ""; ' . 'SELECT name INTO name FROM employees WHERE id = i; ' . 'RETURN name; ' . - 'END' + 'END', ); $stmt = $parser->statements[0]; @@ -716,7 +740,7 @@ public function testBuilderRoutine(): void 'SELECT name INTO name FROM employees WHERE id = i; ' . 'RETURN name; ' . 'END', - $stmt->build() + $stmt->build(), ); } @@ -725,7 +749,7 @@ public function testBuildSelect(): void $parser = new Parser('CREATE TABLE new_tbl SELECT * FROM orig_tbl'); $this->assertEquals( 'CREATE TABLE new_tbl SELECT * FROM orig_tbl', - $parser->statements[0]->build() + $parser->statements[0]->build(), ); } @@ -742,11 +766,11 @@ public function testBuildCreateTableSortedIndex(): void KEY `entries__ug2` (`fk_ug_id` ASC), KEY `33` (`id` ASC, `fk_ug_id` DESC) ) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB AUTO_INCREMENT=4465 DEFAULT CHARSET=utf8 -SQL +SQL, ); - /** @var CreateStatement $stmt */ $stmt = $parser->statements[0]; + $this->assertInstanceOf(CreateStatement::class, $stmt); $tableBody = <<<'SQL' ( @@ -760,16 +784,17 @@ public function testBuildCreateTableSortedIndex(): void ) SQL; + $this->assertIsArray($stmt->fields); $this->assertEquals( $tableBody, - CreateDefinition::build($stmt->fields) + CreateDefinitions::buildAll($stmt->fields), ); $this->assertEquals( 'CREATE TABLE `entries` ' . $tableBody . ' ENGINE=InnoDB AUTO_INCREMENT=4465 DEFAULT CHARSET=utf8 TABLESPACE `innodb_system`', - $stmt->build() + $stmt->build(), ); } @@ -818,12 +843,12 @@ public function testBuildCreateTableComplexIndexes(): void KEY `updated_tz_ind_two_indexes` ((convert_tz(`cache_updated`,_utf8mb4'GMT',_utf8mb4'GB')), (convert_tz(`cache_updated`,_utf8mb4'GMT',_utf8mb4'FR'))) COMMENT 'bar\'s', KEY `updated_tz_ind` ((convert_tz(`cache_updated`,_utf8mb4'GMT',_utf8mb4'GB'))) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -SQL +SQL, ); // phpcs:enable - /** @var CreateStatement $stmt */ $stmt = $parser->statements[0]; + $this->assertInstanceOf(CreateStatement::class, $stmt); // phpcs:disable Generic.Files.LineLength.TooLong $tableBody = <<<'SQL' @@ -859,16 +884,17 @@ public function testBuildCreateTableComplexIndexes(): void SQL; // phpcs:enable + $this->assertIsArray($stmt->fields); $this->assertEquals( $tableBody, - CreateDefinition::build($stmt->fields) + CreateDefinitions::buildAll($stmt->fields), ); $this->assertEquals( 'CREATE TABLE `page_rebuild_control` ' . $tableBody . ' ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci', - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Builder/ExplainStatementTest.php b/tests/Builder/ExplainStatementTest.php index 7fc0422d3..58abdc742 100644 --- a/tests/Builder/ExplainStatementTest.php +++ b/tests/Builder/ExplainStatementTest.php @@ -17,7 +17,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'EXPLAIN SELECT * FROM test', - $stmt->build() + $stmt->build(), ); /* Assertion 2 */ @@ -26,7 +26,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'EXPLAIN ANALYZE SELECT * FROM tablename', - $stmt->build() + $stmt->build(), ); /* Assertion 3 */ @@ -35,7 +35,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'DESC ANALYZE SELECT * FROM tablename', - $stmt->build() + $stmt->build(), ); /* Assertion 4 */ @@ -44,7 +44,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'ANALYZE SELECT * FROM tablename', - $stmt->build() + $stmt->build(), ); /* Assertion 5 */ @@ -53,7 +53,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'DESCRIBE `tablename`', - $stmt->build() + $stmt->build(), ); /* Assertion 6 */ @@ -62,7 +62,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'DESC FOR CONNECTION 458', - $stmt->build() + $stmt->build(), ); /* Assertion 7 */ @@ -71,7 +71,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'EXPLAIN FORMAT=TREE SELECT * FROM db', - $stmt->build() + $stmt->build(), ); /* Assertion 8 */ @@ -80,7 +80,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'DESCRIBE `tablename` `colname`', - $stmt->build() + $stmt->build(), ); /* Assertion 9 */ @@ -89,7 +89,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'DESCRIBE `tablename` `col%me`', - $stmt->build() + $stmt->build(), ); /* Assertion 9 */ @@ -98,7 +98,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'DESCRIBE `db`.`tablename` `col%me`', - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Builder/InsertStatementTest.php b/tests/Builder/InsertStatementTest.php index 471eea092..ac6e111ac 100644 --- a/tests/Builder/InsertStatementTest.php +++ b/tests/Builder/InsertStatementTest.php @@ -4,64 +4,61 @@ namespace PhpMyAdmin\SqlParser\Tests\Builder; +use Generator; +use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class InsertStatementTest extends TestCase { - public function testBuilder(): void + private int $sqlMode; + + public function setUp(): void { - /* Assertion 1 */ - $parser = new Parser('INSERT INTO tbl(`col1`, `col2`, `col3`) VALUES (1, "str", 3.14)'); - $stmt = $parser->statements[0]; - $this->assertEquals( - 'INSERT INTO tbl(`col1`, `col2`, `col3`) VALUES (1, "str", 3.14)', - $stmt->build() - ); - - /* Assertion 2 */ - /* Reserved keywords (with backquotes as field name) */ - $parser = new Parser('INSERT INTO tbl(`order`) VALUES (1)'); - $stmt = $parser->statements[0]; - $this->assertEquals( - 'INSERT INTO tbl(`order`) VALUES (1)', - $stmt->build() - ); - - /* Assertion 3 */ - /* INSERT ... SET ... */ - $parser = new Parser('INSERT INTO tbl SET FOO = 1'); - $stmt = $parser->statements[0]; - $this->assertEquals( - 'INSERT INTO tbl SET FOO = 1', - $stmt->build() - ); - - /* Assertion 4 */ - /* INSERT ... SELECT ... */ - $parser = new Parser('INSERT INTO tbl SELECT * FROM bar'); - $stmt = $parser->statements[0]; - $this->assertEquals( - 'INSERT INTO tbl SELECT * FROM bar', - $stmt->build() - ); - - /* Assertion 5 */ - /* INSERT ... ON DUPLICATE KEY UPDATE ... */ - $parser = new Parser('INSERT INTO tbl SELECT * FROM bar ON DUPLICATE KEY UPDATE baz = 1'); + parent::setUp(); + + $this->sqlMode = Context::getMode(); + } + + protected function tearDown(): void + { + Context::setMode($this->sqlMode); + + parent::tearDown(); + } + + #[DataProvider('providerForTestBuilder')] + public function testBuilder(string $sql): void + { + $parser = new Parser($sql); $stmt = $parser->statements[0]; - $this->assertEquals( - 'INSERT INTO tbl SELECT * FROM bar ON DUPLICATE KEY UPDATE baz = 1', - $stmt->build() - ); - - /* Assertion 6 */ - /* INSERT [OPTIONS] INTO ... */ - $parser = new Parser('INSERT DELAYED IGNORE INTO tbl SELECT * FROM bar'); + self::assertEquals($sql, $stmt->build()); + } + + /** @return Generator> */ + public static function providerForTestBuilder(): Generator + { + yield 'INSERT ... VALUES ...' => ['INSERT INTO tbl(`col1`, `col2`, `col3`) VALUES (1, "str", 3.14)']; + + yield 'Reserved keywords (with backquotes as field name)' => ['INSERT INTO tbl(`order`) VALUES (1)']; + + yield 'INSERT ... SET ...' => ['INSERT INTO tbl SET FOO = 1']; + + yield 'INSERT ... SELECT ... ' => ['INSERT INTO tbl SELECT * FROM bar']; + + yield 'INSERT ... ON DUPLICATE KEY UPDATE ...' => + ['INSERT INTO tbl SELECT * FROM bar ON DUPLICATE KEY UPDATE baz = 1']; + + yield 'INSERT [OPTIONS] INTO ...' => ['INSERT DELAYED IGNORE INTO tbl SELECT * FROM bar']; + } + + public function testBuilderAnsi(): void + { + Context::setMode(Context::SQL_MODE_ANSI_QUOTES); + $sql = "INSERT INTO foo (bar, baz) VALUES ('bar', 'baz')"; + $parser = new Parser($sql); $stmt = $parser->statements[0]; - $this->assertEquals( - 'INSERT DELAYED IGNORE INTO tbl SELECT * FROM bar', - $stmt->build() - ); + self::assertEquals('INSERT INTO foo("bar", "baz") VALUES (\'bar\', \'baz\')', $stmt->build()); } } diff --git a/tests/Builder/LoadStatementTest.php b/tests/Builder/LoadStatementTest.php index bc3d1c922..423295efd 100644 --- a/tests/Builder/LoadStatementTest.php +++ b/tests/Builder/LoadStatementTest.php @@ -21,7 +21,7 @@ public function testBuilder(): void $this->assertEquals( 'LOAD DATA CONCURRENT INFILE ' . '\'employee1.txt\' INTO TABLE employee', - $stmt->build() + $stmt->build(), ); /* Assertion 2 */ @@ -36,7 +36,7 @@ public function testBuilder(): void 'LOAD DATA INFILE \'/tmp/test.txt\' ' . 'INTO TABLE test FIELDS TERMINATED BY ' . '\',\' IGNORE 1 LINES', - $stmt->build() + $stmt->build(), ); /* Assertion 3 */ @@ -51,7 +51,7 @@ public function testBuilder(): void 'LOAD DATA INFILE \'employee3.txt\' ' . 'INTO TABLE employee FIELDS TERMINATED BY ' . '\',\' ENCLOSED BY \'"\'', - $stmt->build() + $stmt->build(), ); /* Assertion 4 */ @@ -72,7 +72,7 @@ public function testBuilder(): void . 'COLUMNS TERMINATED BY \',\' ' . 'LINES TERMINATED BY \';\' ' . 'IGNORE 1 LINES (col1, col2) SET @a = 1', - $stmt->build() + $stmt->build(), ); /* Assertion 5 */ @@ -85,7 +85,7 @@ public function testBuilder(): void $this->assertEquals( 'LOAD DATA INFILE \'/tmp/test.txt\' REPLACE ' . 'INTO TABLE test COLUMNS TERMINATED BY \',\' IGNORE 1 ROWS', - $stmt->build() + $stmt->build(), ); /* Assertion 6 */ @@ -102,7 +102,7 @@ public function testBuilder(): void . 'INTO TABLE test PARTITION (p0, p1, p2) CHARACTER SET \'utf8\' ' . 'COLUMNS TERMINATED BY \',\' LINES TERMINATED BY \';\' ' . 'IGNORE 1 LINES (col1, col2) SET @a = 1', - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Builder/RenameStatementTest.php b/tests/Builder/RenameStatementTest.php index 5d495cb70..a3abf3a3a 100644 --- a/tests/Builder/RenameStatementTest.php +++ b/tests/Builder/RenameStatementTest.php @@ -16,7 +16,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); $query = 'RENAME TABLE current_db.tbl_name TO other_db.tbl_name'; @@ -24,7 +24,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); $query = 'RENAME TABLE old_table1 TO new_table1, old_table2 TO new_table2, old_table3 TO new_table3'; @@ -32,7 +32,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Builder/ReplaceStatementTest.php b/tests/Builder/ReplaceStatementTest.php index e5f247517..36c5ddde0 100644 --- a/tests/Builder/ReplaceStatementTest.php +++ b/tests/Builder/ReplaceStatementTest.php @@ -15,7 +15,7 @@ public function testBuilder(): void $stmt = $parser->statements[0]; $this->assertEquals( 'REPLACE INTO tbl(`col1`, `col2`, `col3`) VALUES (1, "str", 3.14)', - $stmt->build() + $stmt->build(), ); } @@ -25,7 +25,7 @@ public function testBuilderSet(): void $stmt = $parser->statements[0]; $this->assertEquals( 'REPLACE INTO tbl(`col1`, `col2`, `col3`) SET col1 = 1, col2 = "str", col3 = 3.14', - $stmt->build() + $stmt->build(), ); } @@ -35,7 +35,7 @@ public function testBuilderSelect(): void $stmt = $parser->statements[0]; $this->assertEquals( 'REPLACE INTO tbl(`col1`, `col2`, `col3`) SELECT col1, col2, col3 FROM tbl2', - $stmt->build() + $stmt->build(), ); } @@ -45,7 +45,7 @@ public function testBuilderSelectDelayed(): void $stmt = $parser->statements[0]; $this->assertEquals( 'REPLACE DELAYED INTO tbl(`col1`, `col2`, `col3`) SELECT col1, col2, col3 FROM tbl2', - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Builder/SelectStatementTest.php b/tests/Builder/SelectStatementTest.php index cd9168e62..ddf7b1cf3 100644 --- a/tests/Builder/SelectStatementTest.php +++ b/tests/Builder/SelectStatementTest.php @@ -20,7 +20,7 @@ public function testBuilder(): void $this->assertEquals( 'SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ' . 'ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)', - $stmt->build() + $stmt->build(), ); $parser = new Parser('SELECT NULL IS NULL'); @@ -56,7 +56,7 @@ public function testBuilderUnion(): void $this->assertEquals( 'SELECT 1 UNION SELECT 2', - $stmt->build() + $stmt->build(), ); } @@ -94,7 +94,7 @@ public function testBuilderAlias(): void 'SELECT sgu.id, sgu.email_address FROM `sf_guard_user` sgu ' . 'RIGHT JOIN `student_course_booking` scb ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' - . 'ORDER BY scb.id DESC LIMIT 0,300' + . 'ORDER BY scb.id DESC LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -103,7 +103,7 @@ public function testBuilderAlias(): void . 'RIGHT JOIN `student_course_booking` AS `scb` ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' . 'ORDER BY scb.id DESC LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -113,7 +113,7 @@ public function testBuilderAliasOrder(): void 'SELECT sgu.id, sgu.email_address FROM `sf_guard_user` sgu ' . 'RIGHT JOIN `student_course_booking` scb ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' - . 'ORDER BY scb.id LIMIT 0,300' + . 'ORDER BY scb.id LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -122,7 +122,7 @@ public function testBuilderAliasOrder(): void . 'RIGHT JOIN `student_course_booking` AS `scb` ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' . 'ORDER BY scb.id ASC LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -132,7 +132,7 @@ public function testBuilderAliasOrderMultiple(): void 'SELECT sgu.id, sgu.email_address FROM `sf_guard_user` sgu ' . 'RIGHT JOIN `student_course_booking` scb ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' - . 'ORDER BY scb.id DESC, scb.order LIMIT 0,300' + . 'ORDER BY scb.id DESC, scb.order LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -141,7 +141,7 @@ public function testBuilderAliasOrderMultiple(): void . 'RIGHT JOIN `student_course_booking` AS `scb` ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' . 'ORDER BY scb.id DESC, scb.order ASC LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -151,7 +151,7 @@ public function testBuilderAliasOrderMultipleFunctions(): void 'SELECT sgu.id, sgu.email_address FROM `sf_guard_user` sgu ' . 'RIGHT JOIN `student_course_booking` scb ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' - . 'ORDER BY scb.id DESC, YEAR(scb.dob) LIMIT 0,300' + . 'ORDER BY scb.id DESC, YEAR(scb.dob) LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -160,7 +160,7 @@ public function testBuilderAliasOrderMultipleFunctions(): void . 'RIGHT JOIN `student_course_booking` AS `scb` ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ' . 'ORDER BY scb.id DESC, YEAR(scb.dob) ASC LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -170,7 +170,7 @@ public function testBuilderAliasGroupByMultipleFunctions(): void 'SELECT sgu.id, sgu.email_address FROM `sf_guard_user` sgu ' . 'RIGHT JOIN `student_course_booking` scb ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' ' - . 'GROUP BY scb.id, YEAR(scb.dob) LIMIT 0,300' + . 'GROUP BY scb.id, YEAR(scb.dob) LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -179,7 +179,7 @@ public function testBuilderAliasGroupByMultipleFunctions(): void . 'RIGHT JOIN `student_course_booking` AS `scb` ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' ' . 'GROUP BY scb.id, YEAR(scb.dob) LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -189,7 +189,7 @@ public function testBuilderAliasGroupByMultipleFunctionsOrderRemoved(): void 'SELECT sgu.id, sgu.email_address FROM `sf_guard_user` sgu ' . 'RIGHT JOIN `student_course_booking` scb ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' ' - . 'GROUP BY scb.id ASC, YEAR(scb.dob) DESC LIMIT 0,300' + . 'GROUP BY scb.id ASC, YEAR(scb.dob) DESC LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -201,7 +201,7 @@ public function testBuilderAliasGroupByMultipleFunctionsOrderRemoved(): void . 'RIGHT JOIN `student_course_booking` AS `scb` ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' ' . 'GROUP BY scb.id, YEAR(scb.dob) LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -211,7 +211,7 @@ public function testBuilderAliasOrderCase(): void 'SELECT * FROM `world_borders` ORDER BY CASE ' . 'WHEN REGION = 2 THEN 99 ' . 'WHEN REGION > 3 THEN REGION+1 ' - . 'ELSE 100 END LIMIT 0,300' + . 'ELSE 100 END LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -220,7 +220,7 @@ public function testBuilderAliasOrderCase(): void . 'WHEN REGION = 2 THEN 99 ' . 'WHEN REGION > 3 THEN REGION+1 ' . 'ELSE 100 END ASC LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -230,7 +230,7 @@ public function testBuilderAliasGroupByCase(): void 'SELECT * FROM `world_borders` GROUP BY CASE ' . 'WHEN REGION = 2 THEN 99 ' . 'WHEN REGION > 3 THEN REGION+1 ' - . 'ELSE 100 END LIMIT 0,300' + . 'ELSE 100 END LIMIT 0,300', ); $stmt = $parser->statements[0]; @@ -239,7 +239,7 @@ public function testBuilderAliasGroupByCase(): void . 'WHEN REGION = 2 THEN 99 ' . 'WHEN REGION > 3 THEN REGION+1 ' . 'ELSE 100 END LIMIT 0, 300', - $stmt->build() + $stmt->build(), ); } @@ -252,7 +252,7 @@ public function testBuilderEndOptions(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); /* Assertion 2 */ @@ -262,7 +262,7 @@ public function testBuilderEndOptions(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } @@ -278,7 +278,7 @@ public function testBuilderIntoOptions(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } @@ -290,7 +290,7 @@ public function testBuilderGroupBy(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } @@ -302,7 +302,7 @@ public function testBuilderGroupByWithRollup(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } @@ -314,7 +314,7 @@ public function testBuilderGroupByMultipleColumnsWithRollup(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } @@ -326,7 +326,7 @@ public function testBuilderGroupByWithRollupWithOtherClauses(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } @@ -338,7 +338,7 @@ public function testBuilderIndexHint(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); } @@ -350,7 +350,104 @@ public function testBuilderSurroundedByParanthesisWithLimit(): void $this->assertEquals( 'SELECT first_name FROM `actor` LIMIT 1, 2', - $stmt->build() + $stmt->build(), ); } + + public function testBuilderSelectFromWithForceIndex(): void + { + $query = 'SELECT *' + . ' FROM uno FORCE INDEX (id)'; + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + self::assertSame($query, $stmt->build()); + } + + /** + * Ensures issue #497 is fixed. + */ + public function testBuilderSelectFromJoinWithForceIndex(): void + { + $query = 'SELECT *' + . ' FROM uno' + . ' JOIN dos FORCE INDEX (two_id) ON dos.id = uno.id'; + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + self::assertSame($query, $stmt->build()); + } + + /** + * Ensures issue #593 is fixed. + */ + public function testBuilderSelectFromInnerJoinWithForceIndex(): void + { + $query = 'SELECT a.id, a.name, b.order_id, b.total' + . ' FROM customers a' + . ' INNER JOIN orders b FORCE INDEX (idx_customer_id)' + . ' ON a.id = b.customer_id' + . " WHERE a.status = 'active'"; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $expectedQuery = 'SELECT a.id, a.name, b.order_id, b.total' + . ' FROM customers AS `a`' + . ' INNER JOIN orders AS `b` FORCE INDEX (idx_customer_id)' + . ' ON a.id = b.customer_id' + . " WHERE a.status = 'active'"; + + self::assertSame($expectedQuery, $stmt->build()); + } + + public function testBuilderSelectAllFormsOfIndexHints(): void + { + $query = 'SELECT *' + . ' FROM one USE INDEX (col1) IGNORE INDEX (col1, col2) FORCE INDEX (col1, col2, col3)' + . ' INNER JOIN two USE INDEX (col3) IGNORE INDEX (col2, col3) FORCE INDEX (col1, col2, col3)' + . ' ON one.col1 = two.col2' + . ' WHERE 1 = 1'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + self::assertSame($query, $stmt->build()); + } + + public function testBuilderSelectRowNumberOverAlias(): void + { + $query = 'SELECT id, pid, appid, appname, row_number() over (partition by pid, appid) as `group_row_number`' + . ' FROM game group by appname'; + $expected = 'SELECT id, pid, appid, appname, row_number() over (partition by pid, appid) AS `group_row_number`' + . ' FROM game GROUP BY appname'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + self::assertSame($expected, $stmt->build()); + } + + public function testBuilderSelectWindowFunctions(): void + { + $queryVsExpected = [ + 'SELECT row_number() over (ORDER BY NULL) x' => 'SELECT row_number() over (ORDER BY NULL) AS `x`', + 'SELECT rank() over (ORDER BY NULL) x' => 'SELECT rank() over (ORDER BY NULL) AS `x`', + 'SELECT dense_rank() over (ORDER BY NULL) x' => 'SELECT dense_rank() over (ORDER BY NULL) AS `x`', + 'SELECT cume_dist() over (ORDER BY NULL) x' => 'SELECT cume_dist() over (ORDER BY NULL) AS `x`', + 'SELECT ntile(3) over (ORDER BY NULL) x' => 'SELECT ntile(3) over (ORDER BY NULL) AS `x`', + 'SELECT ROW_NUMBER() OVER(ORDER BY NULL) x' => 'SELECT ROW_NUMBER() OVER(ORDER BY NULL) AS `x`', + 'SELECT RANK()OVER(ORDER BY NULL) x' => 'SELECT RANK()OVER(ORDER BY NULL) AS `x`', + 'SELECT DENSE_RANK()OVER(ORDER BY NULL) x' => 'SELECT DENSE_RANK()OVER(ORDER BY NULL) AS `x`', + 'SELECT CUME_DIST()OVER(ORDER BY NULL) x' => 'SELECT CUME_DIST()OVER(ORDER BY NULL) AS `x`', + 'SELECT NTILE(3)OVER(ORDER BY NULL) x' => 'SELECT NTILE(3)OVER(ORDER BY NULL) AS `x`', + ]; + + foreach ($queryVsExpected as $query => $expected) { + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + self::assertSame($expected, $stmt->build()); + } + } } diff --git a/tests/Builder/SetStatementTest.php b/tests/Builder/SetStatementTest.php index 5f97c8bca..baca7f5ae 100644 --- a/tests/Builder/SetStatementTest.php +++ b/tests/Builder/SetStatementTest.php @@ -19,7 +19,7 @@ public function testBuilderView(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); /* Assertion 2 */ @@ -30,7 +30,7 @@ public function testBuilderView(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); /* Assertion 3 */ @@ -41,7 +41,7 @@ public function testBuilderView(): void $this->assertEquals( $query, - $stmt->build() + $stmt->build(), ); /* Assertion 4 */ @@ -52,7 +52,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET NAMES \'utf8\' COLLATE \'utf8_general_ci\'', - $stmt->build() + $stmt->build(), ); /* Assertion 5 */ @@ -63,7 +63,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET NAMES \'utf8\' DEFAULT', - $stmt->build() + $stmt->build(), ); /* Assertion 6 */ @@ -74,7 +74,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 7 */ @@ -85,7 +85,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET SESSION sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 8 */ @@ -96,7 +96,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET GLOBAL sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 9 */ @@ -107,7 +107,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET SESSION sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 10 */ @@ -118,7 +118,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET GLOBAL sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 11 */ @@ -129,7 +129,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET @@sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 12 */ @@ -140,7 +140,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET PERSIST sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 13 */ @@ -151,7 +151,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET PERSIST_ONLY sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 14 */ @@ -162,7 +162,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET PERSIST sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); /* Assertion 15 */ @@ -173,7 +173,7 @@ public function testBuilderView(): void $this->assertEquals( 'SET PERSIST_ONLY sql_mode = \'TRADITIONAL\'', - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Builder/StatementTest.php b/tests/Builder/StatementTest.php index ea483ccda..4b8ac4109 100644 --- a/tests/Builder/StatementTest.php +++ b/tests/Builder/StatementTest.php @@ -8,8 +8,10 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\Limit; use PhpMyAdmin\SqlParser\Components\OptionsArray; +use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statements\SelectStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class StatementTest extends TestCase { @@ -36,7 +38,123 @@ public function testBuilder(): void 'FROM `film`, `actor` ' . 'WHERE film_id > 10 OR actor.age > 25 ' . 'LIMIT 10, 1', - (string) $stmt + (string) $stmt, ); } + + /** + * @psalm-param array}> + * }> $expected + */ + #[DataProvider('getAliasesProvider')] + public function testGetAliases(string $query, string $db, array $expected): void + { + $parser = new Parser($query); + $this->assertInstanceOf(SelectStatement::class, $parser->statements[0]); + $this->assertEquals($expected, $parser->statements[0]->getAliases($db)); + } + + /** + * @psalm-return list}> + * }>}> + */ + public static function getAliasesProvider(): array + { + return [ + [ + 'select * from (select 1) tbl', + 'mydb', + [], + ], + [ + 'select i.name as `n`,abcdef gh from qwerty i', + 'mydb', + [ + 'mydb' => [ + 'alias' => null, + 'tables' => [ + 'qwerty' => [ + 'alias' => 'i', + 'columns' => [ + 'name' => 'n', + 'abcdef' => 'gh', + ], + ], + ], + ], + ], + ], + [ + 'select film_id id,title from film', + 'sakila', + [ + 'sakila' => [ + 'alias' => null, + 'tables' => [ + 'film' => [ + 'alias' => null, + 'columns' => ['film_id' => 'id'], + ], + ], + ], + ], + ], + [ + 'select `sakila`.`A`.`actor_id` as aid,`F`.`film_id` `fid`,' + . 'last_update updated from `sakila`.actor A join `film_actor` as ' + . '`F` on F.actor_id = A.`actor_id`', + 'sakila', + [ + 'sakila' => [ + 'alias' => null, + 'tables' => [ + 'film_actor' => [ + 'alias' => 'F', + 'columns' => [ + 'film_id' => 'fid', + 'last_update' => 'updated', + ], + ], + 'actor' => [ + 'alias' => 'A', + 'columns' => [ + 'actor_id' => 'aid', + 'last_update' => 'updated', + ], + ], + ], + ], + ], + ], + [ + 'SELECT film_id FROM (SELECT * FROM film) as f;', + 'sakila', + [], + ], + [ + 'SELECT 1', + '', + [], + ], + [ + 'SELECT * FROM orders AS ord WHERE 1', + 'db', + [ + 'db' => [ + 'alias' => null, + 'tables' => [ + 'orders' => [ + 'alias' => 'ord', + 'columns' => [], + ], + ], + ], + ], + ], + ]; + } } diff --git a/tests/Builder/TransactionStatementTest.php b/tests/Builder/TransactionStatementTest.php index 4da0dd144..fdbde572d 100644 --- a/tests/Builder/TransactionStatementTest.php +++ b/tests/Builder/TransactionStatementTest.php @@ -24,7 +24,7 @@ public function testBuilder(): void 'SELECT @A:=SUM(salary) FROM table1 WHERE type=1;' . 'UPDATE table2 SET summary = @A WHERE type=1;' . 'COMMIT', - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Builder/UpdateStatementTest.php b/tests/Builder/UpdateStatementTest.php index 1e21cfc62..1eed5e77e 100644 --- a/tests/Builder/UpdateStatementTest.php +++ b/tests/Builder/UpdateStatementTest.php @@ -13,28 +13,28 @@ public function testBuilder(): void { /* Assertion 1 */ $parser = new Parser( - 'update user u left join user_detail ud on u.id = ud.user_id set ud.ip =\'33\' where u.id = 1' + 'update user u left join user_detail ud on u.id = ud.user_id set ud.ip =\'33\' where u.id = 1', ); $stmt = $parser->statements[0]; $this->assertEquals( 'UPDATE user AS `u` LEFT JOIN user_detail AS `ud` ON u.id = ud.user_id SET ud.ip = \'33\' WHERE u.id = 1', - $stmt->build() + $stmt->build(), ); /* Assertion 2 */ $parser = new Parser('update user u join user_detail ud on u.id = ud.user_id set ud.ip =\'33\' where u.id = 1'); $stmt = $parser->statements[0]; $this->assertEquals( 'UPDATE user AS `u` JOIN user_detail AS `ud` ON u.id = ud.user_id SET ud.ip = \'33\' WHERE u.id = 1', - $stmt->build() + $stmt->build(), ); /* Assertion 3 */ $parser = new Parser( - 'update user u inner join user_detail ud on u.id = ud.user_id set ud.ip =\'33\' where u.id = 1' + 'update user u inner join user_detail ud on u.id = ud.user_id set ud.ip =\'33\' where u.id = 1', ); $stmt = $parser->statements[0]; $this->assertEquals( 'UPDATE user AS `u` INNER JOIN user_detail AS `ud` ON u.id = ud.user_id SET ud.ip = \'33\' WHERE u.id = 1', - $stmt->build() + $stmt->build(), ); } } diff --git a/tests/Components/Array2dTest.php b/tests/Components/Array2dTest.php index acf40aae7..ae7644830 100644 --- a/tests/Components/Array2dTest.php +++ b/tests/Components/Array2dTest.php @@ -4,8 +4,9 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\Array2d; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Array2d; +use PhpMyAdmin\SqlParser\Parsers\ArrayObjs; use PhpMyAdmin\SqlParser\Tests\TestCase; class Array2dTest extends TestCase @@ -19,16 +20,16 @@ public function testParse(): void 1, 2, ], - $arrays[0]->values + $arrays[0]->values, ); } - public function testBuild(): void + public function testBuildAll(): void { $arrays = Array2d::parse(new Parser(), $this->getTokensList('(1, 2), (3, 4), (5, 6)')); $this->assertEquals( '(1, 2), (3, 4), (5, 6)', - Array2d::build($arrays) + ArrayObjs::buildAll($arrays), ); } @@ -55,7 +56,7 @@ public function testParseErr3(): void $this->assertCount(1, $parser->errors); $this->assertEquals( 'An opening bracket followed by a set of values was expected.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } @@ -66,7 +67,7 @@ public function testParseErr4(): void $this->assertCount(1, $parser->errors); $this->assertEquals( 'An opening bracket followed by a set of values was expected.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } @@ -77,7 +78,7 @@ public function testParseErr5(): void $this->assertCount(1, $parser->errors); $this->assertEquals( 'An opening bracket followed by a set of values was expected.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } @@ -88,7 +89,7 @@ public function testParseErr6(): void $this->assertCount(1, $parser->errors); $this->assertEquals( '2 values were expected, but found 1.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } } diff --git a/tests/Components/ArrayObjTest.php b/tests/Components/ArrayObjTest.php index 5a2515409..fe12f3371 100644 --- a/tests/Components/ArrayObjTest.php +++ b/tests/Components/ArrayObjTest.php @@ -7,49 +7,49 @@ use PhpMyAdmin\SqlParser\Components\ArrayObj; use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\ArrayObjs; +use PhpMyAdmin\SqlParser\Parsers\Expressions; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ArrayObjTest extends TestCase { public function testBuildRaw(): void { $component = new ArrayObj(['a', 'b'], []); - $this->assertEquals('(a, b)', ArrayObj::build($component)); + $this->assertEquals('(a, b)', $component->build()); } public function testBuildValues(): void { $component = new ArrayObj([], ['a', 'b']); - $this->assertEquals('(a, b)', ArrayObj::build($component)); + $this->assertEquals('(a, b)', $component->build()); } public function testParseType(): void { - $components = ArrayObj::parse( + $components = ArrayObjs::parse( new Parser(), $this->getTokensList('(1 + 2, 3 + 4)'), [ - 'type' => Expression::class, + 'type' => Expressions::class, 'typeOptions' => ['breakOnParentheses' => true], - ] + ], ); + $this->assertIsArray($components); $this->assertInstanceOf(Expression::class, $components[0]); $this->assertInstanceOf(Expression::class, $components[1]); - $this->assertEquals($components[0]->expr, '1 + 2'); - $this->assertEquals($components[1]->expr, '3 + 4'); + $this->assertEquals('1 + 2', $components[0]->expr); + $this->assertEquals('3 + 4', $components[1]->expr); } - /** - * @dataProvider parseProvider - */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function parseProvider(): array { return [ diff --git a/tests/Components/CaseExpressionTest.php b/tests/Components/CaseExpressionTest.php index c5bcbe063..809d54816 100644 --- a/tests/Components/CaseExpressionTest.php +++ b/tests/Components/CaseExpressionTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Components\CaseExpression; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\CaseExpressions; use PhpMyAdmin\SqlParser\Tests\TestCase; class CaseExpressionTest extends TestCase @@ -13,26 +14,26 @@ class CaseExpressionTest extends TestCase public function testParseBuild(): void { $caseExprQuery = 'case 1 when 1 then "Some" else "Other" end'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE 1 WHEN 1 THEN "Some" ELSE "Other" END' + 'CASE 1 WHEN 1 THEN "Some" ELSE "Other" END', + $component->build(), ); } public function testParseBuild2(): void { $caseExprQuery = 'case when 1=1 then "India" else "Other" end'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE WHEN 1=1 THEN "India" ELSE "Other" END' + 'CASE WHEN 1=1 THEN "India" ELSE "Other" END', + $component->build(), ); } @@ -40,13 +41,13 @@ public function testParseBuild3(): void { $caseExprQuery = 'case 1 when 1 then "Some" ' . 'when 2 then "SomeOther" else "Other" end'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE 1 WHEN 1 THEN "Some" WHEN 2 THEN "SomeOther" ELSE "Other" END' + 'CASE 1 WHEN 1 THEN "Some" WHEN 2 THEN "SomeOther" ELSE "Other" END', + $component->build(), ); } @@ -54,13 +55,13 @@ public function testParseBuild4(): void { $caseExprQuery = 'case 1 when 1 then "Some" ' . 'when 2 then "SomeOther" end'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE 1 WHEN 1 THEN "Some" WHEN 2 THEN "SomeOther" END' + 'CASE 1 WHEN 1 THEN "Some" WHEN 2 THEN "SomeOther" END', + $component->build(), ); } @@ -68,13 +69,13 @@ public function testParseBuild5(): void { $caseExprQuery = 'case when 1=1 then "Some" ' . 'when 1=2 then "SomeOther" else "Other" end'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" ELSE "Other" END' + 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" ELSE "Other" END', + $component->build(), ); } @@ -82,13 +83,13 @@ public function testParseBuild6(): void { $caseExprQuery = 'case when 1=1 then "Some" ' . 'when 1=2 then "SomeOther" end'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" END' + 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" END', + $component->build(), ); } @@ -96,13 +97,13 @@ public function testParseBuild7(): void { $caseExprQuery = 'case when 1=1 then "Some" ' . 'when 1=2 then "SomeOther" end AS foo'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" END AS `foo`' + 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" END AS `foo`', + $component->build(), ); } @@ -110,19 +111,19 @@ public function testParseBuild8(): void { $caseExprQuery = 'case when 1=1 then "Some" ' . 'when 1=2 then "SomeOther" end foo'; - $component = CaseExpression::parse( + $component = CaseExpressions::parse( new Parser(), - $this->getTokensList($caseExprQuery) + $this->getTokensList($caseExprQuery), ); $this->assertEquals( - CaseExpression::build($component), - 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" END AS `foo`' + 'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" END AS `foo`', + $component->build(), ); } public function testBuildWithIncompleteCaseExpression(): void { $incompleteCaseExpressionComponent = new CaseExpression(); - $this->assertEquals('CASE END', CaseExpression::build($incompleteCaseExpressionComponent)); + $this->assertEquals('CASE END', $incompleteCaseExpressionComponent->build()); } } diff --git a/tests/Components/ComponentTest.php b/tests/Components/ComponentTest.php deleted file mode 100644 index 1c9462ebc..000000000 --- a/tests/Components/ComponentTest.php +++ /dev/null @@ -1,32 +0,0 @@ -expectExceptionMessage('Not implemented yet.'); - $this->expectException(Throwable::class); - Component::parse(new Parser(), new TokensList()); - } - - public function testBuild(): void - { - $this->expectExceptionMessage('Not implemented yet.'); - $this->expectException(Throwable::class); - Component::build(null); - } -} diff --git a/tests/Components/ConditionTest.php b/tests/Components/ConditionTest.php index 4ff860939..d52188036 100644 --- a/tests/Components/ConditionTest.php +++ b/tests/Components/ConditionTest.php @@ -4,38 +4,32 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\Condition; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Conditions; use PhpMyAdmin\SqlParser\Tests\TestCase; class ConditionTest extends TestCase { public function testParse(): void { - $component = Condition::parse(new Parser(), $this->getTokensList('/* id = */ id = 10')); - $this->assertEquals($component[0]->expr, 'id = 10'); + $component = Conditions::parse(new Parser(), $this->getTokensList('/* id = */ id = 10')); + $this->assertEquals('id = 10', $component[0]->expr); } public function testParseBetween(): void { - $component = Condition::parse( + $component = Conditions::parse( new Parser(), - $this->getTokensList('(id BETWEEN 10 AND 20) OR (id BETWEEN 30 AND 40)') + $this->getTokensList('(id BETWEEN 10 AND 20) OR (id BETWEEN 30 AND 40)'), ); - $this->assertEquals($component[0]->expr, '(id BETWEEN 10 AND 20)'); - $this->assertEquals($component[1]->expr, 'OR'); - $this->assertEquals($component[2]->expr, '(id BETWEEN 30 AND 40)'); + $this->assertEquals('(id BETWEEN 10 AND 20)', $component[0]->expr); + $this->assertEquals('OR', $component[1]->expr); + $this->assertEquals('(id BETWEEN 30 AND 40)', $component[2]->expr); } public function testParseAnd(): void { - $component = Condition::parse( - new Parser(), - $this->getTokensList("`col` LIKE 'AND'") - ); - $this->assertEquals( - "`col` LIKE 'AND'", - Condition::build($component) - ); + $component = Conditions::parse(new Parser(), $this->getTokensList("`col` LIKE 'AND'")); + $this->assertEquals("`col` LIKE 'AND'", Conditions::buildAll($component)); } } diff --git a/tests/Components/CreateDefinitionTest.php b/tests/Components/CreateDefinitionTest.php index 3f28f4ba7..b85db4a8b 100644 --- a/tests/Components/CreateDefinitionTest.php +++ b/tests/Components/CreateDefinitionTest.php @@ -4,8 +4,8 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\CreateDefinition; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\CreateDefinitions; use PhpMyAdmin\SqlParser\Statements\CreateStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; @@ -13,11 +13,12 @@ class CreateDefinitionTest extends TestCase { public function testParse(): void { - $component = CreateDefinition::parse( + $component = CreateDefinitions::parse( new Parser(), - $this->getTokensList('(str TEXT, FULLTEXT INDEX indx (str))') + $this->getTokensList('(str TEXT, FULLTEXT INDEX indx (str))'), ); $this->assertEquals('str', $component[0]->name); + $this->assertNotNull($component[1]->key); $this->assertEquals('FULLTEXT INDEX', $component[1]->key->type); $this->assertEquals('indx', $component[1]->key->name); $this->assertEquals('FULLTEXT INDEX `indx` (`str`)', (string) $component[1]); @@ -25,12 +26,14 @@ public function testParse(): void public function testParse2(): void { - $component = CreateDefinition::parse( + $component = CreateDefinitions::parse( new Parser(), - $this->getTokensList('(str TEXT NOT NULL INVISIBLE)') + $this->getTokensList('(str TEXT NOT NULL INVISIBLE)'), ); $this->assertEquals('str', $component[0]->name); + $this->assertNotNull($component[0]->type); $this->assertEquals('TEXT', $component[0]->type->name); + $this->assertNotNull($component[0]->options); $this->assertTrue($component[0]->options->has('INVISIBLE')); $this->assertTrue($component[0]->options->has('NOT NULL')); } @@ -38,29 +41,29 @@ public function testParse2(): void public function testParseErr1(): void { $parser = new Parser(); - $component = CreateDefinition::parse( + $component = CreateDefinitions::parse( $parser, - $this->getTokensList('(str TEXT, FULLTEXT INDEX indx (str)') + $this->getTokensList('(str TEXT, FULLTEXT INDEX indx (str)'), ); $this->assertCount(2, $component); $this->assertEquals( 'A closing bracket was expected.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } public function testParseErr2(): void { $parser = new Parser(); - CreateDefinition::parse( + CreateDefinitions::parse( $parser, - $this->getTokensList(')') + $this->getTokensList(')'), ); $this->assertEquals( 'An opening bracket was expected.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } @@ -72,13 +75,14 @@ public function testBuild(): void '`customer_id` smallint(5) unsigned NOT NULL,' . 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) ' . 'REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE' . - ') ENGINE=InnoDB"' + ') ENGINE=InnoDB"', ); $this->assertInstanceOf(CreateStatement::class, $parser->statements[0]); + $this->assertIsArray($parser->statements[0]->fields); $this->assertEquals( 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) ' . 'REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE', - CreateDefinition::build($parser->statements[0]->fields[1]) + $parser->statements[0]->fields[1]->build(), ); } @@ -91,13 +95,14 @@ public function testBuild2(): void '`customer_data` longtext CHARACTER SET utf8mb4 CHARSET utf8mb4_bin NOT NULL ' . 'CHECK (json_valid(customer_data)),CONSTRAINT `fk_payment_customer` FOREIGN KEY ' . '(`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE' . - ') ENGINE=InnoDB"' + ') ENGINE=InnoDB"', ); $this->assertInstanceOf(CreateStatement::class, $parser->statements[0]); + $this->assertIsArray($parser->statements[0]->fields); $this->assertEquals( 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) ' . 'REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE', - CreateDefinition::build($parser->statements[0]->fields[2]) + $parser->statements[0]->fields[2]->build(), ); } @@ -117,20 +122,21 @@ public function testBuild3(): void . ' PRIMARY KEY (`id`)' . ') ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;' . '' - . 'ALTER TABLE `searches` ADD `admins_only` BOOLEAN NOT NULL DEFAULT FALSE AFTER `show_separators`;' + . 'ALTER TABLE `searches` ADD `admins_only` BOOLEAN NOT NULL DEFAULT FALSE AFTER `show_separators`;', ); $this->assertInstanceOf(CreateStatement::class, $parser->statements[1]); + $this->assertIsArray($parser->statements[1]->fields); $this->assertEquals( '`public_name` varchar(120) COLLATE utf8_unicode_ci NOT NULL', - CreateDefinition::build($parser->statements[1]->fields[2]) + $parser->statements[1]->fields[2]->build(), ); $this->assertEquals( '`show_separators` tinyint(1) NOT NULL DEFAULT \'0\'', - CreateDefinition::build($parser->statements[1]->fields[5]) + $parser->statements[1]->fields[5]->build(), ); $this->assertEquals( '`show_separators_two` tinyint(1) NOT NULL DEFAULT FALSE', - CreateDefinition::build($parser->statements[1]->fields[6]) + $parser->statements[1]->fields[6]->build(), ); } @@ -143,12 +149,13 @@ public function testBuildWithInvisibleKeyword(): void '`customer_data` longtext CHARACTER SET utf8mb4 CHARSET utf8mb4_bin NOT NULL ' . 'CHECK (json_valid(customer_data)),CONSTRAINT `fk_payment_customer` FOREIGN KEY ' . '(`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE' . - ') ENGINE=InnoDB"' + ') ENGINE=InnoDB"', ); $this->assertInstanceOf(CreateStatement::class, $parser->statements[0]); + $this->assertIsArray($parser->statements[0]->fields); $this->assertEquals( '`customer_id` smallint(5) UNSIGNED NOT NULL INVISIBLE', - CreateDefinition::build($parser->statements[0]->fields[0]) + $parser->statements[0]->fields[0]->build(), ); } diff --git a/tests/Components/ExpressionArrayTest.php b/tests/Components/ExpressionArrayTest.php index 2bf44d04b..6d71e62dc 100644 --- a/tests/Components/ExpressionArrayTest.php +++ b/tests/Components/ExpressionArrayTest.php @@ -4,8 +4,8 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\ExpressionArray; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\ExpressionArray; use PhpMyAdmin\SqlParser\Tests\TestCase; class ExpressionArrayTest extends TestCase @@ -15,7 +15,7 @@ public function testParse(): void $component = ExpressionArray::parse( new Parser(), $this->getTokensList('(expr)'), - ['breakOnParentheses' => true] + ['breakOnParentheses' => true], ); $this->assertEquals([], $component); } @@ -25,7 +25,7 @@ public function testParse2(): void $component = ExpressionArray::parse( new Parser(), $this->getTokensList('(expr) +'), - ['parenthesesDelimited' => true] + ['parenthesesDelimited' => true], ); $this->assertCount(1, $component); $this->assertEquals('(expr)', $component[0]->expr); @@ -35,7 +35,7 @@ public function testParseWithCommentsNoOptions(): void { $component = ExpressionArray::parse( new Parser(), - $this->getTokensList('(expr) -- comment ?') + $this->getTokensList('(expr) -- comment ?'), ); $this->assertCount(1, $component); $this->assertEquals('(expr)', $component[0]->expr); @@ -46,7 +46,7 @@ public function testParseWithCommentsAndOptions(): void $component = ExpressionArray::parse( new Parser(), $this->getTokensList('(expr -- comment ?)'), - ['parenthesesDelimited' => true] + ['parenthesesDelimited' => true], ); $this->assertCount(1, $component); $this->assertEquals('(expr', $component[0]->expr); diff --git a/tests/Components/ExpressionTest.php b/tests/Components/ExpressionTest.php index 73dfe7cd2..91852b8f9 100644 --- a/tests/Components/ExpressionTest.php +++ b/tests/Components/ExpressionTest.php @@ -6,53 +6,57 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Expressions; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ExpressionTest extends TestCase { public function testParse(): void { - $component = Expression::parse(new Parser(), $this->getTokensList('IF(film_id > 0, film_id, film_id)')); - $this->assertEquals($component->expr, 'IF(film_id > 0, film_id, film_id)'); + $component = Expressions::parse(new Parser(), $this->getTokensList('IF(film_id > 0, film_id, film_id)')); + $this->assertNotNull($component); + $this->assertEquals('IF(film_id > 0, film_id, film_id)', $component->expr); } public function testParse2(): void { - $component = Expression::parse(new Parser(), $this->getTokensList('col`test`')); - $this->assertEquals($component->expr, 'col'); + $component = Expressions::parse(new Parser(), $this->getTokensList('col`test`')); + $this->assertNotNull($component); + $this->assertEquals('col', $component->expr); } public function testParse3(): void { - $component = Expression::parse(new Parser(), $this->getTokensList('col xx')); - $this->assertEquals($component->alias, 'xx'); + $component = Expressions::parse(new Parser(), $this->getTokensList('col xx')); + $this->assertNotNull($component); + $this->assertEquals('xx', $component->alias); - $component = Expression::parse(new Parser(), $this->getTokensList('col y')); - $this->assertEquals($component->alias, 'y'); + $component = Expressions::parse(new Parser(), $this->getTokensList('col y')); + $this->assertNotNull($component); + $this->assertEquals('y', $component->alias); - $component = Expression::parse(new Parser(), $this->getTokensList('avg.col FROM (SELECT ev.col FROM ev)')); - $this->assertEquals($component->table, 'avg'); - $this->assertEquals($component->expr, 'avg.col'); + $component = Expressions::parse(new Parser(), $this->getTokensList('avg.col FROM (SELECT ev.col FROM ev)')); + $this->assertNotNull($component); + $this->assertEquals('avg', $component->table); + $this->assertEquals('avg.col', $component->expr); - $component = Expression::parse(new Parser(), $this->getTokensList('x.id FROM (SELECT a.id FROM a) x')); - $this->assertEquals($component->table, 'x'); - $this->assertEquals($component->expr, 'x.id'); + $component = Expressions::parse(new Parser(), $this->getTokensList('x.id FROM (SELECT a.id FROM a) x')); + $this->assertNotNull($component); + $this->assertEquals('x', $component->table); + $this->assertEquals('x.id', $component->expr); } - /** - * @dataProvider parseErrProvider - */ + #[DataProvider('parseErrProvider')] public function testParseErr(string $expr, string $error): void { $parser = new Parser(); - Expression::parse($parser, $this->getTokensList($expr)); + Expressions::parse($parser, $this->getTokensList($expr)); $errors = $this->getErrorsAsArray($parser); - $this->assertEquals($errors[0][0], $error); + $this->assertEquals($error, $errors[0][0]); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function parseErrProvider(): array { return [ @@ -81,21 +85,19 @@ public static function parseErrProvider(): array ]; } - public function testBuild(): void + public function testBuildAll(): void { $component = [ new Expression('1 + 2', 'three'), new Expression('1 + 3', 'four'), ]; $this->assertEquals( - Expression::build($component), - '1 + 2 AS `three`, 1 + 3 AS `four`' + '1 + 2 AS `three`, 1 + 3 AS `four`', + Expressions::buildAll($component), ); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function mysqlCommandsProvider(): array { return [ @@ -142,9 +144,7 @@ public static function mysqlCommandsProvider(): array ]; } - /** - * @dataProvider mysqlCommandsProvider - */ + #[DataProvider('mysqlCommandsProvider')] public function testMysqlCommands(string $expr, string $expected): void { $parser = new Parser($expr, true); diff --git a/tests/Components/FunctionCallTest.php b/tests/Components/FunctionCallTest.php index 3623412a6..cc1966250 100644 --- a/tests/Components/FunctionCallTest.php +++ b/tests/Components/FunctionCallTest.php @@ -13,12 +13,12 @@ class FunctionCallTest extends TestCase public function testBuildArray(): void { $component = new FunctionCall('func', ['a', 'b']); - $this->assertEquals('func(a, b)', FunctionCall::build($component)); + $this->assertEquals('func(a, b)', $component->build()); } public function testBuildArrayObj(): void { $component = new FunctionCall('func', new ArrayObj(['a', 'b'])); - $this->assertEquals('func(a, b)', FunctionCall::build($component)); + $this->assertEquals('func(a, b)', $component->build()); } } diff --git a/tests/Components/GroupKeywordTest.php b/tests/Components/GroupKeywordTest.php index 4ddba7789..c072a7bc0 100644 --- a/tests/Components/GroupKeywordTest.php +++ b/tests/Components/GroupKeywordTest.php @@ -7,15 +7,16 @@ use Generator; use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\GroupKeyword; +use PhpMyAdmin\SqlParser\Parsers\GroupKeywords; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; use function array_map; +use function is_array; class GroupKeywordTest extends TestCase { - /** - * @return Generator, string}> - */ + /** @return Generator, string}> */ public static function provideExpressions(): Generator { yield 'With no expression at all' => [[], '']; @@ -51,14 +52,15 @@ public static function provideExpressions(): Generator ]; } - /** - * @param GroupKeyword|array $component - * - * @dataProvider provideExpressions - */ - public function testBuild($component, string $expected): void + /** @param GroupKeyword|array $component */ + #[DataProvider('provideExpressions')] + public function testBuild(GroupKeyword|array $component, string $expected): void { - $this->assertSame($expected, GroupKeyword::build($component)); + if (is_array($component)) { + $this->assertSame($expected, GroupKeywords::buildAll($component)); + } else { + $this->assertSame($expected, $component->build()); + } } private static function makeComponentFrom(string $string): GroupKeyword @@ -66,11 +68,9 @@ private static function makeComponentFrom(string $string): GroupKeyword return new GroupKeyword(new Expression($string)); } - /** - * @return array - */ + /** @return array */ private static function makeComponentsFrom(string ...$string): array { - return array_map([self::class, 'makeComponentFrom'], $string); + return array_map(self::makeComponentFrom(...), $string); } } diff --git a/tests/Components/IntoKeywordTest.php b/tests/Components/IntoKeywordTest.php index 4dea44cdb..d11f6687d 100644 --- a/tests/Components/IntoKeywordTest.php +++ b/tests/Components/IntoKeywordTest.php @@ -4,40 +4,40 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\IntoKeyword; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\IntoKeywords; use PhpMyAdmin\SqlParser\Tests\TestCase; class IntoKeywordTest extends TestCase { public function testParse(): void { - $component = IntoKeyword::parse(new Parser(), $this->getTokensList('OUTFILE "/tmp/outfile.txt"')); - $this->assertEquals($component->type, 'OUTFILE'); - $this->assertEquals($component->dest, '/tmp/outfile.txt'); + $component = IntoKeywords::parse(new Parser(), $this->getTokensList('OUTFILE "/tmp/outfile.txt"')); + $this->assertEquals('OUTFILE', $component->type); + $this->assertEquals('/tmp/outfile.txt', $component->dest); } public function testBuild(): void { - $component = IntoKeyword::parse(new Parser(), $this->getTokensList('tbl(`col1`, `col2`)')); - $this->assertEquals('tbl(`col1`, `col2`)', IntoKeyword::build($component)); + $component = IntoKeywords::parse(new Parser(), $this->getTokensList('tbl(`col1`, `col2`)')); + $this->assertEquals('tbl(`col1`, `col2`)', $component->build()); } public function testBuildValues(): void { - $component = IntoKeyword::parse(new Parser(), $this->getTokensList('@a1, @a2, @a3')); - $this->assertEquals('@a1, @a2, @a3', IntoKeyword::build($component)); + $component = IntoKeywords::parse(new Parser(), $this->getTokensList('@a1, @a2, @a3')); + $this->assertEquals('@a1, @a2, @a3', $component->build()); } public function testBuildOutfile(): void { - $component = IntoKeyword::parse(new Parser(), $this->getTokensList('OUTFILE "/tmp/outfile.txt"')); - $this->assertEquals('OUTFILE "/tmp/outfile.txt"', IntoKeyword::build($component)); + $component = IntoKeywords::parse(new Parser(), $this->getTokensList('OUTFILE "/tmp/outfile.txt"')); + $this->assertEquals('OUTFILE "/tmp/outfile.txt"', $component->build()); } public function testParseErr1(): void { - $component = IntoKeyword::parse(new Parser(), $this->getTokensList('OUTFILE;')); - $this->assertEquals($component->type, 'OUTFILE'); + $component = IntoKeywords::parse(new Parser(), $this->getTokensList('OUTFILE;')); + $this->assertEquals('OUTFILE', $component->type); } } diff --git a/tests/Components/JoinKeywordTest.php b/tests/Components/JoinKeywordTest.php index a99b09331..07e3c459b 100644 --- a/tests/Components/JoinKeywordTest.php +++ b/tests/Components/JoinKeywordTest.php @@ -4,16 +4,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\JoinKeyword; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\JoinKeywords; use PhpMyAdmin\SqlParser\Tests\TestCase; class JoinKeywordTest extends TestCase { public function testParseIncomplete(): void { - $component = JoinKeyword::parse(new Parser(), $this->getTokensList('JOIN a')); + $component = JoinKeywords::parse(new Parser(), $this->getTokensList('JOIN a')); $this->assertCount(1, $component); + $this->assertNotNull($component[0]->expr); $this->assertEquals('a', $component[0]->expr->expr); $this->assertNull($component[0]->on); $this->assertNull($component[0]->using); @@ -21,26 +22,28 @@ public function testParseIncomplete(): void public function testParseIncompleteUsing(): void { - $component = JoinKeyword::parse(new Parser(), $this->getTokensList('JOIN table2 USING (id)')); + $component = JoinKeywords::parse(new Parser(), $this->getTokensList('JOIN table2 USING (id)')); $this->assertCount(1, $component); + $this->assertNotNull($component[0]->expr); $this->assertEquals('table2', $component[0]->expr->expr); $this->assertNull($component[0]->on); + $this->assertNotNull($component[0]->using); $this->assertEquals(['id'], $component[0]->using->values); } - public function testBuild(): void + public function testBuildAll(): void { - $component = JoinKeyword::parse( + $component = JoinKeywords::parse( new Parser(), $this->getTokensList( 'LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4) ' . - 'ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)' - ) + 'ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)', + ), ); $this->assertEquals( 'LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4) ' . 'ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)', - JoinKeyword::build($component) + JoinKeywords::buildAll($component), ); } } diff --git a/tests/Components/KeyTest.php b/tests/Components/KeyTest.php index 421a05d59..986e5eff8 100644 --- a/tests/Components/KeyTest.php +++ b/tests/Components/KeyTest.php @@ -5,20 +5,21 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; use PhpMyAdmin\SqlParser\Components\Expression; -use PhpMyAdmin\SqlParser\Components\Key; use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Exceptions\ParserException; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\Keys; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; +use PhpMyAdmin\SqlParser\TokenType; class KeyTest extends TestCase { public function testParse(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), - $this->getTokensList('') + $this->getTokensList(''), ); $this->assertNull($component->type); $this->assertNull($component->options); @@ -27,15 +28,15 @@ public function testParse(): void $this->assertSame([], $component->columns); $this->assertSame( '()', - Key::build($component) + $component->build(), ); } public function testParseKeyWithoutOptions(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), - $this->getTokensList('KEY `alias_type_idx` (`alias_type`),') + $this->getTokensList('KEY `alias_type_idx` (`alias_type`),'), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('alias_type_idx', $component->name); @@ -44,15 +45,15 @@ public function testParseKeyWithoutOptions(): void $this->assertSame([['name' => 'alias_type']], $component->columns); $this->assertSame( 'KEY `alias_type_idx` (`alias_type`)', - Key::build($component) + $component->build(), ); } public function testParseKeyWithLengthWithoutOptions(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), - $this->getTokensList('KEY `alias_type_idx` (`alias_type`(10)),') + $this->getTokensList('KEY `alias_type_idx` (`alias_type`(10)),'), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('alias_type_idx', $component->name); @@ -61,15 +62,15 @@ public function testParseKeyWithLengthWithoutOptions(): void $this->assertSame([['name' => 'alias_type', 'length' => 10]], $component->columns); $this->assertSame( 'KEY `alias_type_idx` (`alias_type`(10))', - Key::build($component) + $component->build(), ); } public function testParseKeyWithLengthWithoutOptionsWithOrder(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), - $this->getTokensList('KEY `alias_type_idx` (`alias_type`(10) ASC),') + $this->getTokensList('KEY `alias_type_idx` (`alias_type`(10) ASC),'), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('alias_type_idx', $component->name); @@ -78,15 +79,15 @@ public function testParseKeyWithLengthWithoutOptionsWithOrder(): void $this->assertSame([['name' => 'alias_type', 'length' => 10, 'order' => 'ASC']], $component->columns); $this->assertSame( 'KEY `alias_type_idx` (`alias_type`(10) ASC)', - Key::build($component) + $component->build(), ); } public function testParseKeyWithoutOptionsWithOrderLowercase(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), - $this->getTokensList('KEY `alias_type_idx` (`alias_type` desc),') + $this->getTokensList('KEY `alias_type_idx` (`alias_type` desc),'), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('alias_type_idx', $component->name); @@ -95,15 +96,15 @@ public function testParseKeyWithoutOptionsWithOrderLowercase(): void $this->assertSame([['name' => 'alias_type', 'order' => 'DESC']], $component->columns); $this->assertSame( 'KEY `alias_type_idx` (`alias_type` DESC)', - Key::build($component) + $component->build(), ); } public function testParseKeyWithoutOptionsWithOrder(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), - $this->getTokensList('KEY `alias_type_idx` (`alias_type` DESC),') + $this->getTokensList('KEY `alias_type_idx` (`alias_type` DESC),'), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('alias_type_idx', $component->name); @@ -112,15 +113,15 @@ public function testParseKeyWithoutOptionsWithOrder(): void $this->assertSame([['name' => 'alias_type', 'order' => 'DESC']], $component->columns); $this->assertSame( 'KEY `alias_type_idx` (`alias_type` DESC)', - Key::build($component) + $component->build(), ); } public function testParseKeyWithLengthWithOptions(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), - $this->getTokensList('KEY `alias_type_idx` (`alias_type`(10)) COMMENT \'my comment\',') + $this->getTokensList('KEY `alias_type_idx` (`alias_type`(10)) COMMENT \'my comment\','), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('alias_type_idx', $component->name); @@ -132,27 +133,27 @@ public function testParseKeyWithLengthWithOptions(): void 'expr' => '\'my comment\'', 'value' => 'my comment', ], - ] + ], ), $component->options); $this->assertNull($component->expr); $this->assertSame([['name' => 'alias_type', 'length' => 10]], $component->columns); $this->assertSame( 'KEY `alias_type_idx` (`alias_type`(10)) COMMENT \'my comment\'', - Key::build($component) + $component->build(), ); } public function testParseKeyWithLengthWithAllOptions(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), $this->getTokensList( // This is not a vary plausible example but it runs // Only ENGINE_ATTRIBUTE gives a not supported error but is still a valid syntax 'KEY `alias_type_idx` (`alias_type`(10))' . ' COMMENT \'my comment\' VISIBLE KEY_BLOCK_SIZE=1' - . ' INVISIBLE ENGINE_ATTRIBUTE \'foo\' SECONDARY_ENGINE_ATTRIBUTE=\'bar\' USING BTREE,' - ) + . ' INVISIBLE ENGINE_ATTRIBUTE \'foo\' SECONDARY_ENGINE_ATTRIBUTE=\'bar\' USING BTREE,', + ), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('alias_type_idx', $component->name); @@ -190,7 +191,7 @@ public function testParseKeyWithLengthWithAllOptions(): void 'expr' => '\'bar\'', 'value' => 'bar', ], - ] + ], ), $component->options); $this->assertNull($component->expr); $this->assertSame([['name' => 'alias_type', 'length' => 10]], $component->columns); @@ -198,11 +199,11 @@ public function testParseKeyWithLengthWithAllOptions(): void public function testParseKeyExpressionWithoutOptions(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), $this->getTokensList( - 'KEY `updated_tz_ind2` ((convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\'))),' - ) + 'KEY `updated_tz_ind2` ((convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\'))),', + ), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('updated_tz_ind2', $component->name); @@ -213,19 +214,19 @@ public function testParseKeyExpressionWithoutOptions(): void $this->assertSame([], $component->columns); $this->assertSame( 'KEY `updated_tz_ind2` ((convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\'))) ', - Key::build($component) + $component->build(), ); } public function testParseKeyExpressionWithOptions(): void { - $component = Key::parse( + $component = Keys::parse( new Parser(), $this->getTokensList( 'KEY `updated_tz_ind2`' . ' ((convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')))' - . ' COMMENT \'my comment\',' - ) + . ' COMMENT \'my comment\',', + ), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('updated_tz_ind2', $component->name); @@ -237,7 +238,7 @@ public function testParseKeyExpressionWithOptions(): void 'expr' => '\'my comment\'', 'value' => 'my comment', ], - ] + ], ), $component->options); $expr = new Expression('(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\'))'); $expr->function = 'convert_tz'; @@ -247,32 +248,32 @@ public function testParseKeyExpressionWithOptions(): void 'KEY `updated_tz_ind2`' . ' ((convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')))' . ' COMMENT \'my comment\'', - Key::build($component) + $component->build(), ); } public function testParseKeyExpressionWithOptionsError(): void { $parser = new Parser(); - $component = Key::parse( + $component = Keys::parse( $parser, $this->getTokensList( 'KEY `updated_tz_ind2` (()convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')))' - . ' COMMENT \'my comment\',' - ) + . ' COMMENT \'my comment\',', + ), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('updated_tz_ind2', $component->name); $this->assertEquals(new OptionsArray( - [] + [], ), $component->options); - $t = new Token('convert_tz', Token::TYPE_KEYWORD, 33); + $t = new Token('convert_tz', TokenType::Keyword, 33); $t->position = 25; $this->assertEquals([ new ParserException( 'Unexpected token.', - $t + $t, ), ], $parser->errors); $expr = new Expression('(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\'))'); @@ -281,14 +282,14 @@ public function testParseKeyExpressionWithOptionsError(): void $this->assertSame([], $component->columns); $this->assertSame( 'KEY `updated_tz_ind2` (()(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')) ', - Key::build($component) + $component->build(), ); } public function testParseKeyOneExpressionWithOptions(): void { $parser = new Parser(); - $component = Key::parse( + $component = Keys::parse( $parser, $this->getTokensList( 'KEY `updated_tz_ind2`' @@ -296,8 +297,8 @@ public function testParseKeyOneExpressionWithOptions(): void . '(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')), ' . '(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'FR\'))' . ')' - . ' COMMENT \'my comment\',' - ) + . ' COMMENT \'my comment\',', + ), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('updated_tz_ind2', $component->name); @@ -309,12 +310,12 @@ public function testParseKeyOneExpressionWithOptions(): void 'expr' => '\'my comment\'', 'value' => 'my comment', ], - ] + ], ), $component->options); $this->assertSame([], $parser->errors); $expr = new Expression( '(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')),' - . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'FR\'))' + . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'FR\'))', ); $expr->function = 'convert_tz'; $this->assertEquals($expr, $component->expr); @@ -323,14 +324,14 @@ public function testParseKeyOneExpressionWithOptions(): void 'KEY `updated_tz_ind2` ((convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')),' . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'FR\'))' . ') COMMENT \'my comment\'', - Key::build($component) + $component->build(), ); } public function testParseKeyMultipleExpressionsWithOptions(): void { $parser = new Parser(); - $component = Key::parse( + $component = Keys::parse( $parser, $this->getTokensList( 'KEY `updated_tz_ind2`' @@ -339,8 +340,8 @@ public function testParseKeyMultipleExpressionsWithOptions(): void . '(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'FR\')), ' . '(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'RU\'))' . ')' - . ' COMMENT \'my comment\',' - ) + . ' COMMENT \'my comment\',', + ), ); $this->assertEquals('KEY', $component->type); $this->assertEquals('updated_tz_ind2', $component->name); @@ -352,12 +353,12 @@ public function testParseKeyMultipleExpressionsWithOptions(): void 'expr' => '\'my comment\'', 'value' => 'my comment', ], - ] + ], ), $component->options); $expr = new Expression( '(convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'GB\')),' . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'FR\')),' - . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'RU\'))' + . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'RU\'))', ); $expr->function = 'convert_tz'; $this->assertEquals($expr, $component->expr); @@ -368,7 +369,7 @@ public function testParseKeyMultipleExpressionsWithOptions(): void . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'FR\')),' . ' (convert_tz(`cache_updated`,_utf8mb4\'GMT\',_utf8mb4\'RU\'))' . ') COMMENT \'my comment\'', - Key::build($component) + $component->build(), ); } } diff --git a/tests/Components/LimitTest.php b/tests/Components/LimitTest.php index e8c29048c..43a9a26eb 100644 --- a/tests/Components/LimitTest.php +++ b/tests/Components/LimitTest.php @@ -6,32 +6,29 @@ use PhpMyAdmin\SqlParser\Components\Limit; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LimitTest extends TestCase { public function testBuildWithoutOffset(): void { $component = new Limit(1); - $this->assertEquals(Limit::build($component), '0, 1'); + $this->assertEquals('0, 1', $component->build()); } public function testBuildWithOffset(): void { $component = new Limit(1, 2); - $this->assertEquals(Limit::build($component), '2, 1'); + $this->assertEquals('2, 1', $component->build()); } - /** - * @dataProvider parseProvider - */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function parseProvider(): array { return [ diff --git a/tests/Components/LockExpressionTest.php b/tests/Components/LockExpressionTest.php index e1cb4919e..1b96ce1d8 100644 --- a/tests/Components/LockExpressionTest.php +++ b/tests/Components/LockExpressionTest.php @@ -6,41 +6,39 @@ use PhpMyAdmin\SqlParser\Components\LockExpression; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\LockExpressions; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LockExpressionTest extends TestCase { public function testParse(): void { - $component = LockExpression::parse(new Parser(), $this->getTokensList('table1 AS t1 READ LOCAL')); + $component = LockExpressions::parse(new Parser(), $this->getTokensList('table1 AS t1 READ LOCAL')); $this->assertNotNull($component->table); - $this->assertEquals($component->table->table, 'table1'); - $this->assertEquals($component->table->alias, 't1'); - $this->assertEquals($component->type, 'READ LOCAL'); + $this->assertEquals('table1', $component->table->table); + $this->assertEquals('t1', $component->table->alias); + $this->assertEquals('READ LOCAL', $component->type); } public function testParse2(): void { - $component = LockExpression::parse(new Parser(), $this->getTokensList('table1 LOW_PRIORITY WRITE')); + $component = LockExpressions::parse(new Parser(), $this->getTokensList('table1 LOW_PRIORITY WRITE')); $this->assertNotNull($component->table); - $this->assertEquals($component->table->table, 'table1'); - $this->assertEquals($component->type, 'LOW_PRIORITY WRITE'); + $this->assertEquals('table1', $component->table->table); + $this->assertEquals('LOW_PRIORITY WRITE', $component->type); } - /** - * @dataProvider parseErrProvider - */ + #[DataProvider('parseErrProvider')] public function testParseErr(string $expr, string $error): void { $parser = new Parser(); - LockExpression::parse($parser, $this->getTokensList($expr)); + LockExpressions::parse($parser, $this->getTokensList($expr)); $errors = $this->getErrorsAsArray($parser); - $this->assertEquals($errors[0][0], $error); + $this->assertEquals($error, $errors[0][0]); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function parseErrProvider(): array { return [ @@ -59,15 +57,15 @@ public static function parseErrProvider(): array ]; } - public function testBuild(): void + public function testBuildAll(): void { $component = [ - LockExpression::parse(new Parser(), $this->getTokensList('table1 AS t1 READ LOCAL')), - LockExpression::parse(new Parser(), $this->getTokensList('table2 LOW_PRIORITY WRITE')), + LockExpressions::parse(new Parser(), $this->getTokensList('table1 AS t1 READ LOCAL')), + LockExpressions::parse(new Parser(), $this->getTokensList('table2 LOW_PRIORITY WRITE')), ]; $this->assertEquals( - LockExpression::build($component), - 'table1 AS `t1` READ LOCAL, table2 LOW_PRIORITY WRITE' + 'table1 AS `t1` READ LOCAL, table2 LOW_PRIORITY WRITE', + LockExpression::buildAll($component), ); } } diff --git a/tests/Components/OptionsArrayTest.php b/tests/Components/OptionsArrayTest.php index 143e0931a..c0b71d8f4 100644 --- a/tests/Components/OptionsArrayTest.php +++ b/tests/Components/OptionsArrayTest.php @@ -4,15 +4,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; +use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\OptionsArrays; use PhpMyAdmin\SqlParser\Tests\TestCase; class OptionsArrayTest extends TestCase { public function testParse(): void { - $component = OptionsArray::parse( + $component = OptionsArrays::parse( new Parser(), $this->getTokensList('A B = /*comment*/ (test) C'), [ @@ -22,7 +24,7 @@ public function testParse(): void 'var', ], 'C' => 3, - ] + ], ); $this->assertEquals( [ @@ -35,13 +37,13 @@ public function testParse(): void ], 3 => 'C', ], - $component->options + $component->options, ); } public function testParseExpr(): void { - $component = OptionsArray::parse( + $component = OptionsArrays::parse( new Parser(), $this->getTokensList('SUM = (3 + 5) RESULT = 8'), [ @@ -54,15 +56,17 @@ public function testParseExpr(): void 2, 'var', ], - ] + ], ); - $this->assertEquals('(3 + 5)', (string) $component->has('SUM', true)); - $this->assertEquals('8', $component->has('RESULT')); + $sumValue = $component->get('SUM', true); + $this->assertInstanceOf(Expression::class, $sumValue); + $this->assertEquals('(3 + 5)', (string) $sumValue); + $this->assertEquals('8', $component->get('RESULT')); } public function testHas(): void { - $component = OptionsArray::parse( + $component = OptionsArrays::parse( new Parser(), $this->getTokensList('A B = /*comment*/ (test) C'), [ @@ -72,10 +76,10 @@ public function testHas(): void 'var', ], 'C' => 3, - ] + ], ); $this->assertTrue($component->has('A')); - $this->assertEquals('test', $component->has('B')); + $this->assertEquals('test', $component->get('B')); $this->assertTrue($component->has('C')); $this->assertFalse($component->has('D')); } @@ -86,10 +90,10 @@ public function testRemove(): void $component = new OptionsArray(['a', 'b', 'c']); $this->assertTrue($component->remove('b')); $this->assertFalse($component->remove('d')); - $this->assertEquals($component->options, [0 => 'a', 2 => 'c']); + $this->assertEquals([0 => 'a', 2 => 'c'], $component->options); /* Assertion 2 */ - $component = OptionsArray::parse( + $component = OptionsArrays::parse( new Parser(), $this->getTokensList('A B = /*comment*/ (test) C'), [ @@ -99,9 +103,9 @@ public function testRemove(): void 'var', ], 'C' => 3, - ] + ], ); - $this->assertEquals('test', $component->has('B')); + $this->assertEquals('test', $component->get('B')); $component->remove('B'); $this->assertFalse($component->has('B')); } @@ -109,8 +113,8 @@ public function testRemove(): void public function testMerge(): void { $component = new OptionsArray(['a']); - $component->merge(['b', 'c']); - $this->assertEquals($component->options, ['a', 'b', 'c']); + $component->merge(new OptionsArray(['b', 'c'])); + $this->assertEquals(['a', 'b', 'c'], $component->options); } public function testBuild(): void @@ -123,25 +127,26 @@ public function testBuild(): void 'name' => 'MAX_STATEMENT_TIME', 'value' => '42', 'equals' => true, + 'expr' => '', ], - ] + ], ); $this->assertEquals( - OptionsArray::build($component), - 'ALL SQL_CALC_FOUND_ROWS MAX_STATEMENT_TIME=42' + 'ALL SQL_CALC_FOUND_ROWS MAX_STATEMENT_TIME=42', + $component->build(), ); } public function testBuildWithRecursive(): void { - $component = OptionsArray::parse( + $component = OptionsArrays::parse( new Parser(), $this->getTokensList('RECURSIVE'), - ['RECURSIVE' => 1] + ['RECURSIVE' => 1], ); $this->assertEquals( - OptionsArray::build($component), - 'RECURSIVE' + 'RECURSIVE', + $component->build(), ); } } diff --git a/tests/Components/OrderKeywordTest.php b/tests/Components/OrderKeywordTest.php index 415d8ddbd..1150d86fa 100644 --- a/tests/Components/OrderKeywordTest.php +++ b/tests/Components/OrderKeywordTest.php @@ -6,20 +6,22 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\OrderKeyword; +use PhpMyAdmin\SqlParser\Components\OrderSortKeyword; +use PhpMyAdmin\SqlParser\Parsers\OrderKeywords; use PhpMyAdmin\SqlParser\Tests\TestCase; class OrderKeywordTest extends TestCase { - public function testBuild(): void + public function testBuildAll(): void { $this->assertEquals( - OrderKeyword::build( + 'a ASC, b DESC', + OrderKeywords::buildAll( [ - new OrderKeyword(new Expression('a'), 'ASC'), - new OrderKeyword(new Expression('b'), 'DESC'), - ] + new OrderKeyword(new Expression('a'), OrderSortKeyword::Asc), + new OrderKeyword(new Expression('b'), OrderSortKeyword::Desc), + ], ), - 'a ASC, b DESC' ); } } diff --git a/tests/Components/ParameterDefinitionTest.php b/tests/Components/ParameterDefinitionTest.php index a10fd9fe5..ea9db0c84 100644 --- a/tests/Components/ParameterDefinitionTest.php +++ b/tests/Components/ParameterDefinitionTest.php @@ -4,17 +4,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\ParameterDefinition; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\ParameterDefinitions; use PhpMyAdmin\SqlParser\Tests\TestCase; class ParameterDefinitionTest extends TestCase { public function testParse(): void { - $component = ParameterDefinition::parse( + $component = ParameterDefinitions::parse( new Parser(), - $this->getTokensList('(a INT, b INT') + $this->getTokensList('(a INT, b INT'), ); $this->assertEquals('a', $component[0]->name); $this->assertEquals('b', $component[1]->name); @@ -23,9 +23,9 @@ public function testParse(): void public function testParseComplex(): void { $parser = new Parser(); - $component = ParameterDefinition::parse( + $component = ParameterDefinitions::parse( $parser, - $this->getTokensList('CREATE DEFINER=`root`@`%` PROCEDURE `foo`( $bar int )') + $this->getTokensList('CREATE DEFINER=`root`@`%` PROCEDURE `foo`( $bar int )'), ); $this->assertEquals('$bar', $component[0]->name); } diff --git a/tests/Components/PartitionDefinitionTest.php b/tests/Components/PartitionDefinitionTest.php index 9bd73e63d..7de302a0a 100644 --- a/tests/Components/PartitionDefinitionTest.php +++ b/tests/Components/PartitionDefinitionTest.php @@ -4,33 +4,36 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\PartitionDefinition; +use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\PartitionDefinitions; use PhpMyAdmin\SqlParser\Tests\TestCase; class PartitionDefinitionTest extends TestCase { public function testParse(): void { - $component = PartitionDefinition::parse( + $component = PartitionDefinitions::parse( new Parser(), - $this->getTokensList('PARTITION p0 VALUES LESS THAN(1990)') + $this->getTokensList('PARTITION p0 VALUES LESS THAN(1990)'), ); $this->assertFalse($component->isSubpartition); $this->assertEquals('p0', $component->name); $this->assertEquals('LESS THAN', $component->type); + $this->assertInstanceOf(Expression::class, $component->expr); $this->assertEquals('(1990)', $component->expr->expr); } public function testParseNameWithUnderscore(): void { - $component = PartitionDefinition::parse( + $component = PartitionDefinitions::parse( new Parser(), - $this->getTokensList('PARTITION 2017_12 VALUES LESS THAN (\'2018-01-01 00:00:00\') ENGINE = MyISAM') + $this->getTokensList('PARTITION 2017_12 VALUES LESS THAN (\'2018-01-01 00:00:00\') ENGINE = MyISAM'), ); $this->assertFalse($component->isSubpartition); $this->assertEquals('2017_12', $component->name); $this->assertEquals('LESS THAN', $component->type); + $this->assertInstanceOf(Expression::class, $component->expr); $this->assertEquals('(\'2018-01-01 00:00:00\')', $component->expr->expr); } } diff --git a/tests/Components/ReferenceTest.php b/tests/Components/ReferenceTest.php index fd8fb58dd..6ccda5caa 100644 --- a/tests/Components/ReferenceTest.php +++ b/tests/Components/ReferenceTest.php @@ -7,13 +7,15 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\Reference; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\References; use PhpMyAdmin\SqlParser\Tests\TestCase; class ReferenceTest extends TestCase { public function testParse(): void { - $component = Reference::parse(new Parser(), $this->getTokensList('tbl (id)')); + $component = References::parse(new Parser(), $this->getTokensList('tbl (id)')); + $this->assertNotNull($component->table); $this->assertEquals('tbl', $component->table->table); $this->assertEquals(['id'], $component->columns); } @@ -21,6 +23,6 @@ public function testParse(): void public function testBuild(): void { $component = new Reference(new Expression('`tbl`'), ['id']); - $this->assertEquals('`tbl` (`id`)', Reference::build($component)); + $this->assertEquals('`tbl` (`id`)', $component->build()); } } diff --git a/tests/Components/RenameOperationTest.php b/tests/Components/RenameOperationTest.php index e4d83a031..35811c043 100644 --- a/tests/Components/RenameOperationTest.php +++ b/tests/Components/RenameOperationTest.php @@ -4,15 +4,15 @@ namespace PhpMyAdmin\SqlParser\Tests\Components; -use PhpMyAdmin\SqlParser\Components\RenameOperation; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Parsers\RenameOperations; use PhpMyAdmin\SqlParser\Tests\TestCase; class RenameOperationTest extends TestCase { - public function testBuild(): void + public function testBuildAll(): void { - $component = RenameOperation::parse(new Parser(), $this->getTokensList('a TO b, c TO d')); - $this->assertEquals(RenameOperation::build($component), 'a TO b, c TO d'); + $component = RenameOperations::parse(new Parser(), $this->getTokensList('a TO b, c TO d')); + $this->assertEquals('a TO b, c TO d', RenameOperations::buildAll($component)); } } diff --git a/tests/Lexer/ContextTest.php b/tests/Lexer/ContextTest.php index fe93ee4f7..c2c1be1c9 100644 --- a/tests/Lexer/ContextTest.php +++ b/tests/Lexer/ContextTest.php @@ -7,7 +7,7 @@ use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Contexts; use PhpMyAdmin\SqlParser\Tests\TestCase; -use Throwable; +use PHPUnit\Framework\Attributes\DataProvider; use function class_exists; @@ -21,32 +21,30 @@ public static function tearDownAfterClass(): void public function testLoad(): void { // Default context is 5.7.0. - $this->assertEquals('\\PhpMyAdmin\\SqlParser\\Contexts\\ContextMySql50700', Context::$loadedContext); - $this->assertArrayHasKey('STORED', Context::$KEYWORDS); - $this->assertArrayNotHasKey('AUTHORS', Context::$KEYWORDS); + $this->assertEquals('PhpMyAdmin\\SqlParser\\Contexts\\ContextMySql50700', Context::$loadedContext); + $this->assertArrayHasKey('STORED', Context::$keywords); + $this->assertArrayNotHasKey('AUTHORS', Context::$keywords); // Restoring context. - Context::load(''); - $this->assertEquals('\\PhpMyAdmin\\SqlParser\\Contexts\\ContextMySql50700', Context::$defaultContext); - $this->assertArrayHasKey('STORED', Context::$KEYWORDS); - $this->assertArrayNotHasKey('AUTHORS', Context::$KEYWORDS); + Context::load(); + $this->assertArrayHasKey('STORED', Context::$keywords); + $this->assertArrayNotHasKey('AUTHORS', Context::$keywords); } /** * Test for loading closest SQL context - * - * @dataProvider contextLoadingProvider */ - public function testLoadClosest(string $context, ?string $expected): void + #[DataProvider('contextLoadingProvider')] + public function testLoadClosest(string $context, string|null $expected): void { $this->assertEquals($expected, Context::loadClosest($context)); if ($expected !== null) { - $this->assertEquals('\\PhpMyAdmin\\SqlParser\\Contexts\\Context' . $expected, Context::$loadedContext); + $this->assertEquals('PhpMyAdmin\\SqlParser\\Contexts\\Context' . $expected, Context::$loadedContext); $this->assertTrue(class_exists(Context::$loadedContext)); } // Restoring context. - Context::load(''); + Context::load(); } /** @@ -87,21 +85,17 @@ public static function contextLoadingProvider(): array ]; } - /** - * @dataProvider contextNamesProvider - */ + #[DataProvider('contextNamesProvider')] public function testLoadAll(string $context): void { Context::load($context); - $this->assertEquals('\\PhpMyAdmin\\SqlParser\\Contexts\\Context' . $context, Context::$loadedContext); + $this->assertEquals('PhpMyAdmin\\SqlParser\\Contexts\\Context' . $context, Context::$loadedContext); // Restoring context. - Context::load(''); + Context::load(); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function contextNamesProvider(): array { return [ @@ -117,6 +111,8 @@ public static function contextNamesProvider(): array ['MySql80400'], ['MySql90000'], ['MySql90100'], + ['MySql90200'], + ['MySql90300'], ['MariaDb100000'], ['MariaDb100100'], ['MariaDb100200'], @@ -137,24 +133,23 @@ public static function contextNamesProvider(): array ['MariaDb110500'], ['MariaDb110600'], ['MariaDb110700'], + ['MariaDb110800'], + ['MariaDb120000'], + ['MariaDb120100'], ]; } - /** - * @dataProvider contextClassesProvider - */ + #[DataProvider('contextClassesProvider')] public function testLoadAllByClass(string $context): void { Context::load($context); - $this->assertEquals('\\' . $context, Context::$loadedContext); + $this->assertEquals($context, Context::$loadedContext); // Restoring context. Context::load(''); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function contextClassesProvider(): array { return [ @@ -170,6 +165,8 @@ public static function contextClassesProvider(): array [Contexts\ContextMySql80400::class], [Contexts\ContextMySql90000::class], [Contexts\ContextMySql90100::class], + [Contexts\ContextMySql90200::class], + [Contexts\ContextMySql90300::class], [Contexts\ContextMariaDb100000::class], [Contexts\ContextMariaDb100100::class], [Contexts\ContextMariaDb100200::class], @@ -190,24 +187,19 @@ public static function contextClassesProvider(): array [Contexts\ContextMariaDb110500::class], [Contexts\ContextMariaDb110600::class], [Contexts\ContextMariaDb110700::class], + [Contexts\ContextMariaDb110800::class], + [Contexts\ContextMariaDb120000::class], + [Contexts\ContextMariaDb120100::class], ]; } public function testLoadError(): void { - $this->expectExceptionMessage( - 'Specified context ("\PhpMyAdmin\SqlParser\Contexts\ContextFoo") does not exist.' - ); - $this->expectException(Throwable::class); - Context::load('Foo'); + $this->assertFalse(Context::load('Foo')); } - /** - * @param int|string $mode - * - * @dataProvider providerForTestMode - */ - public function testMode($mode, int $expected): void + #[DataProvider('providerForTestMode')] + public function testMode(int|string $mode, int $expected): void { Context::setMode($mode); $this->assertSame($expected, Context::getMode()); @@ -260,11 +252,11 @@ public static function providerForTestMode(): array public function testModeWithCombinedModes(): void { Context::setMode( - Context::SQL_MODE_REAL_AS_FLOAT | Context::SQL_MODE_ANSI_QUOTES | Context::SQL_MODE_IGNORE_SPACE + Context::SQL_MODE_REAL_AS_FLOAT | Context::SQL_MODE_ANSI_QUOTES | Context::SQL_MODE_IGNORE_SPACE, ); $this->assertSame( Context::SQL_MODE_REAL_AS_FLOAT | Context::SQL_MODE_ANSI_QUOTES | Context::SQL_MODE_IGNORE_SPACE, - Context::getMode() + Context::getMode(), ); $this->assertTrue(Context::hasMode(Context::SQL_MODE_REAL_AS_FLOAT | Context::SQL_MODE_IGNORE_SPACE)); $this->assertTrue(Context::hasMode(Context::SQL_MODE_ANSI_QUOTES)); @@ -283,7 +275,7 @@ public function testModeWithString(): void Context::setMode('REAL_AS_FLOAT,ANSI_QUOTES,IGNORE_SPACE'); $this->assertSame( Context::SQL_MODE_REAL_AS_FLOAT | Context::SQL_MODE_ANSI_QUOTES | Context::SQL_MODE_IGNORE_SPACE, - Context::getMode() + Context::getMode(), ); $this->assertTrue(Context::hasMode(Context::SQL_MODE_REAL_AS_FLOAT | Context::SQL_MODE_IGNORE_SPACE)); $this->assertTrue(Context::hasMode(Context::SQL_MODE_ANSI_QUOTES)); @@ -301,6 +293,10 @@ public function testEscape(): void { Context::setMode(Context::SQL_MODE_NO_ENCLOSING_QUOTES); $this->assertEquals('test', Context::escape('test')); + $this->assertEquals('`123`', Context::escape('123')); + $this->assertEquals('`$test`', Context::escape('$test')); + $this->assertEquals('`te st`', Context::escape('te st')); + $this->assertEquals('`te.st`', Context::escape('te.st')); Context::setMode(Context::SQL_MODE_ANSI_QUOTES); $this->assertEquals('"test"', Context::escape('test')); @@ -308,6 +304,12 @@ public function testEscape(): void Context::setMode(); $this->assertEquals('`test`', Context::escape('test')); - $this->assertEquals(['`a`', '`b`'], Context::escape(['a', 'b'])); + $this->assertEquals(['`a`', '`b`'], Context::escapeAll(['a', 'b'])); + } + + public function testEscapeAll(): void + { + Context::setMode(); + $this->assertEquals(['`a`', '`b`'], Context::escapeAll(['a', 'b'])); } } diff --git a/tests/Lexer/IsMethodsTest.php b/tests/Lexer/IsMethodsTest.php index afc8948a1..9feb77edf 100644 --- a/tests/Lexer/IsMethodsTest.php +++ b/tests/Lexer/IsMethodsTest.php @@ -18,11 +18,11 @@ public function testIsKeyword(): void $this->assertEquals( 1 | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, - Context::isKeyword('PRIMARY KEY') + Context::isKeyword('PRIMARY KEY'), ); $this->assertEquals( 1 | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, - Context::isKeyword('CHARACTER SET') + Context::isKeyword('CHARACTER SET'), ); $this->assertEquals(1 | Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('FROM', true)); @@ -107,23 +107,19 @@ public function testIsString(): void $this->assertEquals(Token::FLAG_STRING_SINGLE_QUOTES, Context::isString("'")); $this->assertEquals(Token::FLAG_STRING_DOUBLE_QUOTES, Context::isString('"')); - $this->assertEquals(Token::FLAG_STRING_SINGLE_QUOTES, Context::isString("'foo bar'")); - $this->assertEquals(Token::FLAG_STRING_DOUBLE_QUOTES, Context::isString('"foo bar"')); - $this->assertNull(Context::isString('')); - $this->assertNull(Context::isString('foo bar')); + $this->assertNull(Context::isString('f')); } public function testIsSymbol(): void { $this->assertEquals(Token::FLAG_SYMBOL_VARIABLE, Context::isSymbol('@')); $this->assertEquals(Token::FLAG_SYMBOL_BACKTICK, Context::isSymbol('`')); - - $this->assertEquals(Token::FLAG_SYMBOL_VARIABLE, Context::isSymbol('@id')); - $this->assertEquals(Token::FLAG_SYMBOL_BACKTICK, Context::isSymbol('`id`')); + $this->assertEquals(Token::FLAG_SYMBOL_PARAMETER, Context::isSymbol(':')); + $this->assertEquals(Token::FLAG_SYMBOL_PARAMETER, Context::isSymbol('?')); $this->assertNull(Context::isSymbol('')); - $this->assertNull(Context::isSymbol('id')); + $this->assertNull(Context::isSymbol('i')); } public function testisSeparator(): void diff --git a/tests/Lexer/LexerTest.php b/tests/Lexer/LexerTest.php index e310c94fa..10d4d90dd 100644 --- a/tests/Lexer/LexerTest.php +++ b/tests/Lexer/LexerTest.php @@ -7,15 +7,16 @@ use PhpMyAdmin\SqlParser\Exceptions\LexerException; use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use function sprintf; class LexerTest extends TestCase { - /** - * @runInSeparateProcess - * @preserveGlobalState disabled - */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testError(): void { $lexer = new Lexer(''); @@ -25,15 +26,15 @@ public function testError(): void sprintf('%2$s #%1$d', 2, 'error'), 'bar', 3, - 4 + 4, ); $this->assertEquals( - $lexer->errors, [ new LexerException('error #1', 'foo', 1, 2), new LexerException('error #2', 'bar', 3, 4), - ] + ], + $lexer->errors, ); } @@ -42,23 +43,18 @@ public function testErrorStrict(): void $this->expectExceptionCode(4); $this->expectExceptionMessage('strict error'); $this->expectException(LexerException::class); - $lexer = new Lexer(''); - $lexer->strict = true; + $lexer = new Lexer('', true); $lexer->error('strict error', 'foo', 1, 4); } - /** - * @dataProvider lexProvider - */ + #[DataProvider('lexProvider')] public function testLex(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function lexProvider(): array { return [ diff --git a/tests/Lexer/TokenTest.php b/tests/Lexer/TokenTest.php index eb54dbedf..3e4170b04 100644 --- a/tests/Lexer/TokenTest.php +++ b/tests/Lexer/TokenTest.php @@ -6,87 +6,88 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; +use PhpMyAdmin\SqlParser\TokenType; class TokenTest extends TestCase { public function testExtractKeyword(): void { - $tok = new Token('SelecT', Token::TYPE_KEYWORD, Token::FLAG_KEYWORD_RESERVED); - $this->assertEquals($tok->value, 'SELECT'); + $tok = new Token('SelecT', TokenType::Keyword, Token::FLAG_KEYWORD_RESERVED); + $this->assertEquals('SELECT', $tok->value); - $tok = new Token('aS', Token::TYPE_KEYWORD, Token::FLAG_KEYWORD_RESERVED); - $this->assertEquals($tok->value, 'AS'); + $tok = new Token('aS', TokenType::Keyword, Token::FLAG_KEYWORD_RESERVED); + $this->assertEquals('AS', $tok->value); } public function testExtractWhitespace(): void { - $tok = new Token(" \t \r \n ", Token::TYPE_WHITESPACE); - $this->assertEquals($tok->value, ' '); + $tok = new Token(" \t \r \n ", TokenType::Whitespace); + $this->assertEquals(' ', $tok->value); } public function testExtractBool(): void { - $tok = new Token('false', Token::TYPE_BOOL); + $tok = new Token('false', TokenType::Bool); $this->assertFalse($tok->value); - $tok = new Token('True', Token::TYPE_BOOL); + $tok = new Token('True', TokenType::Bool); $this->assertTrue($tok->value); } public function testExtractNumber(): void { - $tok = new Token('--42', Token::TYPE_NUMBER, Token::FLAG_NUMBER_NEGATIVE); - $this->assertEquals($tok->value, 42); + $tok = new Token('--42', TokenType::Number, Token::FLAG_NUMBER_NEGATIVE); + $this->assertEquals(42, $tok->value); - $tok = new Token('---42', Token::TYPE_NUMBER, Token::FLAG_NUMBER_NEGATIVE); - $this->assertEquals($tok->value, -42); + $tok = new Token('---42', TokenType::Number, Token::FLAG_NUMBER_NEGATIVE); + $this->assertEquals(-42, $tok->value); - $tok = new Token('0xFE', Token::TYPE_NUMBER, Token::FLAG_NUMBER_HEX); - $this->assertEquals($tok->value, 0xFE); + $tok = new Token('0xFE', TokenType::Number, Token::FLAG_NUMBER_HEX); + $this->assertEquals(0xFE, $tok->value); - $tok = new Token('-0xEF', Token::TYPE_NUMBER, Token::FLAG_NUMBER_NEGATIVE | Token::FLAG_NUMBER_HEX); - $this->assertEquals($tok->value, -0xEF); + $tok = new Token('-0xEF', TokenType::Number, Token::FLAG_NUMBER_NEGATIVE | Token::FLAG_NUMBER_HEX); + $this->assertEquals(-0xEF, $tok->value); - $tok = new Token('3.14', Token::TYPE_NUMBER, Token::FLAG_NUMBER_FLOAT); - $this->assertEquals($tok->value, 3.14); + $tok = new Token('3.14', TokenType::Number, Token::FLAG_NUMBER_FLOAT); + $this->assertEquals(3.14, $tok->value); } public function testExtractString(): void { - $tok = new Token('"foo bar "', Token::TYPE_STRING); - $this->assertEquals($tok->value, 'foo bar '); + $tok = new Token('"foo bar "', TokenType::String); + $this->assertEquals('foo bar ', $tok->value); - $tok = new Token("' bar foo '", Token::TYPE_STRING); - $this->assertEquals($tok->value, ' bar foo '); + $tok = new Token("' bar foo '", TokenType::String); + $this->assertEquals(' bar foo ', $tok->value); - $tok = new Token("'\''", Token::TYPE_STRING); - $this->assertEquals($tok->value, '\''); + $tok = new Token("'\''", TokenType::String); + $this->assertEquals('\'', $tok->value); - $tok = new Token('"\c\d\e\f\g\h\i\j\k\l\m\p\q\s\u\v\w\x\y\z"', Token::TYPE_STRING); - $this->assertEquals($tok->value, 'cdefghijklmpqsuvwxyz'); + $tok = new Token('"\c\d\e\f\g\h\i\j\k\l\m\p\q\s\u\v\w\x\y\z"', TokenType::String); + $this->assertEquals('cdefghijklmpqsuvwxyz', $tok->value); } public function testExtractSymbol(): void { - $tok = new Token('@foo', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_VARIABLE); - $this->assertEquals($tok->value, 'foo'); + $tok = new Token('@foo', TokenType::Symbol, Token::FLAG_SYMBOL_VARIABLE); + $this->assertEquals('foo', $tok->value); - $tok = new Token('`foo`', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_BACKTICK); - $this->assertEquals($tok->value, 'foo'); + $tok = new Token('`foo`', TokenType::Symbol, Token::FLAG_SYMBOL_BACKTICK); + $this->assertEquals('foo', $tok->value); - $tok = new Token('@`foo`', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_VARIABLE); - $this->assertEquals($tok->value, 'foo'); + $tok = new Token('@`foo`', TokenType::Symbol, Token::FLAG_SYMBOL_VARIABLE); + $this->assertEquals('foo', $tok->value); - $tok = new Token(':foo', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_PARAMETER); - $this->assertEquals($tok->value, 'foo'); + $tok = new Token(':foo', TokenType::Symbol, Token::FLAG_SYMBOL_PARAMETER); + $this->assertEquals('foo', $tok->value); - $tok = new Token('?', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_PARAMETER); - $this->assertEquals($tok->value, '?'); + $tok = new Token('?', TokenType::Symbol, Token::FLAG_SYMBOL_PARAMETER); + $this->assertEquals('?', $tok->value); } public function testInlineToken(): void { $token = new Token(" \r \n \t "); - $this->assertEquals($token->getInlineToken(), ' \r \n \t '); + $this->assertEquals(' \r \n \t ', $token->getInlineToken()); } } diff --git a/tests/Lexer/TokensListTest.php b/tests/Lexer/TokensListTest.php index e1479d75a..649096691 100644 --- a/tests/Lexer/TokensListTest.php +++ b/tests/Lexer/TokensListTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PhpMyAdmin\SqlParser\TokenType; use function count; @@ -17,7 +18,7 @@ class TokensListTest extends TestCase * * @var Token[] */ - public $tokens; + public array $tokens; /** * Test setup. @@ -25,27 +26,29 @@ class TokensListTest extends TestCase public function setUp(): void { parent::setUp(); + $this->tokens = [ - new Token('SELECT', Token::TYPE_KEYWORD), - new Token(' ', Token::TYPE_WHITESPACE), - new Token('*', Token::TYPE_OPERATOR), - new Token(' ', Token::TYPE_WHITESPACE), - new Token('FROM', Token::TYPE_KEYWORD, Token::FLAG_KEYWORD_RESERVED), - new Token(' ', Token::TYPE_WHITESPACE), - new Token('`test`', Token::TYPE_SYMBOL), - new Token(' ', Token::TYPE_WHITESPACE), - new Token('WHERE', Token::TYPE_KEYWORD, Token::FLAG_KEYWORD_RESERVED), - new Token(' ', Token::TYPE_WHITESPACE), - new Token('name', Token::TYPE_NONE), - new Token('=', Token::TYPE_OPERATOR), - new Token('fa', Token::TYPE_NONE), + new Token('SELECT', TokenType::Keyword), + new Token(' ', TokenType::Whitespace), + new Token('*', TokenType::Operator), + new Token(' ', TokenType::Whitespace), + new Token('FROM', TokenType::Keyword, Token::FLAG_KEYWORD_RESERVED), + new Token(' ', TokenType::Whitespace), + new Token('`test`', TokenType::Symbol), + new Token(' ', TokenType::Whitespace), + new Token('WHERE', TokenType::Keyword, Token::FLAG_KEYWORD_RESERVED), + new Token(' ', TokenType::Whitespace), + new Token('name', TokenType::None), + new Token('=', TokenType::Operator), + new Token('fa', TokenType::None), ]; } public function testBuild(): void { $list = new TokensList($this->tokens); - $this->assertEquals('SELECT * FROM `test` WHERE name=fa', TokensList::build($list)); + $this->assertEquals('SELECT * FROM `test` WHERE name=fa', $list->build()); + $this->assertEquals('SELECT * FROM `test` WHERE name=fa', TokensList::buildFromArray($this->tokens)); } public function testAdd(): void @@ -86,43 +89,43 @@ public function testGetPrevious(): void public function testGetNextOfType(): void { $list = new TokensList($this->tokens); - $this->assertEquals($this->tokens[0], $list->getNextOfType(Token::TYPE_KEYWORD)); - $this->assertEquals($this->tokens[4], $list->getNextOfType([Token::TYPE_KEYWORD])); - $this->assertEquals($this->tokens[6], $list->getNextOfType([Token::TYPE_KEYWORD, Token::TYPE_SYMBOL])); - $this->assertEquals($this->tokens[8], $list->getNextOfType([Token::TYPE_KEYWORD, Token::TYPE_SYMBOL])); - $this->assertNull($list->getNextOfType(Token::TYPE_KEYWORD)); + $this->assertEquals($this->tokens[0], $list->getNextOfType(TokenType::Keyword)); + $this->assertEquals($this->tokens[4], $list->getNextOfType([TokenType::Keyword])); + $this->assertEquals($this->tokens[6], $list->getNextOfType([TokenType::Keyword, TokenType::Symbol])); + $this->assertEquals($this->tokens[8], $list->getNextOfType([TokenType::Keyword, TokenType::Symbol])); + $this->assertNull($list->getNextOfType(TokenType::Keyword)); } public function testGetPreviousOfType(): void { $list = new TokensList($this->tokens); $list->idx = 9; - $this->assertEquals($this->tokens[8], $list->getPreviousOfType([Token::TYPE_KEYWORD, Token::TYPE_SYMBOL])); - $this->assertEquals($this->tokens[6], $list->getPreviousOfType([Token::TYPE_KEYWORD, Token::TYPE_SYMBOL])); - $this->assertEquals($this->tokens[4], $list->getPreviousOfType([Token::TYPE_KEYWORD])); - $this->assertEquals($this->tokens[0], $list->getPreviousOfType(Token::TYPE_KEYWORD)); - $this->assertNull($list->getPreviousOfType(Token::TYPE_KEYWORD)); + $this->assertEquals($this->tokens[8], $list->getPreviousOfType([TokenType::Keyword, TokenType::Symbol])); + $this->assertEquals($this->tokens[6], $list->getPreviousOfType([TokenType::Keyword, TokenType::Symbol])); + $this->assertEquals($this->tokens[4], $list->getPreviousOfType([TokenType::Keyword])); + $this->assertEquals($this->tokens[0], $list->getPreviousOfType(TokenType::Keyword)); + $this->assertNull($list->getPreviousOfType(TokenType::Keyword)); } public function testGetNextOfTypeAndFlag(): void { $list = new TokensList($this->tokens); $this->assertEquals($this->tokens[4], $list->getNextOfTypeAndFlag( - Token::TYPE_KEYWORD, - Token::FLAG_KEYWORD_RESERVED + TokenType::Keyword, + Token::FLAG_KEYWORD_RESERVED, )); $this->assertEquals($this->tokens[8], $list->getNextOfTypeAndFlag( - Token::TYPE_KEYWORD, - Token::FLAG_KEYWORD_RESERVED + TokenType::Keyword, + Token::FLAG_KEYWORD_RESERVED, )); - $this->assertNull($list->getNextOfTypeAndFlag(Token::TYPE_KEYWORD, Token::FLAG_KEYWORD_RESERVED)); + $this->assertNull($list->getNextOfTypeAndFlag(TokenType::Keyword, Token::FLAG_KEYWORD_RESERVED)); } public function testGetNextOfTypeAndValue(): void { $list = new TokensList($this->tokens); - $this->assertEquals($this->tokens[0], $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'SELECT')); - $this->assertNull($list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'SELECT')); + $this->assertEquals($this->tokens[0], $list->getNextOfTypeAndValue(TokenType::Keyword, 'SELECT')); + $this->assertNull($list->getNextOfTypeAndValue(TokenType::Keyword, 'SELECT')); } public function testArrayAccess(): void diff --git a/tests/Misc/BugsTest.php b/tests/Misc/BugsTest.php index 4b6e38771..edfb2e824 100644 --- a/tests/Misc/BugsTest.php +++ b/tests/Misc/BugsTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Misc; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class BugsTest extends TestCase { - /** - * @dataProvider bugProvider - */ + #[DataProvider('bugProvider')] public function testBug(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function bugProvider(): array { return [ diff --git a/tests/Misc/ParameterTest.php b/tests/Misc/ParameterTest.php index e5ba4276e..773dba6e2 100644 --- a/tests/Misc/ParameterTest.php +++ b/tests/Misc/ParameterTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Misc; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ParameterTest extends TestCase { - /** - * @dataProvider parameterProvider - */ + #[DataProvider('parameterProvider')] public function testParameter(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function parameterProvider(): array { return [ diff --git a/tests/Misc/TranslatorTest.php b/tests/Misc/TranslatorTest.php new file mode 100644 index 000000000..df2c4591d --- /dev/null +++ b/tests/Misc/TranslatorTest.php @@ -0,0 +1,96 @@ +setValue(null, null); + $translatorProperty = new ReflectionProperty(Translator::class, 'translator'); + $translatorProperty->setValue(null, null); + Translator::setLocale('en'); + } + + public function testLocale(): void + { + Translator::setLocale('en'); + self::assertSame('en', Translator::getLocale()); + Translator::setLocale('fr'); + self::assertSame('fr', Translator::getLocale()); + Translator::setLocale(''); + self::assertSame('', Translator::getLocale()); + } + + #[TestWith([null, 'en', 'en'])] + #[TestWith([null, 'fr', 'fr'])] + #[TestWith(['en', '', 'en'])] + #[TestWith(['fr', '', 'fr'])] + public function testLoad(string|null $globalLang, string $locale, string $expectedLocale): void + { + $loaderProperty = new ReflectionProperty(Translator::class, 'loader'); + $loaderProperty->setValue(null, null); + $translatorProperty = new ReflectionProperty(Translator::class, 'translator'); + $translatorProperty->setValue(null, null); + $GLOBALS['lang'] = $globalLang; + Translator::setLocale($locale); + + Translator::load(); + + self::assertSame($expectedLocale, Translator::getLocale()); + self::assertInstanceOf(MoTranslator::class, $translatorProperty->getValue()); + $loader = $loaderProperty->getValue(); + self::assertInstanceOf(Loader::class, $loader); + $loaderClass = new ReflectionClass(Loader::class); + $localeProperty = $loaderClass->getProperty('locale'); + self::assertSame($expectedLocale, $localeProperty->getValue($loader)); + // Compatibility with MoTranslator < 5 + $defaultDomainProperty = $loaderClass->hasProperty('default_domain') + ? $loaderClass->getProperty('default_domain') + : $loaderClass->getProperty('defaultDomain'); + self::assertSame('sqlparser', $defaultDomainProperty->getValue($loader)); + $pathsProperty = $loaderClass->getProperty('paths'); + self::assertSame( + ['' => './', 'sqlparser' => realpath(__DIR__ . '/../../src/') . '/../locale/'], + $pathsProperty->getValue($loader), + ); + } + + public function testGettext(): void + { + $loaderProperty = new ReflectionProperty(Translator::class, 'loader'); + $loaderProperty->setValue(null, null); + $translatorProperty = new ReflectionProperty(Translator::class, 'translator'); + $translatorProperty->setValue(null, null); + Translator::setLocale('pt_BR'); + self::assertSame( + 'Início de declaração inesperado.', + Translator::gettext('Unexpected beginning of statement.'), + ); + + $loaderProperty = new ReflectionProperty(Translator::class, 'loader'); + $loaderProperty->setValue(null, null); + $translatorProperty = new ReflectionProperty(Translator::class, 'translator'); + $translatorProperty->setValue(null, null); + Translator::setLocale('en'); + self::assertSame( + 'Unexpected beginning of statement.', + Translator::gettext('Unexpected beginning of statement.'), + ); + } +} diff --git a/tests/Misc/UtfStringTest.php b/tests/Misc/UtfStringTest.php index 4434d3306..9a3e7b7f6 100644 --- a/tests/Misc/UtfStringTest.php +++ b/tests/Misc/UtfStringTest.php @@ -6,10 +6,9 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\UtfString; +use PHPUnit\Framework\Attributes\DataProvider; use Throwable; -use function chr; - class UtfStringTest extends TestCase { /** @@ -34,8 +33,8 @@ public function testArrayAccess(): void // offsetGet $this->assertEquals('.', $str[self::TEST_PHRASE_LEN - 1]); - $this->assertNull($str[-1]); - $this->assertNull($str[self::TEST_PHRASE_LEN]); + $this->assertEquals('', $str[-1]); + $this->assertEquals('', $str[self::TEST_PHRASE_LEN]); } public function testSet(): void @@ -54,27 +53,6 @@ public function testUnset(): void unset($str[0]); } - public function testGetCharLength(): void - { - $this->assertEquals(1, UtfString::getCharLength(chr(0x00))); // 00000000 - $this->assertEquals(1, UtfString::getCharLength(chr(0x7F))); // 01111111 - - $this->assertEquals(2, UtfString::getCharLength(chr(0xC0))); // 11000000 - $this->assertEquals(2, UtfString::getCharLength(chr(0xDF))); // 11011111 - - $this->assertEquals(3, UtfString::getCharLength(chr(0xE0))); // 11100000 - $this->assertEquals(3, UtfString::getCharLength(chr(0xEF))); // 11101111 - - $this->assertEquals(4, UtfString::getCharLength(chr(0xF0))); // 11110000 - $this->assertEquals(4, UtfString::getCharLength(chr(0xF7))); // 11110111 - - $this->assertEquals(5, UtfString::getCharLength(chr(0xF8))); // 11111000 - $this->assertEquals(5, UtfString::getCharLength(chr(0xFB))); // 11111011 - - $this->assertEquals(6, UtfString::getCharLength(chr(0xFC))); // 11111100 - $this->assertEquals(6, UtfString::getCharLength(chr(0xFD))); // 11111101 - } - public function testToString(): void { $str = new UtfString(self::TEST_PHRASE); @@ -83,10 +61,9 @@ public function testToString(): void /** * Test access to string. - * - * @dataProvider utf8StringsProvider */ - public function testAccess(string $text, ?string $pos10, ?string $pos20): void + #[DataProvider('utf8StringsProvider')] + public function testAccess(string $text, string|null $pos10, string|null $pos20): void { $str = new UtfString($text); $this->assertEquals($pos10, $str->offsetGet(10)); @@ -112,7 +89,7 @@ public static function utf8StringsProvider(): array 'č', ], 'emoji' => [ - '😂😄😃😀😊😉😍😘😚😗😂👿😮😨😱😠😡😤😖😆😋👯', + '🦋😄😃😀😊😉😍😘😚😗😂👿😮😨😱😠😡😤😖😆😋👯', '😂', '😋', ], @@ -121,6 +98,11 @@ public static function utf8StringsProvider(): array null, null, ], + 'random' => [ + 'xℤⅿↈⅬ⅀ↆℜℝ⅗ℾ℧ⅰℓⅯⅵⅣ⅒21⅞', + 'ℾ', + '⅞', + ], ]; } } diff --git a/tests/Parser/AlterStatementTest.php b/tests/Parser/AlterStatementTest.php index 19071502c..c2f019de5 100644 --- a/tests/Parser/AlterStatementTest.php +++ b/tests/Parser/AlterStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AlterStatementTest extends TestCase { - /** - * @dataProvider alterProvider - */ + #[DataProvider('alterProvider')] public function testAlter(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function alterProvider(): array { return [ @@ -49,6 +46,15 @@ public static function alterProvider(): array ['parser/parseAlterTableCoalescePartition'], ['parser/parseAlterTableAddColumnWithCheck'], ['parser/parseAlterTableAddSpatialIndex1'], + ['parser/parseAlterTableAddUniqueKey1'], + ['parser/parseAlterTableAddUniqueKey2'], + ['parser/parseAlterTableAddUniqueKeyAsc'], + ['parser/parseAlterTableAddUniqueKeyAscDesc'], + ['parser/parseAlterTableAddUniqueKeyAscLower'], + ['parser/parseAlterTableAddUniqueKeyDesc'], + ['parser/parseAlterTableAddUniqueKeyDescAsc'], + ['parser/parseAlterTableAddUniqueKeyDescLower'], + ['parser/parseAlterTableAddUniqueKeyTwoDesc'], ['parser/parseAlterTableDropAddIndex1'], ['parser/parseAlterTableDropColumn1'], ['parser/parseAlterTableModifyColumn'], diff --git a/tests/Parser/AnalyzeStatementTest.php b/tests/Parser/AnalyzeStatementTest.php index 9c8543a6c..dd17c976a 100644 --- a/tests/Parser/AnalyzeStatementTest.php +++ b/tests/Parser/AnalyzeStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AnalyzeStatementTest extends TestCase { - /** - * @dataProvider analyzeProvider - */ + #[DataProvider('analyzeProvider')] public function testAnalyze(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function analyzeProvider(): array { return [ diff --git a/tests/Parser/CallStatementTest.php b/tests/Parser/CallStatementTest.php index cfab7e5d1..8dd87cf65 100644 --- a/tests/Parser/CallStatementTest.php +++ b/tests/Parser/CallStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class CallStatementTest extends TestCase { - /** - * @dataProvider callProvider - */ + #[DataProvider('callProvider')] public function testCall(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function callProvider(): array { return [ diff --git a/tests/Parser/CreateStatementTest.php b/tests/Parser/CreateStatementTest.php index c6f1e5a31..7eaf49572 100644 --- a/tests/Parser/CreateStatementTest.php +++ b/tests/Parser/CreateStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class CreateStatementTest extends TestCase { - /** - * @dataProvider createProvider - */ + #[DataProvider('createProvider')] public function testCreate(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function createProvider(): array { return [ diff --git a/tests/Parser/DeleteStatementTest.php b/tests/Parser/DeleteStatementTest.php index 8d4c8744e..c9cab06fb 100644 --- a/tests/Parser/DeleteStatementTest.php +++ b/tests/Parser/DeleteStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class DeleteStatementTest extends TestCase { - /** - * @dataProvider deleteProvider - */ + #[DataProvider('deleteProvider')] public function testDelete(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function deleteProvider(): array { return [ diff --git a/tests/Parser/DropStatementTest.php b/tests/Parser/DropStatementTest.php index 21c41eb61..5685c39d0 100644 --- a/tests/Parser/DropStatementTest.php +++ b/tests/Parser/DropStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class DropStatementTest extends TestCase { - /** - * @dataProvider dropProvider - */ + #[DataProvider('dropProvider')] public function testDrop(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function dropProvider(): array { return [ diff --git a/tests/Parser/ExplainStatementTest.php b/tests/Parser/ExplainStatementTest.php index ed9e5ddf4..26552a4ac 100644 --- a/tests/Parser/ExplainStatementTest.php +++ b/tests/Parser/ExplainStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ExplainStatementTest extends TestCase { - /** - * @dataProvider explainProvider - */ + #[DataProvider('explainProvider')] public function testExplain(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function explainProvider(): array { return [ diff --git a/tests/Parser/InsertStatementTest.php b/tests/Parser/InsertStatementTest.php index e3c070a8f..3a285c9b3 100644 --- a/tests/Parser/InsertStatementTest.php +++ b/tests/Parser/InsertStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class InsertStatementTest extends TestCase { - /** - * @dataProvider insertProvider - */ + #[DataProvider('insertProvider')] public function testInsert(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function insertProvider(): array { return [ diff --git a/tests/Parser/KillStatementTest.php b/tests/Parser/KillStatementTest.php index 335c96a20..5cf5041fa 100644 --- a/tests/Parser/KillStatementTest.php +++ b/tests/Parser/KillStatementTest.php @@ -7,18 +7,17 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statements\KillStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class KillStatementTest extends TestCase { - /** @dataProvider killProvider */ + #[DataProvider('killProvider')] public function testKill(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function killProvider(): array { return [ @@ -34,7 +33,7 @@ public static function killProvider(): array ]; } - /** @dataProvider buildKillProvider */ + #[DataProvider('buildKillProvider')] public function testBuildKill(string $sql): void { $parser = new Parser($sql); diff --git a/tests/Parser/LoadStatementTest.php b/tests/Parser/LoadStatementTest.php index 7c623bbe2..ca99f4bdd 100644 --- a/tests/Parser/LoadStatementTest.php +++ b/tests/Parser/LoadStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LoadStatementTest extends TestCase { @@ -14,20 +15,17 @@ public function testLoadOptions(): void $data = $this->getData('parser/parseLoad1'); $parser = new Parser($data['query']); $stmt = $parser->statements[0]; - $this->assertEquals(10, $stmt->options->has('CONCURRENT')); + $this->assertNotNull($stmt->options); + $this->assertTrue($stmt->options->has('CONCURRENT')); } - /** - * @dataProvider loadProvider - */ + #[DataProvider('loadProvider')] public function testLoad(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function loadProvider(): array { return [ diff --git a/tests/Parser/LockStatementTest.php b/tests/Parser/LockStatementTest.php index b1d25468a..30dce522f 100644 --- a/tests/Parser/LockStatementTest.php +++ b/tests/Parser/LockStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LockStatementTest extends TestCase { - /** - * @dataProvider lockProvider - */ + #[DataProvider('lockProvider')] public function testLock(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function lockProvider(): array { return [ diff --git a/tests/Parser/ParserLongExportsTest.php b/tests/Parser/ParserLongExportsTest.php index 3351d1928..c463d3002 100644 --- a/tests/Parser/ParserLongExportsTest.php +++ b/tests/Parser/ParserLongExportsTest.php @@ -8,17 +8,18 @@ use PhpMyAdmin\SqlParser\Statements\SetStatement; use PhpMyAdmin\SqlParser\Statements\TransactionStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ParserLongExportsTest extends TestCase { public function testMysqldump(): void { - $sql = <<statements as $statement) { if ($statement instanceof TransactionStatement) { + $this->assertNotNull($statement->statements); foreach ($statement->statements as $transactionStatement) { if (! $transactionStatement instanceof SetStatement) { continue; @@ -100,17 +102,13 @@ public function testParsephpMyAdminDump(): void } } - /** - * @dataProvider exportFileProvider - */ + #[DataProvider('exportFileProvider')] public function testParseExport(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function exportFileProvider(): array { return [ diff --git a/tests/Parser/ParserTest.php b/tests/Parser/ParserTest.php index 2d79a7da3..5d7ade27f 100644 --- a/tests/Parser/ParserTest.php +++ b/tests/Parser/ParserTest.php @@ -9,22 +9,21 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use function sprintf; class ParserTest extends TestCase { - /** - * @dataProvider parseProvider - */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function parseProvider(): array { return [ @@ -39,7 +38,7 @@ public function testUnrecognizedStatement(): void $parser = new Parser('SELECT 1; FROM'); $this->assertEquals( 'Unrecognized statement type.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } @@ -48,14 +47,12 @@ public function testUnrecognizedKeyword(): void $parser = new Parser('SELECT 1 FROM foo PARTITION(bar, baz) AS'); $this->assertEquals( 'Unrecognized keyword.', - $parser->errors[0]->getMessage() + $parser->errors[0]->getMessage(), ); } - /** - * @runInSeparateProcess - * @preserveGlobalState disabled - */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testError(): void { $parser = new Parser(new TokensList()); @@ -64,11 +61,11 @@ public function testError(): void $parser->error(sprintf('%2$s #%1$d', 2, 'error'), new Token('bar'), 2); $this->assertEquals( - $parser->errors, [ new ParserException('error #1', new Token('foo'), 1), new ParserException('error #2', new Token('bar'), 2), - ] + ], + $parser->errors, ); } @@ -77,8 +74,7 @@ public function testErrorStrict(): void $this->expectExceptionCode(3); $this->expectExceptionMessage('strict error'); $this->expectException(ParserException::class); - $parser = new Parser(new TokensList()); - $parser->strict = true; + $parser = new Parser(new TokensList(), true); $parser->error('strict error', new Token('foo'), 3); } diff --git a/tests/Parser/PurgeStatementTest.php b/tests/Parser/PurgeStatementTest.php index 5d61c16b2..703772e30 100644 --- a/tests/Parser/PurgeStatementTest.php +++ b/tests/Parser/PurgeStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class PurgeStatementTest extends TestCase { - /** - * @dataProvider purgeProvider - */ + #[DataProvider('purgeProvider')] public function testPurge(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function purgeProvider(): array { return [ diff --git a/tests/Parser/RenameStatementTest.php b/tests/Parser/RenameStatementTest.php index 003d8dc9f..5ba90ff4c 100644 --- a/tests/Parser/RenameStatementTest.php +++ b/tests/Parser/RenameStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class RenameStatementTest extends TestCase { - /** - * @dataProvider renameProvider - */ + #[DataProvider('renameProvider')] public function testRename(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function renameProvider(): array { return [ diff --git a/tests/Parser/ReplaceStatementTest.php b/tests/Parser/ReplaceStatementTest.php index e05ee6555..4d2a9d8a6 100644 --- a/tests/Parser/ReplaceStatementTest.php +++ b/tests/Parser/ReplaceStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ReplaceStatementTest extends TestCase { - /** - * @dataProvider replaceProvider - */ + #[DataProvider('replaceProvider')] public function testReplace(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function replaceProvider(): array { return [ diff --git a/tests/Parser/RestoreStatementTest.php b/tests/Parser/RestoreStatementTest.php index 124557378..02f906ce0 100644 --- a/tests/Parser/RestoreStatementTest.php +++ b/tests/Parser/RestoreStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class RestoreStatementTest extends TestCase { - /** - * @dataProvider restoreProvider - */ + #[DataProvider('restoreProvider')] public function testRestore(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function restoreProvider(): array { return [ diff --git a/tests/Parser/SelectStatementTest.php b/tests/Parser/SelectStatementTest.php index a7549b794..16178d6fd 100644 --- a/tests/Parser/SelectStatementTest.php +++ b/tests/Parser/SelectStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class SelectStatementTest extends TestCase { @@ -14,20 +15,17 @@ public function testSelectOptions(): void $data = $this->getData('parser/parseSelect'); $parser = new Parser($data['query']); $stmt = $parser->statements[0]; - $this->assertEquals(10, $stmt->options->has('MAX_STATEMENT_TIME')); + $this->assertNotNull($stmt->options); + $this->assertEquals(10, $stmt->options->get('MAX_STATEMENT_TIME')); } - /** - * @dataProvider selectProvider - */ + #[DataProvider('selectProvider')] public function testSelect(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function selectProvider(): array { return [ diff --git a/tests/Parser/SetStatementTest.php b/tests/Parser/SetStatementTest.php index 7c5e3ed17..32896e8e9 100644 --- a/tests/Parser/SetStatementTest.php +++ b/tests/Parser/SetStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class SetStatementTest extends TestCase { - /** - * @dataProvider setProvider - */ + #[DataProvider('setProvider')] public function testSet(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function setProvider(): array { return [ diff --git a/tests/Parser/TransactionStatementTest.php b/tests/Parser/TransactionStatementTest.php index 13aa5a8ff..86ba3dd4c 100644 --- a/tests/Parser/TransactionStatementTest.php +++ b/tests/Parser/TransactionStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class TransactionStatementTest extends TestCase { @@ -16,21 +17,17 @@ public function testBuildWithoutEnd(): void $stmt = $parser->statements[0]; $this->assertEquals( 'START TRANSACTION;SET time_zone = "+00:00";', - $stmt->build() + $stmt->build(), ); } - /** - * @dataProvider transactionProvider - */ + #[DataProvider('transactionProvider')] public function testTransaction(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function transactionProvider(): array { return [ diff --git a/tests/Parser/UpdateStatementTest.php b/tests/Parser/UpdateStatementTest.php index 7733ce619..e7ef04a28 100644 --- a/tests/Parser/UpdateStatementTest.php +++ b/tests/Parser/UpdateStatementTest.php @@ -5,20 +5,17 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class UpdateStatementTest extends TestCase { - /** - * @dataProvider updateProvider - */ + #[DataProvider('updateProvider')] public function testUpdate(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function updateProvider(): array { return [ diff --git a/tests/Parser/WithStatementTest.php b/tests/Parser/WithStatementTest.php index 414e05263..a6c716c7b 100644 --- a/tests/Parser/WithStatementTest.php +++ b/tests/Parser/WithStatementTest.php @@ -8,21 +8,17 @@ use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; -use stdClass; +use PHPUnit\Framework\Attributes\DataProvider; class WithStatementTest extends TestCase { - /** - * @dataProvider parseWith - */ + #[DataProvider('parseWith')] public function testParse(string $test): void { $this->runParserTest($test); } - /** - * @return string[][] - */ + /** @return string[][] */ public static function parseWith(): array { return [ @@ -48,7 +44,7 @@ public static function parseWith(): array public function testWith(): void { - $sql = <<assertCount(1, $parser->statements); // phpcs:disable Generic.Files.LineLength.TooLong - $expected = <<assertCount(1, $parser->statements); // phpcs:disable Generic.Files.LineLength.TooLong - $expected = <<assertCount(1, $parser->statements); // phpcs:disable Generic.Files.LineLength.TooLong - $expected = <<assertCount(0, $parserErrors); // phpcs:disable Generic.Files.LineLength.TooLong - $expected = <<assertCount(0, $lexerErrors); $parser = new Parser($lexer->list); $parserErrors = $this->getErrorsAsArray($parser); - $this->assertEquals($parserErrors[0][0], 'A closing bracket was expected.'); - } - - public function testBuildWrongWithKeyword(): void - { - $this->expectExceptionMessage('Can not build a component that is not a WithKeyword'); - WithKeyword::build(new stdClass()); + $this->assertEquals('A closing bracket was expected.', $parserErrors[0][0]); } public function testBuildBadWithKeyword(): void { $this->expectExceptionMessage('No statement inside WITH'); - WithKeyword::build(new WithKeyword('test')); + (new WithKeyword('test'))->build(); } } diff --git a/tests/TestCase.php b/tests/TestCase.php index 8351a84b8..2611bd21c 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -12,6 +12,8 @@ use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; use PhpMyAdmin\SqlParser\Tools\CustomJsonSerializer; +use PhpMyAdmin\SqlParser\Translator; +use PhpMyAdmin\SqlParser\UtfString; use PHPUnit\Framework\TestCase as BaseTestCase; use function file_get_contents; @@ -26,13 +28,12 @@ abstract class TestCase extends BaseTestCase { public function setUp(): void { - global $lang; // This line makes sure the test suite uses English so we can assert // on the error messages, if it is not here you will need to use // LC_ALL=C ./vendor/bin/phpunit // Users can have French language as default on their OS // That would make the assertions fail - $lang = 'en'; + Translator::setLocale('en'); Context::load(); } @@ -60,18 +61,18 @@ public function getTokensList(string $query): TokensList * : list * ) */ - public function getErrorsAsArray($obj): array + public function getErrorsAsArray(Lexer|Parser $obj): array { $ret = []; if ($obj instanceof Lexer) { /** @var LexerException $err */ foreach ($obj->errors as $err) { - $ret[] = [$err->getMessage(), $err->ch, $err->pos, (int) $err->getCode()]; + $ret[] = [$err->getMessage(), $err->ch, $err->pos, $err->getCode()]; } - } elseif ($obj instanceof Parser) { + } else { /** @var ParserException $err */ foreach ($obj->errors as $err) { - $ret[] = [$err->getMessage(), $err->token, (int) $err->getCode()]; + $ret[] = [$err->getMessage(), $err->token, $err->getCode()]; } } @@ -96,7 +97,9 @@ public function getData(string $name): array $serializedData = file_get_contents('tests/data/' . $name . '.out'); $this->assertIsString($serializedData); - $serializer = new CustomJsonSerializer(); + $serializer = new CustomJsonSerializer(null, [ + UtfString::class => new UtfStringSerializer(), + ]); $data = $serializer->unserialize($serializedData); $this->assertIsArray($data); @@ -113,8 +116,8 @@ public function getData(string $name): array $this->assertIsArray($data['errors']); $this->assertArrayHasKey('lexer', $data['errors']); $this->assertArrayHasKey('parser', $data['errors']); - $this->assertIsArray($data['errors']['lexer']); - $this->assertIsArray($data['errors']['parser']); + $this->assertIsList($data['errors']['lexer']); + $this->assertIsList($data['errors']['parser']); $data['query'] = file_get_contents('tests/data/' . $name . '.in'); $this->assertIsString($data['query']); diff --git a/tests/Tools/templates/TestContext.php b/tests/Tools/templates/TestContext.php index e357cfe1f..d89522c1d 100644 --- a/tests/Tools/templates/TestContext.php +++ b/tests/Tools/templates/TestContext.php @@ -4,7 +4,6 @@ namespace PhpMyAdmin\SqlParser\Contexts; -use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Token; /** @@ -15,7 +14,7 @@ * * @see https://www.phpmyadmin.net/contribute */ -class TestContext extends Context +final class TestContext { /** * List of keywords. @@ -24,10 +23,10 @@ class TestContext extends Context * * @see Token * - * @var array + * @psalm-var non-empty-array * @phpstan-var non-empty-array */ - public static $KEYWORDS = [ + public const KEYWORDS = [ 'NO_FLAG' => Token::FLAG_KEYWORD, 'RESERVED' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'RESERVED2' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, diff --git a/tests/UtfStringSerializer.php b/tests/UtfStringSerializer.php new file mode 100644 index 000000000..f0e7b6503 --- /dev/null +++ b/tests/UtfStringSerializer.php @@ -0,0 +1,28 @@ + + * @psalm-return array{str: string} + */ + public function serialize(UtfString $str): array + { + return ['str' => (string) $str]; + } + + /** + * @param array $data + * @psalm-param array{str: string} $data + */ + public function unserialize(array $data): UtfString + { + return new UtfString($data['str']); + } +} diff --git a/tests/Utils/BufferedQueryTest.php b/tests/Utils/BufferedQueryTest.php index b5e599c1b..36f297dd8 100644 --- a/tests/Utils/BufferedQueryTest.php +++ b/tests/Utils/BufferedQueryTest.php @@ -6,8 +6,10 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\BufferedQuery; +use PHPUnit\Framework\Attributes\DataProvider; use function count; +use function is_string; use function str_split; class BufferedQueryTest extends TestCase @@ -17,14 +19,13 @@ class BufferedQueryTest extends TestCase * @param string[] $expected * @psalm-param array{delimiter?: non-empty-string, parse_delimiter?: bool, add_delimiter?: bool} $options * @psalm-param positive-int $chunkSize - * - * @dataProvider extractProvider */ + #[DataProvider('extractProvider')] public function testExtract( string $query, int $chunkSize, array $options, - array $expected + array $expected, ): void { $chunks = str_split($query, $chunkSize); $count = count($chunks); @@ -44,7 +45,7 @@ public function testExtract( while ($i < $count) { $stmt = $bq->extract(); - if ($stmt) { + if (is_string($stmt) && $stmt !== '') { $statements[] = $stmt; } else { $bq->query .= $chunks[$i++]; diff --git a/tests/Utils/CLITest.php b/tests/Utils/CLITest.php index 80347378e..124dc28f6 100644 --- a/tests/Utils/CLITest.php +++ b/tests/Utils/CLITest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\CLI; +use PHPUnit\Framework\Attributes\DataProvider; use function dirname; use function exec; @@ -14,10 +15,8 @@ class CLITest extends TestCase { - /** - * @param array|false $getopt - */ - private function getCLI($getopt): CLI + /** @param array|false $getopt */ + private function getCLI(array|false $getopt): CLI { $cli = $this->createPartialMock(CLI::class, ['getopt']); $cli->method('getopt')->willReturn($getopt); @@ -25,10 +24,8 @@ private function getCLI($getopt): CLI return $cli; } - /** - * @param array|false $getopt - */ - private function getCLIStdIn(string $input, $getopt): CLI + /** @param array|false $getopt */ + private function getCLIStdIn(string $input, array|false $getopt): CLI { $cli = $this->createPartialMock(CLI::class, ['getopt', 'readStdin']); $cli->method('getopt')->willReturn($getopt); @@ -46,17 +43,14 @@ public function testGetopt(): void { $cli = new CLI(); $this->assertEquals( + [], $cli->getopt('', []), - [] ); } - /** - * @param array|false $getopt - * - * @dataProvider highlightParamsProvider - */ - public function testRunHighlight($getopt, string $output, int $result): void + /** @param array|false $getopt */ + #[DataProvider('highlightParamsProvider')] + public function testRunHighlight(array|false $getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); $this->expectOutputString($output); @@ -107,15 +101,15 @@ public static function highlightParamsProvider(): array ], [ ['h' => true], - 'Usage: highlight-query --query SQL [--format html|cli|text] [--ansi]' . "\n" . - ' cat file.sql | highlight-query' . "\n", + 'Usage: sql-parser --highlight --query SQL [--format html|cli|text] [--ansi]' . "\n" . + ' cat file.sql | sql-parser --highlight' . "\n", 0, ], [ [], 'ERROR: Missing parameters!' . "\n" . - 'Usage: highlight-query --query SQL [--format html|cli|text] [--ansi]' . "\n" . - ' cat file.sql | highlight-query' . "\n", + 'Usage: sql-parser --highlight --query SQL [--format html|cli|text] [--ansi]' . "\n" . + ' cat file.sql | sql-parser --highlight' . "\n", 1, ], [ @@ -126,12 +120,9 @@ public static function highlightParamsProvider(): array ]; } - /** - * @param array|false $getopt - * - * @dataProvider highlightParamsStdInProvider - */ - public function testRunHighlightStdIn(string $input, $getopt, string $output, int $result): void + /** @param array|false $getopt */ + #[DataProvider('highlightParamsStdInProvider')] + public function testRunHighlightStdIn(string $input, array|false $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); $this->expectOutputString($output); @@ -173,16 +164,16 @@ public static function highlightParamsStdInProvider(): array [ '', ['h' => true], - 'Usage: highlight-query --query SQL [--format html|cli|text] [--ansi]' . "\n" . - ' cat file.sql | highlight-query' . "\n", + 'Usage: sql-parser --highlight --query SQL [--format html|cli|text] [--ansi]' . "\n" . + ' cat file.sql | sql-parser --highlight' . "\n", 0, ], [ '', [], 'ERROR: Missing parameters!' . "\n" . - 'Usage: highlight-query --query SQL [--format html|cli|text] [--ansi]' . "\n" . - ' cat file.sql | highlight-query' . "\n", + 'Usage: sql-parser --highlight --query SQL [--format html|cli|text] [--ansi]' . "\n" . + ' cat file.sql | sql-parser --highlight' . "\n", 1, ], [ @@ -194,12 +185,9 @@ public static function highlightParamsStdInProvider(): array ]; } - /** - * @param array|false $getopt - * - * @dataProvider lintParamsStdInProvider - */ - public function testRunLintFromStdIn(string $input, $getopt, string $output, int $result): void + /** @param array|false $getopt */ + #[DataProvider('lintParamsStdInProvider')] + public function testRunLintFromStdIn(string $input, array|false $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); $this->expectOutputString($output); @@ -239,15 +227,15 @@ public static function lintParamsStdInProvider(): array '', [], 'ERROR: Missing parameters!' . "\n" . - 'Usage: lint-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | lint-query' . "\n", + 'Usage: sql-parser --lint --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --lint' . "\n", 1, ], [ '', ['h' => true], - 'Usage: lint-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | lint-query' . "\n", + 'Usage: sql-parser --lint --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --lint' . "\n", 0, ], [ @@ -259,12 +247,9 @@ public static function lintParamsStdInProvider(): array ]; } - /** - * @param array|false $getopt - * - * @dataProvider lintParamsProvider - */ - public function testRunLint($getopt, string $output, int $result): void + /** @param array|false $getopt */ + #[DataProvider('lintParamsProvider')] + public function testRunLint(array|false $getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); $this->expectOutputString($output); @@ -307,15 +292,15 @@ public static function lintParamsProvider(): array ], [ ['h' => true], - 'Usage: lint-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | lint-query' . "\n", + 'Usage: sql-parser --lint --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --lint' . "\n", 0, ], [ [], 'ERROR: Missing parameters!' . "\n" . - 'Usage: lint-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | lint-query' . "\n", + 'Usage: sql-parser --lint --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --lint' . "\n", 1, ], [ @@ -326,12 +311,9 @@ public static function lintParamsProvider(): array ]; } - /** - * @param array|false $getopt - * - * @dataProvider tokenizeParamsProvider - */ - public function testRunTokenize($getopt, string $output, int $result): void + /** @param array|false $getopt */ + #[DataProvider('tokenizeParamsProvider')] + public function testRunTokenize(array|false $getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); $this->expectOutputString($output); @@ -347,7 +329,7 @@ public static function tokenizeParamsProvider(): array $result = "[TOKEN 0]\nType = 1\nFlags = 3\nValue = 'SELECT'\nToken = 'SELECT'\n\n" . "[TOKEN 1]\nType = 3\nFlags = 0\nValue = ' '\nToken = ' '\n\n" . "[TOKEN 2]\nType = 6\nFlags = 0\nValue = 1\nToken = '1'\n\n" - . "[TOKEN 3]\nType = 9\nFlags = 0\nValue = NULL\nToken = NULL\n\n"; + . "[TOKEN 3]\nType = 9\nFlags = 0\nValue = ''\nToken = ''\n\n"; return [ [ @@ -362,15 +344,15 @@ public static function tokenizeParamsProvider(): array ], [ ['h' => true], - 'Usage: tokenize-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | tokenize-query' . "\n", + 'Usage: sql-parser --tokenize --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --tokenize' . "\n", 0, ], [ [], 'ERROR: Missing parameters!' . "\n" . - 'Usage: tokenize-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | tokenize-query' . "\n", + 'Usage: sql-parser --tokenize --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --tokenize' . "\n", 1, ], [ @@ -381,12 +363,9 @@ public static function tokenizeParamsProvider(): array ]; } - /** - * @param array|false $getopt - * - * @dataProvider tokenizeParamsStdInProvider - */ - public function testRunTokenizeStdIn(string $input, $getopt, string $output, int $result): void + /** @param array|false $getopt */ + #[DataProvider('tokenizeParamsStdInProvider')] + public function testRunTokenizeStdIn(string $input, array|false $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); $this->expectOutputString($output); @@ -402,7 +381,7 @@ public static function tokenizeParamsStdInProvider(): array $result = "[TOKEN 0]\nType = 1\nFlags = 3\nValue = 'SELECT'\nToken = 'SELECT'\n\n" . "[TOKEN 1]\nType = 3\nFlags = 0\nValue = ' '\nToken = ' '\n\n" . "[TOKEN 2]\nType = 6\nFlags = 0\nValue = 1\nToken = '1'\n\n" - . "[TOKEN 3]\nType = 9\nFlags = 0\nValue = NULL\nToken = NULL\n\n"; + . "[TOKEN 3]\nType = 9\nFlags = 0\nValue = ''\nToken = ''\n\n"; return [ [ @@ -414,16 +393,16 @@ public static function tokenizeParamsStdInProvider(): array [ '', ['h' => true], - 'Usage: tokenize-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | tokenize-query' . "\n", + 'Usage: sql-parser --tokenize --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --tokenize' . "\n", 0, ], [ '', [], 'ERROR: Missing parameters!' . "\n" . - 'Usage: tokenize-query --query SQL [--ansi]' . "\n" . - ' cat file.sql | tokenize-query' . "\n", + 'Usage: sql-parser --tokenize --query SQL [--ansi]' . "\n" . + ' cat file.sql | sql-parser --tokenize' . "\n", 1, ], [ @@ -435,9 +414,7 @@ public static function tokenizeParamsStdInProvider(): array ]; } - /** - * @dataProvider stdinParamsProvider - */ + #[DataProvider('stdinParamsProvider')] public function testStdinPipe(string $cmd, int $result): void { exec($cmd, $out, $ret); @@ -454,27 +431,27 @@ public static function stdinParamsProvider(): array return [ [ - 'echo "SELECT 1" | ' . $binPath . 'highlight-query', + 'echo "SELECT 1" | ' . $binPath . 'sql-parser --highlight', 0, ], [ - 'echo "invalid query" | ' . $binPath . 'highlight-query', + 'echo "invalid query" | ' . $binPath . 'sql-parser --highlight', 0, ], [ - 'echo "SELECT 1" | ' . $binPath . 'lint-query', + 'echo "SELECT 1" | ' . $binPath . 'sql-parser --lint', 0, ], [ - 'echo "invalid query" | ' . $binPath . 'lint-query', + 'echo "invalid query" | ' . $binPath . 'sql-parser --lint', 10, ], [ - 'echo "SELECT 1" | ' . $binPath . 'tokenize-query', + 'echo "SELECT 1" | ' . $binPath . 'sql-parser --tokenize', 0, ], [ - 'echo "invalid query" | ' . $binPath . 'tokenize-query', + 'echo "invalid query" | ' . $binPath . 'sql-parser --tokenize', 0, ], ]; diff --git a/tests/Utils/ErrorTest.php b/tests/Utils/ErrorTest.php index 2a91cdf00..da9e7be3a 100644 --- a/tests/Utils/ErrorTest.php +++ b/tests/Utils/ErrorTest.php @@ -30,7 +30,7 @@ public function testGet(): void 17, ], ], - Error::get([$lexer, $parser]) + Error::get([$lexer, $parser]), ); } @@ -44,7 +44,7 @@ public function testGetWithNullToken(): void ['Unexpected keyword.', 0, 'LOCAL', 27], ['Unexpected end of LOCK expression.', 0, '', null], ], - Error::get([$lexer, $parser]) + Error::get([$lexer, $parser]), ); } @@ -52,14 +52,14 @@ public function testFormat(): void { $this->assertEquals( ['#1: error msg (near "token" at position 100)'], - Error::format([['error msg', 42, 'token', 100]]) + Error::format([['error msg', 42, 'token', 100]]), ); $this->assertEquals( [ '#1: error msg (near "token" at position 100)', '#2: error msg (near "token" at position 200)', ], - Error::format([['error msg', 42, 'token', 100], ['error msg', 42, 'token', 200]]) + Error::format([['error msg', 42, 'token', 100], ['error msg', 42, 'token', 200]]), ); } } diff --git a/tests/Utils/FormatterTest.php b/tests/Utils/FormatterTest.php index 73a6708db..e717fdd3d 100644 --- a/tests/Utils/FormatterTest.php +++ b/tests/Utils/FormatterTest.php @@ -5,281 +5,109 @@ namespace PhpMyAdmin\SqlParser\Tests\Utils; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PhpMyAdmin\SqlParser\Token; +use PhpMyAdmin\SqlParser\TokenType; use PhpMyAdmin\SqlParser\Utils\Formatter; -use ReflectionMethod; +use PhpMyAdmin\SqlParser\Utils\FormattingOptions; +use PHPUnit\Framework\Attributes\DataProvider; + +use function strtoupper; class FormatterTest extends TestCase { - /** - * @param array> $default - * @param array> $overriding - * @param array> $expected - * @psalm-param list $default - * @psalm-param list $overriding - * @psalm-param list $expected - * - * @dataProvider mergeFormatsProvider - */ - public function testMergeFormats(array $default, array $overriding, array $expected): void + public function testMergeFormats(): void { - $formatter = $this->createPartialMock(Formatter::class, ['getDefaultOptions', 'getDefaultFormats']); + $object = new FormattingOptions(formats: []); + self::assertEquals($object->formats, FormattingOptions::getDefaultFormats()); - $formatter->expects($this->once()) - ->method('getDefaultOptions') - ->willReturn([ - 'type' => 'text', - 'line_ending' => null, - 'indentation' => null, - 'clause_newline' => null, - 'parts_newline' => null, - ]); - - $formatter->expects($this->once()) - ->method('getDefaultFormats') - ->willReturn($default); + $object = new FormattingOptions(formats: [ + [ + 'type' => TokenType::Keyword, + 'flags' => Token::FLAG_KEYWORD_RESERVED, + 'html' => 'sql-foo', + 'cli' => "\x1b[35m", + 'function' => strtoupper(...), + ], + [ + 'type' => TokenType::Keyword, + 'flags' => 0, + 'html' => 'sql-bar', + 'cli' => "\x1b[95m", + 'function' => strtoupper(...), + ], + [ + 'type' => TokenType::Keyword, + 'flags' => Token::FLAG_KEYWORD_COMPOSED, + 'html' => 'sql-baz', + 'cli' => "\x1b[95m", + 'function' => strtoupper(...), + ], - $expectedOptions = [ - 'type' => 'test-type', - 'line_ending' => '
', - 'indentation' => ' ', - 'clause_newline' => null, - 'parts_newline' => 0, - 'formats' => $expected, - ]; + ]); - $overridingOptions = [ - 'type' => 'test-type', - 'line_ending' => '
', - 'formats' => $overriding, - ]; + self::assertContainsEquals([ + 'type' => TokenType::Keyword, + 'flags' => Token::FLAG_KEYWORD_RESERVED, + 'html' => 'sql-foo', + 'cli' => "\x1b[35m", + 'function' => strtoupper(...), + ], $object->formats); - $reflectionMethod = new ReflectionMethod($formatter, 'getMergedOptions'); - $reflectionMethod->setAccessible(true); - $this->assertEquals($expectedOptions, $reflectionMethod->invoke($formatter, $overridingOptions)); - } + self::assertContainsEquals([ + 'type' => TokenType::Keyword, + 'flags' => 0, + 'html' => 'sql-bar', + 'cli' => "\x1b[95m", + 'function' => strtoupper(...), + ], $object->formats); - /** - * @return array>>> - * @psalm-return array, - * overriding: list, - * expected: list - * }> - */ - public static function mergeFormatsProvider(): array - { - // [default[], overriding[], expected[]] - return [ - 'empty formats' => [ - 'default' => [ - [ - 'type' => 0, - 'flags' => 0, - 'html' => '', - 'cli' => '', - 'function' => '', - ], - ], - 'overriding' => [ - [], - ], - 'expected' => [ - [ - 'type' => 0, - 'flags' => 0, - 'html' => '', - 'cli' => '', - 'function' => '', - ], - ], - ], - 'no flags' => [ - 'default' => [ - [ - 'type' => 0, - 'flags' => 0, - 'html' => 'html', - 'cli' => 'cli', - ], - [ - 'type' => 0, - 'flags' => 1, - 'html' => 'html', - 'cli' => 'cli', - ], - ], - 'overriding' => [ - [ - 'type' => 0, - 'html' => 'new html', - 'cli' => 'new cli', - ], - ], - 'expected' => [ - [ - 'type' => 0, - 'flags' => 0, - 'html' => 'new html', - 'cli' => 'new cli', - 'function' => '', - ], - [ - 'type' => 0, - 'flags' => 1, - 'html' => 'html', - 'cli' => 'cli', - ], - ], - ], - 'with flags' => [ - 'default' => [ - [ - 'type' => -1, - 'flags' => 0, - 'html' => 'html', - 'cli' => 'cli', - ], - [ - 'type' => 0, - 'flags' => 0, - 'html' => 'html', - 'cli' => 'cli', - ], - [ - 'type' => 0, - 'flags' => 1, - 'html' => 'html', - 'cli' => 'cli', - ], - ], - 'overriding' => [ - [ - 'type' => 0, - 'flags' => 0, - 'html' => 'new html', - 'cli' => 'new cli', - ], - ], - 'expected' => [ - [ - 'type' => -1, - 'flags' => 0, - 'html' => 'html', - 'cli' => 'cli', - ], - [ - 'type' => 0, - 'flags' => 0, - 'html' => 'new html', - 'cli' => 'new cli', - 'function' => '', - ], - [ - 'type' => 0, - 'flags' => 1, - 'html' => 'html', - 'cli' => 'cli', - ], - ], - ], - 'with extra formats' => [ - 'default' => [ - [ - 'type' => 0, - 'flags' => 0, - 'html' => 'html', - 'cli' => 'cli', - ], - ], - 'overriding' => [ - [ - 'type' => 0, - 'flags' => 1, - 'html' => 'new html', - 'cli' => 'new cli', - ], - [ - 'type' => 1, - 'html' => 'new html', - 'cli' => 'new cli', - ], - [ - 'type' => 1, - 'flags' => 1, - 'html' => 'new html', - 'cli' => 'new cli', - ], - ], - 'expected' => [ - [ - 'type' => 0, - 'flags' => 0, - 'html' => 'html', - 'cli' => 'cli', - ], - [ - 'type' => 0, - 'flags' => 1, - 'html' => 'new html', - 'cli' => 'new cli', - 'function' => '', - ], - [ - 'type' => 1, - 'flags' => 0, - 'html' => 'new html', - 'cli' => 'new cli', - 'function' => '', - ], - [ - 'type' => 1, - 'flags' => 1, - 'html' => 'new html', - 'cli' => 'new cli', - 'function' => '', - ], - ], - ], - ]; + self::assertContainsEquals([ + 'type' => TokenType::Keyword, + 'flags' => Token::FLAG_KEYWORD_COMPOSED, + 'html' => 'sql-baz', + 'cli' => "\x1b[95m", + 'function' => strtoupper(...), + ], $object->formats); } - /** - * @param array $options - * - * @dataProvider formatQueriesProviders - */ - public function testFormat(string $query, string $text, string $cli, string $html, array $options = []): void - { - // Test TEXT format + /** @param array{removeComments?: bool, lineEnding?: string, indentation?: string} $options */ + #[DataProvider('formatQueriesProviders')] + public function testFormat( + string $query, + string $text, + string $cli, + string $html, + array $options = [], + ): void { + $options['type'] = 'text'; $this->assertEquals( $text, - Formatter::format($query, ['type' => 'text'] + $options), - 'Text formatting failed.' + Formatter::format($query, new FormattingOptions(...$options)), + 'Text formatting failed.', ); - // Test CLI format + $options['type'] = 'cli'; $this->assertEquals( $cli, - Formatter::format($query, ['type' => 'cli'] + $options), - 'CLI formatting failed.' + Formatter::format($query, new FormattingOptions(...$options)), + 'CLI formatting failed.', ); - // Test HTML format + $options['type'] = 'html'; $this->assertEquals( $html, - Formatter::format($query, ['type' => 'html'] + $options), - 'HTML formatting failed.' + Formatter::format($query, new FormattingOptions(...$options)), + 'HTML formatting failed.', ); } /** - * @return array>> - * @psalm-return array + * options?: array{removeComments?: bool, lineEnding?: string, indentation?: string} * }> */ public static function formatQueriesProviders(): array @@ -321,6 +149,36 @@ public static function formatQueriesProviders(): array 'WHERE
' . '    1', ], + 'json operator' => [ + 'query' => 'SELECT details->\'$."first_name"\' FROM users', + 'text' => 'SELECT' . "\n" . + ' details->\'$."first_name"\'' . "\n" . + 'FROM' . "\n" . + ' users', + 'cli' => "\x1b[35mSELECT\n" . + " \x1b[39mdetails->\x1b[91m'$.\"first_name\"'\n" . + "\x1b[35mFROM\n" . + " \x1b[39musers\x1b[0m", + 'html' => 'SELECT
' . + '    details->\'$."first_name"\'
' . + 'FROM
' . + '    users', + ], + 'json operator (unquoted)' => [ + 'query' => 'SELECT metadata->>"$.url" FROM `alerts`;', + 'text' => 'SELECT' . "\n" . + ' metadata->>"$.url"' . "\n" . + 'FROM' . "\n" . + ' `alerts`;', + 'cli' => "\x1b[35mSELECT\n" . + " \x1b[39mmetadata->>\x1b[91m\"$.url\"\n" . + "\x1b[35mFROM\n" . + " \x1b[36m`alerts`\x1b[39m;\x1b[0m", + 'html' => 'SELECT
' . + '    metadata->>"$.url"
' . + 'FROM
' . + '    `alerts`;', + ], 'typical' => [ 'query' => 'SELECT id, if(id=1,"Si","No") from `tbl` where id = 0 or ' . 'id = 1 group by id order by id desc limit 1 offset 0', @@ -414,7 +272,7 @@ public static function formatQueriesProviders(): array '    tbl
' . 'WHERE
' . '    1', - 'options' => ['remove_comments' => true], + 'options' => ['removeComments' => true], ], 'keywords' => [ 'query' => 'select hex("1")', @@ -608,6 +466,30 @@ public static function formatQueriesProviders(): array 'WHERE
' . '    col = ?', ], + 'single line' => [ + 'query' => 'select *' . "\n" . + 'from tbl # Comment' . "\n" . + 'where 1 -- Comment', + 'text' => 'SELECT ' . + '* ' . + 'FROM ' . + 'tbl ' . + 'WHERE ' . + '1', + 'cli' => "\x1b[35mSELECT " . + "\x1b[39m* " . + "\x1b[35mFROM " . + "\x1b[39mtbl " . + "\x1b[35mWHERE " . + "\x1b[92m1\x1b[0m", + 'html' => 'SELECT ' . + '* ' . + 'FROM ' . + 'tbl ' . + 'WHERE ' . + '1', + 'options' => ['lineEnding' => ' ', 'indentation' => '', 'removeComments' => true], + ], ]; } } diff --git a/tests/Utils/MiscTest.php b/tests/Utils/MiscTest.php deleted file mode 100644 index 192b22c34..000000000 --- a/tests/Utils/MiscTest.php +++ /dev/null @@ -1,137 +0,0 @@ -}> - * }> $expected - * - * @dataProvider getAliasesProvider - */ - public function testGetAliases(string $query, ?string $db, array $expected): void - { - $parser = new Parser($query); - $statement = empty($parser->statements[0]) ? - null : $parser->statements[0]; - $this->assertEquals($expected, Misc::getAliases($statement, $db)); - } - - /** - * @return array> - * @psalm-return list}> - * }>}> - */ - public static function getAliasesProvider(): array - { - return [ - [ - 'select * from (select 1) tbl', - 'mydb', - [], - ], - [ - 'select i.name as `n`,abcdef gh from qwerty i', - 'mydb', - [ - 'mydb' => [ - 'alias' => null, - 'tables' => [ - 'qwerty' => [ - 'alias' => 'i', - 'columns' => [ - 'name' => 'n', - 'abcdef' => 'gh', - ], - ], - ], - ], - ], - ], - [ - 'select film_id id,title from film', - 'sakila', - [ - 'sakila' => [ - 'alias' => null, - 'tables' => [ - 'film' => [ - 'alias' => null, - 'columns' => ['film_id' => 'id'], - ], - ], - ], - ], - ], - [ - 'select `sakila`.`A`.`actor_id` as aid,`F`.`film_id` `fid`,' - . 'last_update updated from `sakila`.actor A join `film_actor` as ' - . '`F` on F.actor_id = A.`actor_id`', - 'sakila', - [ - 'sakila' => [ - 'alias' => null, - 'tables' => [ - 'film_actor' => [ - 'alias' => 'F', - 'columns' => [ - 'film_id' => 'fid', - 'last_update' => 'updated', - ], - ], - 'actor' => [ - 'alias' => 'A', - 'columns' => [ - 'actor_id' => 'aid', - 'last_update' => 'updated', - ], - ], - ], - ], - ], - ], - [ - 'SELECT film_id FROM (SELECT * FROM film) as f;', - 'sakila', - [], - ], - [ - '', - null, - [], - ], - [ - 'SELECT 1', - null, - [], - ], - [ - 'SELECT * FROM orders AS ord WHERE 1', - 'db', - [ - 'db' => [ - 'alias' => null, - 'tables' => [ - 'orders' => [ - 'alias' => 'ord', - 'columns' => [], - ], - ], - ], - ], - ], - ]; - } -} diff --git a/tests/Utils/QueryTest.php b/tests/Utils/QueryTest.php index 583b67aba..b89f530e3 100644 --- a/tests/Utils/QueryTest.php +++ b/tests/Utils/QueryTest.php @@ -5,32 +5,32 @@ namespace PhpMyAdmin\SqlParser\Tests\Utils; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Query; +use PhpMyAdmin\SqlParser\Utils\StatementFlags; +use PhpMyAdmin\SqlParser\Utils\StatementType; +use PHPUnit\Framework\Attributes\DataProvider; -use function array_merge; - -/** - * @psalm-import-type QueryFlagsType from Query - */ class QueryTest extends TestCase { /** - * @param array $expected - * @psalm-param QueryFlagsType $expected - * - * @dataProvider getFlagsProvider + * @psalm-param non-empty-string $query + * @psalm-param array>, bool|StatementType|null> $expected */ + #[DataProvider('getFlagsProvider')] public function testGetFlags(string $query, array $expected): void { $parser = new Parser($query); - $this->assertEquals($expected, Query::getFlags($parser->statements[0])); + $flags = new StatementFlags(); + foreach ($expected as $property => $expectedValue) { + $flags->$property = $expectedValue; + } + + $this->assertEquals($flags, Query::getFlags($parser->statements[0])); } - /** - * @return array>> - * @psalm-return list - */ + /** @psalm-return list>, bool|StatementType|null>}> */ public static function getFlagsProvider(): array { return [ @@ -38,234 +38,234 @@ public static function getFlagsProvider(): array 'ALTER TABLE DROP col', [ 'reload' => true, - 'querytype' => 'ALTER', + 'queryType' => StatementType::Alter, ], ], [ 'CALL test()', [ - 'is_procedure' => true, - 'querytype' => 'CALL', + 'isProcedure' => true, + 'queryType' => StatementType::Call, ], ], [ 'CREATE TABLE tbl (id INT)', [ 'reload' => true, - 'querytype' => 'CREATE', + 'queryType' => StatementType::Create, ], ], [ 'CHECK TABLE tbl', [ - 'is_maint' => true, - 'querytype' => 'CHECK', + 'isMaint' => true, + 'queryType' => StatementType::Check, ], ], [ 'DELETE FROM tbl', [ - 'is_affected' => true, - 'is_delete' => true, - 'querytype' => 'DELETE', + 'isAffected' => true, + 'isDelete' => true, + 'queryType' => StatementType::Delete, ], ], [ 'DROP VIEW v', [ 'reload' => true, - 'querytype' => 'DROP', + 'queryType' => StatementType::Drop, ], ], [ 'DROP DATABASE db', [ - 'drop_database' => true, + 'dropDatabase' => true, 'reload' => true, - 'querytype' => 'DROP', + 'queryType' => StatementType::Drop, ], ], [ 'EXPLAIN tbl', [ - 'is_explain' => true, - 'querytype' => 'EXPLAIN', + 'isExplain' => true, + 'queryType' => StatementType::Explain, ], ], [ 'LOAD DATA INFILE \'/tmp/test.txt\' INTO TABLE test', [ - 'is_affected' => true, - 'is_insert' => true, - 'querytype' => 'LOAD', + 'isAffected' => true, + 'isInsert' => true, + 'queryType' => StatementType::Load, ], ], [ 'INSERT INTO tbl VALUES (1)', [ - 'is_affected' => true, - 'is_insert' => true, - 'querytype' => 'INSERT', + 'isAffected' => true, + 'isInsert' => true, + 'queryType' => StatementType::Insert, ], ], [ 'REPLACE INTO tbl VALUES (2)', [ - 'is_affected' => true, - 'is_replace' => true, - 'is_insert' => true, - 'querytype' => 'REPLACE', + 'isAffected' => true, + 'isReplace' => true, + 'isInsert' => true, + 'queryType' => StatementType::Replace, ], ], [ 'SELECT 1', [ - 'is_select' => true, - 'querytype' => 'SELECT', + 'isSelect' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT * FROM tbl', [ - 'is_select' => true, - 'select_from' => true, - 'querytype' => 'SELECT', + 'isSelect' => true, + 'selectFrom' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT DISTINCT * FROM tbl LIMIT 0, 10 ORDER BY id', [ 'distinct' => true, - 'is_select' => true, - 'select_from' => true, + 'isSelect' => true, + 'selectFrom' => true, 'limit' => true, 'order' => true, - 'querytype' => 'SELECT', + 'queryType' => StatementType::Select, ], ], [ 'SELECT * FROM actor GROUP BY actor_id', [ - 'is_group' => true, - 'is_select' => true, - 'select_from' => true, + 'isGroup' => true, + 'isSelect' => true, + 'selectFrom' => true, 'group' => true, - 'querytype' => 'SELECT', + 'queryType' => StatementType::Select, ], ], [ 'SELECT col1, col2 FROM table1 PROCEDURE ANALYSE(10, 2000);', [ - 'is_analyse' => true, - 'is_select' => true, - 'select_from' => true, - 'querytype' => 'SELECT', + 'isAnalyse' => true, + 'isSelect' => true, + 'selectFrom' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT * FROM tbl INTO OUTFILE "/tmp/export.txt"', [ - 'is_export' => true, - 'is_select' => true, - 'select_from' => true, - 'querytype' => 'SELECT', + 'isExport' => true, + 'isSelect' => true, + 'selectFrom' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT COUNT(id), SUM(id) FROM tbl', [ - 'is_count' => true, - 'is_func' => true, - 'is_select' => true, - 'select_from' => true, - 'querytype' => 'SELECT', + 'isCount' => true, + 'isFunc' => true, + 'isSelect' => true, + 'selectFrom' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT count(*) FROM tbl', [ - 'is_count' => true, - 'is_select' => true, - 'select_from' => true, - 'querytype' => 'SELECT', + 'isCount' => true, + 'isSelect' => true, + 'selectFrom' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT sum(*) FROM tbl', [ - 'is_func' => true, - 'is_select' => true, - 'select_from' => true, - 'querytype' => 'SELECT', + 'isFunc' => true, + 'isSelect' => true, + 'selectFrom' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT (SELECT "foo")', [ - 'is_select' => true, - 'is_subquery' => true, - 'querytype' => 'SELECT', + 'isSelect' => true, + 'isSubQuery' => true, + 'queryType' => StatementType::Select, ], ], [ 'SELECT * FROM customer HAVING store_id = 2;', [ - 'is_select' => true, - 'select_from' => true, - 'is_group' => true, + 'isSelect' => true, + 'selectFrom' => true, + 'isGroup' => true, 'having' => true, - 'querytype' => 'SELECT', + 'queryType' => StatementType::Select, ], ], [ 'SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id;', [ - 'is_select' => true, - 'select_from' => true, + 'isSelect' => true, + 'selectFrom' => true, 'join' => true, - 'querytype' => 'SELECT', + 'queryType' => StatementType::Select, ], ], [ 'SHOW CREATE TABLE tbl', [ - 'is_show' => true, - 'querytype' => 'SHOW', + 'isShow' => true, + 'queryType' => StatementType::Show, ], ], [ 'UPDATE tbl SET id = 1', [ - 'is_affected' => true, - 'querytype' => 'UPDATE', + 'isAffected' => true, + 'queryType' => StatementType::Update, ], ], [ 'ANALYZE TABLE tbl', [ - 'is_maint' => true, - 'querytype' => 'ANALYZE', + 'isMaint' => true, + 'queryType' => StatementType::Analyze, ], ], [ 'CHECKSUM TABLE tbl', [ - 'is_maint' => true, - 'querytype' => 'CHECKSUM', + 'isMaint' => true, + 'queryType' => StatementType::Checksum, ], ], [ 'OPTIMIZE TABLE tbl', [ - 'is_maint' => true, - 'querytype' => 'OPTIMIZE', + 'isMaint' => true, + 'queryType' => StatementType::Optimize, ], ], [ 'REPAIR TABLE tbl', [ - 'is_maint' => true, - 'querytype' => 'REPAIR', + 'isMaint' => true, + 'queryType' => StatementType::Repair, ], ], [ @@ -273,160 +273,155 @@ public static function getFlagsProvider(): array 'UNION ' . '(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);', [ - 'is_select' => true, - 'select_from' => true, + 'isSelect' => true, + 'selectFrom' => true, 'limit' => true, 'order' => true, 'union' => true, - 'querytype' => 'SELECT', + 'queryType' => StatementType::Select, ], ], [ 'SELECT * FROM orders AS ord WHERE 1', [ - 'querytype' => 'SELECT', - 'is_select' => true, - 'select_from' => true, + 'queryType' => StatementType::Select, + 'isSelect' => true, + 'selectFrom' => true, ], ], [ 'SET NAMES \'latin\'', - ['querytype' => 'SET'], + ['queryType' => StatementType::Set], ], ]; } - public function testGetAll(): void + public function testGetFlagsWithEmptyString(): void { - $this->assertEquals( - [ - 'distinct' => false, - 'drop_database' => false, - 'group' => false, - 'having' => false, - 'is_affected' => false, - 'is_analyse' => false, - 'is_count' => false, - 'is_delete' => false, - 'is_explain' => false, - 'is_export' => false, - 'is_func' => false, - 'is_group' => false, - 'is_insert' => false, - 'is_maint' => false, - 'is_procedure' => false, - 'is_replace' => false, - 'is_select' => false, - 'is_show' => false, - 'is_subquery' => false, - 'join' => false, - 'limit' => false, - 'offset' => false, - 'order' => false, - 'querytype' => false, - 'reload' => false, - 'select_from' => false, - 'union' => false, - ], - Query::getAll('') - ); + $statementInfo = Query::getAll(''); + self::assertEquals(new Parser(''), $statementInfo->parser); + self::assertNull($statementInfo->statement); + self::assertSame([], $statementInfo->selectTables); + self::assertSame([], $statementInfo->selectExpressions); + $flags = $statementInfo->flags; + self::assertFalse($flags->distinct); + self::assertFalse($flags->dropDatabase); + self::assertFalse($flags->group); + self::assertFalse($flags->having); + self::assertFalse($flags->isAffected); + self::assertFalse($flags->isAnalyse); + self::assertFalse($flags->isCount); + /** @psalm-suppress DeprecatedProperty */ + self::assertFalse($flags->isDelete); + /** @psalm-suppress DeprecatedProperty */ + self::assertFalse($flags->isExplain); + self::assertFalse($flags->isExport); + self::assertFalse($flags->isFunc); + self::assertFalse($flags->isGroup); + self::assertFalse($flags->isInsert); + self::assertFalse($flags->isMaint); + self::assertFalse($flags->isProcedure); + /** @psalm-suppress DeprecatedProperty */ + self::assertFalse($flags->isReplace); + /** @psalm-suppress DeprecatedProperty */ + self::assertFalse($flags->isSelect); + /** @psalm-suppress DeprecatedProperty */ + self::assertFalse($flags->isShow); + self::assertFalse($flags->isSubQuery); + self::assertFalse($flags->join); + self::assertFalse($flags->limit); + self::assertFalse($flags->offset); + self::assertFalse($flags->order); + self::assertNull($flags->queryType); + self::assertFalse($flags->reload); + self::assertFalse($flags->selectFrom); + self::assertFalse($flags->union); + } - $query = 'SELECT *, actor.actor_id, sakila2.film.* - FROM sakila2.city, sakila2.film, actor'; + public function testGetAll(): void + { + $query = 'SELECT *, actor.actor_id, sakila2.film.* FROM sakila2.city, sakila2.film, actor'; $parser = new Parser($query); - $this->assertEquals( - array_merge( - Query::getFlags($parser->statements[0], true), - [ - 'parser' => $parser, - 'statement' => $parser->statements[0], - 'select_expr' => ['*'], - 'select_tables' => [ - [ - 'actor', - null, - ], - [ - 'film', - 'sakila2', - ], - ], - ] - ), - Query::getAll($query) - ); + $statementInfo = Query::getAll($query); + self::assertEquals($parser, $statementInfo->parser); + self::assertEquals($parser->statements[0], $statementInfo->statement); + self::assertEquals(Query::getFlags($parser->statements[0]), $statementInfo->flags); + self::assertSame([['actor', null], ['film', 'sakila2']], $statementInfo->selectTables); + self::assertSame(['*'], $statementInfo->selectExpressions); $query = 'SELECT * FROM sakila.actor, film'; $parser = new Parser($query); - $this->assertEquals( - array_merge( - Query::getFlags($parser->statements[0], true), - [ - 'parser' => $parser, - 'statement' => $parser->statements[0], - 'select_expr' => ['*'], - 'select_tables' => [ - [ - 'actor', - 'sakila', - ], - [ - 'film', - null, - ], - ], - ] - ), - Query::getAll($query) - ); + $statementInfo = Query::getAll($query); + self::assertEquals($parser, $statementInfo->parser); + self::assertEquals($parser->statements[0], $statementInfo->statement); + self::assertEquals(Query::getFlags($parser->statements[0]), $statementInfo->flags); + self::assertSame([['actor', 'sakila'], ['film', null]], $statementInfo->selectTables); + self::assertSame(['*'], $statementInfo->selectExpressions); $query = 'SELECT a.actor_id FROM sakila.actor AS a, film'; $parser = new Parser($query); - $this->assertEquals( - array_merge( - Query::getFlags($parser->statements[0], true), - [ - 'parser' => $parser, - 'statement' => $parser->statements[0], - 'select_expr' => [], - 'select_tables' => [ - [ - 'actor', - 'sakila', - ], - ], - ] - ), - Query::getAll($query) - ); + $statementInfo = Query::getAll($query); + self::assertEquals($parser, $statementInfo->parser); + self::assertEquals($parser->statements[0], $statementInfo->statement); + self::assertEquals(Query::getFlags($parser->statements[0]), $statementInfo->flags); + self::assertSame([['actor', 'sakila']], $statementInfo->selectTables); + self::assertSame([], $statementInfo->selectExpressions); $query = 'SELECT CASE WHEN 2 IS NULL THEN "this is true" ELSE "this is false" END'; $parser = new Parser($query); - $this->assertEquals( - array_merge( - Query::getFlags($parser->statements[0], true), - [ - 'parser' => $parser, - 'statement' => $parser->statements[0], - 'select_expr' => ['CASE WHEN 2 IS NULL THEN "this is true" ELSE "this is false" END'], - 'select_tables' => [], - ] - ), - Query::getAll($query) + $statementInfo = Query::getAll($query); + self::assertEquals($parser, $statementInfo->parser); + self::assertEquals($parser->statements[0], $statementInfo->statement); + self::assertEquals(Query::getFlags($parser->statements[0]), $statementInfo->flags); + self::assertSame([], $statementInfo->selectTables); + self::assertSame( + ['CASE WHEN 2 IS NULL THEN "this is true" ELSE "this is false" END'], + $statementInfo->selectExpressions, ); } - /** - * @param string[] $expected - * - * @dataProvider getTablesProvider - */ + public function testGetAllTableWithDotsAndReplaceClause(): void + { + $query = 'SELECT * FROM `test.2024-11-01` ORDER BY `test.2024-11-01`.`id` ASC;'; + + $statements = Query::getAll($query); + + self::assertInstanceOf(Statement::class, $statements->statement); + self::assertNotNull($statements->parser->list); + + $fromClause = Query::replaceClause($statements->statement, $statements->parser->list, 'ORDER BY', ''); + self::assertEquals('SELECT * FROM `test.2024-11-01`', $fromClause); + + $fromClause = Query::replaceClause($statements->statement, $statements->parser->list, 'ORDER BY'); + self::assertEquals('SELECT * FROM `test.2024-11-01` ORDER BY', $fromClause); + + // With spaces + $fromClause = Query::replaceClause($statements->statement, $statements->parser->list, 'ORDER BY '); + self::assertEquals('SELECT * FROM `test.2024-11-01` ORDER BY ', $fromClause); + } + + public function testGetAllTableWithDotsAndReplaceClauseEmptyName(): void + { + $query = 'SELECT * FROM `test.2024-11-01` ORDER BY `test.2024-11-01`.`id` ASC;'; + + $statements = Query::getAll($query); + + self::assertInstanceOf(Statement::class, $statements->statement); + self::assertNotNull($statements->parser->list); + + // No clause name + $result = Query::replaceClause($statements->statement, $statements->parser->list, ''); + self::assertEquals('SELECT * FROM `test.2024-11-01` ORDER BY `test.2024-11-01`.`id` ASC', $result); + } + + /** @param string[] $expected */ + #[DataProvider('getTablesProvider')] public function testGetTables(string $query, array $expected): void { $parser = new Parser($query); $this->assertEquals( $expected, - Query::getTables($parser->statements[0]) + Query::getTables($parser->statements[0]), ); } @@ -495,16 +490,17 @@ public function testGetClause(): void 'WHERE city_id < 1 /* test */' . 'ORDER BY city_id ASC ' . 'LIMIT 0, 1 ' . - 'INTO OUTFILE "/dev/null"' + 'INTO OUTFILE "/dev/null"', ); + $this->assertNotNull($parser->list); $this->assertEquals( '0, 1 INTO OUTFILE "/dev/null"', Query::getClause( $parser->statements[0], $parser->list, 'LIMIT', - 0 - ) + 0, + ), ); // Assert it returns all clauses between FROM and LIMIT $this->assertEquals( @@ -513,8 +509,8 @@ public function testGetClause(): void $parser->statements[0], $parser->list, 'FROM', - 'LIMIT' - ) + 'LIMIT', + ), ); // Assert it returns all clauses between SELECT and LIMIT $this->assertEquals( @@ -523,8 +519,8 @@ public function testGetClause(): void $parser->statements[0], $parser->list, 'LIMIT', - 'SELECT' - ) + 'SELECT', + ), ); /* Assertion 2 */ @@ -532,31 +528,32 @@ public function testGetClause(): void 'DELETE FROM `renewal` ' . 'WHERE number = "1DB" AND actionDate <= CURRENT_DATE() ' . 'ORDER BY id ASC ' . - 'LIMIT 1' + 'LIMIT 1', ); + $this->assertNotNull($parser->list); $this->assertEquals( 'number = "1DB" AND actionDate <= CURRENT_DATE()', Query::getClause( $parser->statements[0], $parser->list, - 'WHERE' - ) + 'WHERE', + ), ); $this->assertEquals( '1', Query::getClause( $parser->statements[0], $parser->list, - 'LIMIT' - ) + 'LIMIT', + ), ); $this->assertEquals( 'id ASC', Query::getClause( $parser->statements[0], $parser->list, - 'ORDER BY' - ) + 'ORDER BY', + ), ); /* Assertion 3 */ @@ -564,59 +561,62 @@ public function testGetClause(): void 'UPDATE `renewal` SET `some_column` = 1 ' . 'WHERE number = "1DB" AND actionDate <= CURRENT_DATE() ' . 'ORDER BY id ASC ' . - 'LIMIT 1' + 'LIMIT 1', ); + $this->assertNotNull($parser->list); $this->assertEquals( 'number = "1DB" AND actionDate <= CURRENT_DATE()', Query::getClause( $parser->statements[0], $parser->list, - 'WHERE' - ) + 'WHERE', + ), ); $this->assertEquals( '1', Query::getClause( $parser->statements[0], $parser->list, - 'LIMIT' - ) + 'LIMIT', + ), ); $this->assertEquals( 'id ASC', Query::getClause( $parser->statements[0], $parser->list, - 'ORDER BY' - ) + 'ORDER BY', + ), ); } public function testReplaceClause(): void { $parser = new Parser('SELECT *, (SELECT 1) FROM film LIMIT 0, 10;'); + $this->assertNotNull($parser->list); $this->assertEquals( 'SELECT *, (SELECT 1) FROM film WHERE film_id > 0 LIMIT 0, 10', Query::replaceClause( $parser->statements[0], $parser->list, - 'WHERE film_id > 0' - ) + 'WHERE film_id > 0', + ), ); $parser = new Parser( 'select supplier.city, supplier.id from supplier ' - . 'union select customer.city, customer.id from customer' + . 'union select customer.city, customer.id from customer', ); + $this->assertNotNull($parser->list); $this->assertEquals( 'select supplier.city, supplier.id from supplier ' . 'union select customer.city, customer.id from customer' - . ' ORDER BY city ', + . ' ORDER BY city', Query::replaceClause( $parser->statements[0], $parser->list, - 'ORDER BY city' - ) + 'ORDER BY city', + ), ); $parser = new Parser('SELECT * FROM `t` FOR UPDATE'); @@ -625,43 +625,65 @@ public function testReplaceClause(): void Query::replaceClause( $parser->statements[0], $parser->list, - 'LIMIT 0, 25' - ) + 'LIMIT 0, 25', + ), ); } public function testReplaceClauseOnlyKeyword(): void { $parser = new Parser('SELECT *, (SELECT 1) FROM film LIMIT 0, 10'); + $this->assertNotNull($parser->list); $this->assertEquals( - ' SELECT SQL_CALC_FOUND_ROWS *, (SELECT 1) FROM film LIMIT 0, 10', + 'SELECT SQL_CALC_FOUND_ROWS *, (SELECT 1) FROM film LIMIT 0, 10', Query::replaceClause( $parser->statements[0], $parser->list, 'SELECT SQL_CALC_FOUND_ROWS', null, - true - ) + true, + ), ); } public function testReplaceNonExistingPart(): void { $parser = new Parser('ALTER TABLE `sale_mast` OPTIMIZE PARTITION p3'); + $this->assertNotNull($parser->list); $this->assertEquals( - ' ALTER TABLE `sale_mast` OPTIMIZE PARTITION p3', + 'ALTER TABLE `sale_mast` OPTIMIZE PARTITION p3', Query::replaceClause( $parser->statements[0], $parser->list, 'ORDER BY', - '' - ) + '', + ), ); } + public function testReplaceClauseTableWithDots(): void + { + $query = 'SELECT * FROM `test.2024-11-01` ORDER BY `test.2024-11-01`.`id` ASC;'; + + $parser = new Parser($query); + + self::assertNotNull($parser->list); + + $fromClause = Query::replaceClause($parser->statements[0], $parser->list, 'ORDER BY', ''); + self::assertEquals('SELECT * FROM `test.2024-11-01`', $fromClause); + + $fromClause = Query::replaceClause($parser->statements[0], $parser->list, 'ORDER BY'); + self::assertEquals('SELECT * FROM `test.2024-11-01` ORDER BY', $fromClause); + + // With spaces + $fromClause = Query::replaceClause($parser->statements[0], $parser->list, 'ORDER BY ', ''); + self::assertEquals('SELECT * FROM `test.2024-11-01`', $fromClause); + } + public function testReplaceClauses(): void { $parser = new Parser('SELECT *, (SELECT 1) FROM film LIMIT 0, 10;'); + $this->assertNotNull($parser->list); $this->assertSame('', Query::replaceClauses($parser->statements[0], $parser->list, [])); $this->assertEquals( 'SELECT *, (SELECT 1) FROM film WHERE film_id > 0 LIMIT 0, 10', @@ -673,8 +695,8 @@ public function testReplaceClauses(): void 'WHERE', 'WHERE film_id > 0', ], - ] - ) + ], + ), ); $parser = new Parser( @@ -683,14 +705,15 @@ public function testReplaceClauses(): void 'FROM `city` ' . 'WHERE city_id < 1 ' . 'ORDER BY city_id ASC ' . - 'LIMIT 0, 1 ' + 'LIMIT 0, 1 ', ); + $this->assertNotNull($parser->list); $this->assertEquals( 'SELECT c.city_id, c.country_id ' . 'INTO OUTFILE "/dev/null" ' . - 'FROM city AS c ' . + 'FROM city AS c ' . 'ORDER BY city_id ASC ' . - 'LIMIT 0, 10 ', + 'LIMIT 0, 10', Query::replaceClauses( $parser->statements[0], $parser->list, @@ -707,8 +730,8 @@ public function testReplaceClauses(): void 'LIMIT', 'LIMIT 0, 10', ], - ] - ) + ], + ), ); } @@ -719,6 +742,7 @@ public function testGetFirstStatement(): void [$statement, $query, $delimiter] = Query::getFirstStatement($query, $delimiter); $this->assertNull($statement); $this->assertEquals('USE saki', $query); + $this->assertNull($delimiter); $query = 'USE sakila; ' . '/*test comment*/' . @@ -743,5 +767,7 @@ public function testGetFirstStatement(): void [$statement, $query, $delimiter] = Query::getFirstStatement($query, $delimiter); $this->assertEquals('SELECT * FROM actor WHERE last_name = "abc"$$', $statement); + $this->assertSame('', $query); + $this->assertSame('$$', $delimiter); } } diff --git a/tests/Utils/RoutineTest.php b/tests/Utils/RoutineTest.php deleted file mode 100644 index 2bdf11d6b..000000000 --- a/tests/Utils/RoutineTest.php +++ /dev/null @@ -1,321 +0,0 @@ -assertEquals($expected, Routine::getReturnType($def)); - } - - /** - * @return array>> - * @psalm-return list - */ - public static function getReturnTypeProvider(): array - { - return [ - [ - '', - [ - '', - '', - '', - '', - '', - ], - ], - [ - 'TEXT', - [ - '', - '', - 'TEXT', - '', - '', - ], - ], - [ - 'INT(20)', - [ - '', - '', - 'INT', - '20', - '', - ], - ], - [ - 'INT UNSIGNED', - [ - '', - '', - 'INT', - '', - 'UNSIGNED', - ], - ], - [ - 'VARCHAR(1) CHARSET utf8', - [ - '', - '', - 'VARCHAR', - '1', - 'utf8', - ], - ], - [ - 'ENUM(\'a\', \'b\') CHARSET latin1', - [ - '', - '', - 'ENUM', - '\'a\',\'b\'', - 'latin1', - ], - ], - [ - 'DECIMAL(5,2) UNSIGNED ZEROFILL', - [ - '', - '', - 'DECIMAL', - '5,2', - 'UNSIGNED ZEROFILL', - ], - ], - [ - 'SET(\'test\'\'esc"\', \'more\\\'esc\')', - [ - '', - '', - 'SET', - '\'test\'\'esc"\',\'more\\\'esc\'', - '', - ], - ], - ]; - } - - /** - * @param string[] $expected - * - * @dataProvider getParameterProvider - */ - public function testGetParameter(string $def, array $expected): void - { - $this->assertEquals($expected, Routine::getParameter($def)); - } - - /** - * @return array>> - * @psalm-return list - */ - public static function getParameterProvider(): array - { - return [ - [ - '', - [ - '', - '', - '', - '', - '', - ], - ], - [ - '`foo` TEXT', - [ - '', - 'foo', - 'TEXT', - '', - '', - ], - ], - [ - '`foo` INT(20)', - [ - '', - 'foo', - 'INT', - '20', - '', - ], - ], - [ - 'IN `fo``fo` INT UNSIGNED', - [ - 'IN', - 'fo`fo', - 'INT', - '', - 'UNSIGNED', - ], - ], - [ - 'OUT bar VARCHAR(1) CHARSET utf8', - [ - 'OUT', - 'bar', - 'VARCHAR', - '1', - 'utf8', - ], - ], - [ - '`"baz\'\'` ENUM(\'a\', \'b\') CHARSET latin1', - [ - '', - '"baz\'\'', - 'ENUM', - '\'a\',\'b\'', - 'latin1', - ], - ], - [ - 'INOUT `foo` DECIMAL(5,2) UNSIGNED ZEROFILL', - [ - 'INOUT', - 'foo', - 'DECIMAL', - '5,2', - 'UNSIGNED ZEROFILL', - ], - ], - [ - '`foo``s func` SET(\'test\'\'esc"\', \'more\\\'esc\')', - [ - '', - 'foo`s func', - 'SET', - '\'test\'\'esc"\',\'more\\\'esc\'', - '', - ], - ], - ]; - } - - /** - * @param array $expected - * @psalm-param array{ - * num: int, - * dir: string[], - * name: string[], - * type: string[], - * length: string[], - * length_arr: string[][], - * opts: string[] - * } $expected - * - * @dataProvider getParametersProvider - */ - public function testGetParameters(string $query, array $expected): void - { - $parser = new Parser($query); - $this->assertEquals($expected, Routine::getParameters($parser->statements[0])); - } - - /** - * @return array>> - * @psalm-return list - */ - public static function getParametersProvider(): array - { - return [ - [ - 'CREATE PROCEDURE `foo`() SET @A=0', - [ - 'num' => 0, - 'dir' => [], - 'name' => [], - 'type' => [], - 'length' => [], - 'length_arr' => [], - 'opts' => [], - ], - ], - [ - 'CREATE DEFINER=`user\\`@`somehost``(` FUNCTION `foo```(`baz` INT) BEGIN SELECT NULL; END', - [ - 'num' => 1, - 'dir' => [0 => ''], - 'name' => [0 => 'baz'], - 'type' => [0 => 'INT'], - 'length' => [0 => ''], - 'length_arr' => [ - 0 => [], - ], - 'opts' => [0 => ''], - ], - ], - [ - 'CREATE PROCEDURE `foo`(IN `baz\\)` INT(25) zerofill unsigned) BEGIN SELECT NULL; END', - [ - 'num' => 1, - 'dir' => [0 => 'IN'], - 'name' => [0 => 'baz\\)'], - 'type' => [0 => 'INT'], - 'length' => [0 => '25'], - 'length_arr' => [ - 0 => ['25'], - ], - 'opts' => [0 => 'UNSIGNED ZEROFILL'], - ], - ], - [ - 'CREATE PROCEDURE `foo`(IN `baz\\` INT(001) zerofill, out bazz varchar(15) charset utf8) ' . - 'BEGIN SELECT NULL; END', - [ - 'num' => 2, - 'dir' => [ - 0 => 'IN', - 1 => 'OUT', - ], - 'name' => [ - 0 => 'baz\\', - 1 => 'bazz', - ], - 'type' => [ - 0 => 'INT', - 1 => 'VARCHAR', - ], - 'length' => [ - 0 => '1', - 1 => '15', - ], - 'length_arr' => [ - 0 => ['1'], - 1 => ['15'], - ], - 'opts' => [ - 0 => 'ZEROFILL', - 1 => 'utf8', - ], - ], - ], - ]; - } -} diff --git a/tests/Utils/TableTest.php b/tests/Utils/TableTest.php index e0e7924e3..c96f55b12 100644 --- a/tests/Utils/TableTest.php +++ b/tests/Utils/TableTest.php @@ -5,43 +5,26 @@ namespace PhpMyAdmin\SqlParser\Tests\Utils; use PhpMyAdmin\SqlParser\Parser; +use PhpMyAdmin\SqlParser\Statements\CreateStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PhpMyAdmin\SqlParser\Utils\ForeignKey; use PhpMyAdmin\SqlParser\Utils\Table; +use PHPUnit\Framework\Attributes\DataProvider; class TableTest extends TestCase { - /** - * @param array[] $expected - * @psalm-param list $expected - * - * @dataProvider getForeignKeysProvider - */ + /** @param list $expected */ + #[DataProvider('getForeignKeysProvider')] public function testGetForeignKeys(string $query, array $expected): void { $parser = new Parser($query); - $this->assertEquals($expected, Table::getForeignKeys($parser->statements[0])); + $this->assertInstanceOf(CreateStatement::class, $parser->statements[0]); + + $result = $parser->statements[0]->getForeignKeys(); + $this->assertEquals($expected, $result); } - /** - * @return array[]>> - * @psalm-return list}> - */ + /** @return list}> */ public static function getForeignKeysProvider(): array { return [ @@ -70,31 +53,28 @@ public static function getForeignKeysProvider(): array REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=16050 DEFAULT CHARSET=utf8', [ - [ - 'constraint' => 'fk_payment_customer', - 'index_list' => ['customer_id'], - 'ref_db_name' => null, - 'ref_table_name' => 'customer', - 'ref_index_list' => ['customer_id'], - 'on_update' => 'CASCADE', - ], - [ - 'constraint' => 'fk_payment_rental', - 'index_list' => ['rental_id'], - 'ref_db_name' => null, - 'ref_table_name' => 'rental', - 'ref_index_list' => ['rental_id'], - 'on_delete' => 'SET_NULL', - 'on_update' => 'CASCADE', - ], - [ - 'constraint' => 'fk_payment_staff', - 'index_list' => ['staff_id'], - 'ref_db_name' => null, - 'ref_table_name' => 'staff', - 'ref_index_list' => ['staff_id'], - 'on_update' => 'CASCADE', - ], + new ForeignKey( + constraint: 'fk_payment_customer', + indexList: ['customer_id'], + refTableName: 'customer', + refIndexList: ['customer_id'], + onUpdate: 'CASCADE', + ), + new ForeignKey( + constraint: 'fk_payment_rental', + indexList: ['rental_id'], + refTableName: 'rental', + refIndexList: ['rental_id'], + onDelete: 'SET_NULL', + onUpdate: 'CASCADE', + ), + new ForeignKey( + constraint: 'fk_payment_staff', + indexList: ['staff_id'], + refTableName: 'staff', + refIndexList: ['staff_id'], + onUpdate: 'CASCADE', + ), ], ], [ @@ -123,14 +103,13 @@ public static function getForeignKeysProvider(): array CONSTRAINT `fk_address_city` FOREIGN KEY (`city_id`) REFERENCES `city` (`city_id`) ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=606 DEFAULT CHARSET=utf8', [ - [ - 'constraint' => 'fk_address_city', - 'index_list' => ['city_id'], - 'ref_db_name' => null, - 'ref_table_name' => 'city', - 'ref_index_list' => ['city_id'], - 'on_update' => 'CASCADE', - ], + new ForeignKey( + constraint: 'fk_address_city', + indexList: ['city_id'], + refTableName: 'city', + refIndexList: ['city_id'], + onUpdate: 'CASCADE', + ), ], ], ]; @@ -146,12 +125,12 @@ public static function getForeignKeysProvider(): array * on_update_current_timestamp?: bool, * expr?: string * }> $expected - * - * @dataProvider getFieldsProvider */ + #[DataProvider('getFieldsProvider')] public function testGetFields(string $query, array $expected): void { $parser = new Parser($query); + $this->assertInstanceOf(CreateStatement::class, $parser->statements[0]); $this->assertEquals($expected, Table::getFields($parser->statements[0])); } @@ -246,13 +225,11 @@ public static function getFieldsProvider(): array 'c' => [ 'type' => 'INT', 'timestamp_not_null' => false, - 'generated' => true, 'expr' => '(a mod 10)', ], 'd' => [ 'type' => 'VARCHAR', 'timestamp_not_null' => false, - 'generated' => true, 'expr' => '(left(b,5))', ], ], diff --git a/tests/Utils/TokensTest.php b/tests/Utils/TokensTest.php deleted file mode 100644 index 3cf690559..000000000 --- a/tests/Utils/TokensTest.php +++ /dev/null @@ -1,122 +0,0 @@ -[] $find - * @param Token[] $replace - * - * @dataProvider replaceTokensProvider - */ - public function testReplaceTokens(string $list, array $find, array $replace, string $expected): void - { - $this->assertEquals($expected, Tokens::replaceTokens($list, $find, $replace)); - } - - /** - * @return array[]|Token[]>> - * @psalm-return list>, Token[], string}> - */ - public static function replaceTokensProvider(): array - { - return [ - [ - 'SELECT * FROM /*x*/a/*c*/.b', - [ - ['value_str' => 'a'], - ['token' => '.'], - ], - [ - new Token('c'), - new Token('.'), - ], - 'SELECT * FROM /*x*/c.b', - ], - ]; - } - - /** - * @param array $pattern - * - * @dataProvider matchProvider - */ - public function testMatch(Token $token, array $pattern, bool $expected): void - { - $this->assertSame($expected, Tokens::match($token, $pattern)); - } - - /** - * @return array>> - * @psalm-return list, bool}> - */ - public static function matchProvider(): array - { - return [ - [ - new Token(''), - [], - true, - ], - - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['token' => '"abc"'], - true, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['value' => 'abc'], - true, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['value_str' => 'ABC'], - true, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['type' => Token::TYPE_STRING], - true, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['flags' => Token::FLAG_STRING_DOUBLE_QUOTES], - true, - ], - - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['token' => '"abcd"'], - false, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['value' => 'abcd'], - false, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['value_str' => 'ABCd'], - false, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['type' => Token::TYPE_NUMBER], - false, - ], - [ - new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), - ['flags' => Token::FLAG_STRING_SINGLE_QUOTES], - false, - ], - ]; - } -} diff --git a/tests/benchmarks/UtfStringBench.php b/tests/benchmarks/UtfStringBench.php index 868fe70d1..1c3114e44 100644 --- a/tests/benchmarks/UtfStringBench.php +++ b/tests/benchmarks/UtfStringBench.php @@ -6,62 +6,52 @@ use PhpMyAdmin\SqlParser\UtfString; -use function chr; use function file_get_contents; class UtfStringBench { - /** @var string */ - private $testContents; + private string $testContents = ''; /** * @BeforeMethods("setUp") * @Iterations(20) * @Revs(4) * @OutputTimeUnit("milliseconds") - * @Assert("mode(variant.time.avg) < 100 milliseconds +/- 10%") - * @Assert("mode(variant.time.avg) > 25 milliseconds +/- 10%") + * @Assert("mode(variant.time.avg) < 40 milliseconds +/- 10%") */ public function benchBuildUtfString(): void { $str1 = new UtfString($this->testContents); for ($i = 0; $i < $str1->length(); $i++) { - $str1[$i];// Make offset offsetGet work + // @phpstan-ignore-next-line + $str1[$i]; // Make offset offsetGet work } } - /** - * @BeforeMethods("setUp") - * @Iterations(2) - * @Revs(2) - * @OutputTimeUnit("microseconds") - * @Assert("mode(variant.time.avg) < 800 microseconds +/- 20%") - * @Assert("mode(variant.time.avg) > 60 microseconds +/- 10%") - */ - public function benchGetCharLength(): void - { - UtfString::getCharLength(chr(0x00)); // 00000000 - UtfString::getCharLength(chr(0x7F)); // 01111111 - - UtfString::getCharLength(chr(0xC0)); // 11000000 - UtfString::getCharLength(chr(0xDF)); // 11011111 - - UtfString::getCharLength(chr(0xE0)); // 11100000 - UtfString::getCharLength(chr(0xEF)); // 11101111 - - UtfString::getCharLength(chr(0xF0)); // 11110000 - UtfString::getCharLength(chr(0xF7)); // 11110111 - - UtfString::getCharLength(chr(0xF8)); // 11111000 - UtfString::getCharLength(chr(0xFB)); // 11111011 - - UtfString::getCharLength(chr(0xFC)); // 11111100 - UtfString::getCharLength(chr(0xFD)); // 11111101 - } - public function setUp(): void { $contentsPath = __DIR__ . '/../../LICENSE.txt'; $this->testContents = (string) file_get_contents($contentsPath); } + + /** + * @Iterations(20) + * @Revs(4) + * @OutputTimeUnit("microseconds") + * @Assert("mode(variant.time.avg) < 120 microseconds +/- 10%") + */ + public function benchUtfStringRandomAccessWithUnicode(): void + { + $text = 'abcdefghijklmnopqrstuvwxyz + áéíóúýěřťǔǐǒǎšďȟǰǩľžčǚň + 🦋😄😃😀😊😉😍😘😚😗😂👿😮😨😱😠😡😤😖😆😋👯 + P\xf8\xed\xb9ern\xec \xbelu\xbbou\xe8k\xfd k\xf3d \xfap\xecl \xef\xe1belsk\xe9 k\xf3dy + xℤⅿↈⅬ⅀ↆℜℝ⅗ℾ℧ⅰℓⅯⅵⅣ⅒21⅞'; + + $str1 = new UtfString($text); + $str1->offsetGet(10); + $str1->offsetGet(100); + $str1->offsetGet(20); + $str1->offsetGet(0); + } } diff --git a/tests/data/bugs/fuzz1.out b/tests/data/bugs/fuzz1.out index c7a03aba8..6315b6e83 100644 --- a/tests/data/bugs/fuzz1.out +++ b/tests/data/bugs/fuzz1.out @@ -2,18 +2,26 @@ "query": "ALTER..2", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER..2", "len": 8, "last": 8, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 5 }, @@ -31,30 +43,36 @@ "token": ".2", "value": 0.2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 2, "position": 6 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -68,9 +86,7 @@ "last": 0 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -85,7 +101,7 @@ [ "Unexpected beginning of statement.", { - "@type": "@4" + "@type": "@6" }, 0 ] diff --git a/tests/data/bugs/fuzz2.out b/tests/data/bugs/fuzz2.out index 335ea320f..8d74555e5 100644 --- a/tests/data/bugs/fuzz2.out +++ b/tests/data/bugs/fuzz2.out @@ -2,18 +2,26 @@ "query": "WITH](", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "WITH](", "len": 6, "last": 6, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": "]", "value": "]", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 4 }, @@ -31,30 +43,36 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 5 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -71,9 +89,7 @@ "last": 0 } ], - "brackets": 1, - "strict": false, - "errors": [] + "brackets": 1 }, "errors": { "lexer": [ @@ -88,21 +104,21 @@ [ "The name of the CTE was expected.", { - "@type": "@3" + "@type": "@4" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@3" + "@type": "@4" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@3" + "@type": "@4" }, 0 ] diff --git a/tests/data/bugs/fuzz3.out b/tests/data/bugs/fuzz3.out index 6b9ee9903..882e7a46a 100644 --- a/tests/data/bugs/fuzz3.out +++ b/tests/data/bugs/fuzz3.out @@ -2,18 +2,26 @@ "query": "WITH*/A(", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "WITH*/A(", "len": 8, "last": 8, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 4 }, @@ -31,7 +43,11 @@ "token": "A", "value": "A", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 6 }, @@ -40,30 +56,36 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -73,9 +95,9 @@ "withers": { "A": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "A", "columns": [], - "statement": null + "statement": null, + "name": "A" } }, "cteStatementParser": null, @@ -87,9 +109,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -97,14 +117,14 @@ [ "A closing bracket was expected.", { - "@type": "@6" + "@type": "@10" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@6" + "@type": "@10" }, 0 ] diff --git a/tests/data/bugs/fuzz4.out b/tests/data/bugs/fuzz4.out index 2801189a1..b1cd9c2d8 100644 --- a/tests/data/bugs/fuzz4.out +++ b/tests/data/bugs/fuzz4.out @@ -2,18 +2,26 @@ "query": "ALTeR=SET", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTeR=SET", "len": 9, "last": 9, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTeR", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 5 }, @@ -31,30 +43,34 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 6 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -73,15 +89,13 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [], "first": 1, "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/fuzz5.out b/tests/data/bugs/fuzz5.out index ee8ec15e4..cd03e8035 100644 --- a/tests/data/bugs/fuzz5.out +++ b/tests/data/bugs/fuzz5.out @@ -2,18 +2,26 @@ "query": "+0xO", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "+0xO", "len": 4, "last": 4, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 3, + "idx": 3, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "+0x", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 1, "position": 0 }, @@ -22,37 +30,41 @@ "token": "O", "value": "O", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 3 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 3, - "idx": 3 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -67,7 +79,7 @@ [ "Unexpected beginning of statement.", { - "@type": "@3" + "@type": "@4" }, 0 ] diff --git a/tests/data/bugs/fuzz6.out b/tests/data/bugs/fuzz6.out index fce6bf5b7..4bb688456 100644 --- a/tests/data/bugs/fuzz6.out +++ b/tests/data/bugs/fuzz6.out @@ -2,18 +2,26 @@ "query": "-+0x!", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-+0x!", "len": 5, "last": 5, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 3, + "idx": 3, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-+0x", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 9, "position": 0 }, @@ -22,37 +30,41 @@ "token": "!", "value": "!", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 4 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 3, - "idx": 3 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh14.out b/tests/data/bugs/gh14.out index 3ae7c8843..3fdb252ed 100644 --- a/tests/data/bugs/gh14.out +++ b/tests/data/bugs/gh14.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE\n `actor` MODIFY `actor_id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,\n AUTO_INCREMENT = 201;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE\n `actor` MODIFY `actor_id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,\n AUTO_INCREMENT = 201;", "len": 113, "last": 113, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 29, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`actor`", "value": "actor", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +89,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 24 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,7 +111,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 31 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -103,7 +133,9 @@ "token": "SMALLINT", "value": "SMALLINT", "keyword": "SMALLINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 42 }, @@ -112,7 +144,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 50 }, @@ -121,7 +157,11 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 51 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 52 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -148,7 +192,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 54 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -166,7 +214,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 63 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -184,7 +236,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 72 }, @@ -193,7 +247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 86 }, @@ -202,7 +258,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -211,7 +269,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 92 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -229,7 +291,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 107 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -247,7 +313,9 @@ "token": "201", "value": 201, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 109 }, @@ -256,30 +324,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 112 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@35" + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 29 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -299,20 +371,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -332,53 +390,39 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@16" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@20" }, { - "@type": "@16" + "@type": "@21" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -405,9 +449,7 @@ "last": 27 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh16.out b/tests/data/bugs/gh16.out index 20930c712..b9259b26a 100644 --- a/tests/data/bugs/gh16.out +++ b/tests/data/bugs/gh16.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `jos_core_acl_aro` (\n `id` int(11) NOT NULL,\n `section_value` varchar(240) NOT NULL DEFAULT '0',\n `value` varchar(240) NOT NULL DEFAULT '',\n `order_value` int(11) NOT NULL DEFAULT '0',\n `name` varchar(255) NOT NULL DEFAULT '',\n `hidden` int(11) NOT NULL DEFAULT '0',\n PRIMARY KEY (`id`),\n UNIQUE KEY `jos_section_value_value_aro` (`section_value`(100),`value`(15)) USING BTREE,\n KEY `jos_gacl_hidden_aro` (`hidden`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `jos_core_acl_aro` (\n `id` int(11) NOT NULL,\n `section_value` varchar(240) NOT NULL DEFAULT '0',\n `value` varchar(240) NOT NULL DEFAULT '',\n `order_value` int(11) NOT NULL DEFAULT '0',\n `name` varchar(255) NOT NULL DEFAULT '',\n `hidden` int(11) NOT NULL DEFAULT '0',\n PRIMARY KEY (`id`),\n UNIQUE KEY `jos_section_value_value_aro` (`section_value`(100),`value`(15)) USING BTREE,\n KEY `jos_gacl_hidden_aro` (`hidden`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1", "len": 476, "last": 476, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 134, + "idx": 134, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`jos_core_acl_aro`", "value": "jos_core_acl_aro", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 32 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +113,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 36 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +135,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 41 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 44 }, @@ -121,7 +157,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 45 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 47 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -148,7 +192,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 49 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 57 }, @@ -166,7 +214,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -175,7 +225,9 @@ "token": "`section_value`", "value": "section_value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 61 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -193,7 +247,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 77 }, @@ -202,7 +258,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 84 }, @@ -211,7 +269,9 @@ "token": "240", "value": 240, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 85 }, @@ -220,7 +280,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 88 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -238,7 +302,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 90 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -256,7 +324,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 99 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -274,7 +346,11 @@ "token": "'0'", "value": "0", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 107 }, @@ -283,7 +359,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 110 }, @@ -292,7 +370,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -301,7 +381,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 114 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -319,7 +403,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 122 }, @@ -328,7 +414,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 129 }, @@ -337,7 +425,9 @@ "token": "240", "value": 240, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 130 }, @@ -346,7 +436,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 133 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 134 }, @@ -364,7 +458,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 135 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, @@ -382,7 +480,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 144 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 151 }, @@ -400,7 +502,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@37" + }, "flags": 1, "position": 152 }, @@ -409,7 +513,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 154 }, @@ -418,7 +524,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -427,7 +535,9 @@ "token": "`order_value`", "value": "order_value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 158 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -445,7 +557,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 172 }, @@ -454,7 +568,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 175 }, @@ -463,7 +579,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 176 }, @@ -472,7 +590,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 178 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 179 }, @@ -490,7 +612,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 180 }, @@ -499,7 +623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 188 }, @@ -508,7 +634,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 189 }, @@ -517,7 +645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 196 }, @@ -526,7 +656,9 @@ "token": "'0'", "value": "0", "keyword": null, - "type": 7, + "type": { + "@type": "@37" + }, "flags": 1, "position": 197 }, @@ -535,7 +667,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 200 }, @@ -544,7 +678,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 201 }, @@ -553,7 +689,9 @@ "token": "`name`", "value": "name", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 204 }, @@ -562,7 +700,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 210 }, @@ -571,7 +711,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 211 }, @@ -580,7 +722,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 218 }, @@ -589,7 +733,9 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 219 }, @@ -598,7 +744,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 222 }, @@ -607,7 +755,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 223 }, @@ -616,7 +766,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 224 }, @@ -625,7 +777,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 232 }, @@ -634,7 +788,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 233 }, @@ -643,7 +799,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 240 }, @@ -652,7 +810,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@37" + }, "flags": 1, "position": 241 }, @@ -661,7 +821,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 243 }, @@ -670,7 +832,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 244 }, @@ -679,7 +843,9 @@ "token": "`hidden`", "value": "hidden", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 247 }, @@ -688,7 +854,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 255 }, @@ -697,7 +865,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 256 }, @@ -706,7 +876,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 259 }, @@ -715,7 +887,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 260 }, @@ -724,7 +898,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 262 }, @@ -733,7 +909,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -742,7 +920,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 264 }, @@ -751,7 +931,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 272 }, @@ -760,7 +942,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 273 }, @@ -769,7 +953,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 280 }, @@ -778,7 +964,9 @@ "token": "'0'", "value": "0", "keyword": null, - "type": 7, + "type": { + "@type": "@37" + }, "flags": 1, "position": 281 }, @@ -787,7 +975,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 284 }, @@ -796,7 +986,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -805,7 +997,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 288 }, @@ -814,7 +1008,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 299 }, @@ -823,7 +1019,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 300 }, @@ -832,7 +1030,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 301 }, @@ -841,7 +1041,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 305 }, @@ -850,7 +1052,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 306 }, @@ -859,7 +1063,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 307 }, @@ -868,7 +1074,9 @@ "token": "UNIQUE KEY", "value": "UNIQUE KEY", "keyword": "UNIQUE KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 310 }, @@ -877,7 +1085,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 320 }, @@ -886,7 +1096,9 @@ "token": "`jos_section_value_value_aro`", "value": "jos_section_value_value_aro", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 321 }, @@ -895,7 +1107,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 350 }, @@ -904,7 +1118,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 351 }, @@ -913,7 +1129,9 @@ "token": "`section_value`", "value": "section_value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 352 }, @@ -922,7 +1140,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 367 }, @@ -931,7 +1151,9 @@ "token": "100", "value": 100, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 368 }, @@ -940,7 +1162,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 371 }, @@ -949,7 +1173,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 372 }, @@ -958,7 +1184,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 373 }, @@ -967,7 +1195,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 380 }, @@ -976,7 +1206,9 @@ "token": "15", "value": 15, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 381 }, @@ -985,7 +1217,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 383 }, @@ -994,7 +1228,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 384 }, @@ -1003,7 +1239,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 385 }, @@ -1012,7 +1250,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 386 }, @@ -1021,7 +1261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 391 }, @@ -1030,7 +1272,9 @@ "token": "BTREE", "value": "BTREE", "keyword": "BTREE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 392 }, @@ -1039,7 +1283,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 397 }, @@ -1048,7 +1294,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 398 }, @@ -1057,7 +1305,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 401 }, @@ -1066,7 +1316,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 404 }, @@ -1075,7 +1327,9 @@ "token": "`jos_gacl_hidden_aro`", "value": "jos_gacl_hidden_aro", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 405 }, @@ -1084,7 +1338,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 426 }, @@ -1093,7 +1349,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 427 }, @@ -1102,7 +1360,9 @@ "token": "`hidden`", "value": "hidden", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 428 }, @@ -1111,7 +1371,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 436 }, @@ -1120,7 +1382,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 437 }, @@ -1129,7 +1393,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 438 }, @@ -1138,7 +1404,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 439 }, @@ -1147,7 +1415,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 440 }, @@ -1156,7 +1426,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 446 }, @@ -1165,7 +1437,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 447 }, @@ -1174,7 +1450,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 453 }, @@ -1183,7 +1461,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 454 }, @@ -1192,7 +1472,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 469 }, @@ -1201,30 +1483,34 @@ "token": "latin1", "value": "latin1", "keyword": null, - "type": 0, + "type": { + "@type": "@137" + }, "flags": 0, "position": 470 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 134, - "idx": 134 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1272,7 +1558,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1296,7 +1583,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1335,7 +1623,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1374,7 +1663,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1413,7 +1703,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1452,7 +1743,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1582,9 +1874,7 @@ "last": 133 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh202.out b/tests/data/bugs/gh202.out index 942280786..354443308 100644 --- a/tests/data/bugs/gh202.out +++ b/tests/data/bugs/gh202.out @@ -2,18 +2,26 @@ "query": "update tbl_customer t set t.`description`=:yp where t.id=1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "update tbl_customer t set t.`description`=:yp where t.id=1;", "len": 59, "last": 59, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "update", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "tbl_customer", "value": "tbl_customer", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -49,7 +67,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 20 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "set", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -85,7 +111,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 26 }, @@ -94,7 +122,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 27 }, @@ -103,7 +135,11 @@ "token": "`description`", "value": "description", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 28 }, @@ -112,7 +148,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 41 }, @@ -121,7 +159,9 @@ "token": ":yp", "value": "yp", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 16, "position": 42 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +181,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -157,7 +203,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 52 }, @@ -166,7 +214,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 53 }, @@ -175,7 +225,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 54 }, @@ -184,7 +236,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 56 }, @@ -193,7 +247,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 57 }, @@ -202,30 +260,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 58 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@30" + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -259,7 +321,10 @@ "id" ], "isOperator": false, - "expr": "t.id=1" + "expr": "t.id=1", + "leftOperand": "t.id", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -273,9 +338,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh234.out b/tests/data/bugs/gh234.out index d77f55a7a..a6b78dde9 100644 --- a/tests/data/bugs/gh234.out +++ b/tests/data/bugs/gh234.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `mail_template` CHANGE COLUMN `mtpl_group` `mtpl_group` ENUM('ORDER') NULL DEFAULT NULL ;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `mail_template` CHANGE COLUMN `mtpl_group` `mtpl_group` ENUM('ORDER') NULL DEFAULT NULL ;", "len": 101, "last": 101, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 27, + "idx": 27, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`mail_template`", "value": "mail_template", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -67,7 +89,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 28 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -85,7 +111,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -103,7 +133,9 @@ "token": "`mtpl_group`", "value": "mtpl_group", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 42 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -121,7 +155,9 @@ "token": "`mtpl_group`", "value": "mtpl_group", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 55 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -139,7 +177,9 @@ "token": "ENUM", "value": "ENUM", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 68 }, @@ -148,7 +188,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 72 }, @@ -157,7 +201,11 @@ "token": "'ORDER'", "value": "ORDER", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 73 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 80 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -184,7 +236,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -202,7 +258,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 87 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -220,7 +280,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 95 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -238,30 +302,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 100 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": null } - ], - "count": 27, - "idx": 27 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -281,20 +349,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -315,43 +369,43 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@17" }, { - "@type": "@15" + "@type": "@18" }, { - "@type": "@16" + "@type": "@19" }, { - "@type": "@17" + "@type": "@20" }, { - "@type": "@18" + "@type": "@22" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" }, { - "@type": "@22" + "@type": "@27" }, { - "@type": "@23" + "@type": "@28" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" } ] } @@ -366,9 +420,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh317.out b/tests/data/bugs/gh317.out index 2e68ce1dc..50188cf93 100644 --- a/tests/data/bugs/gh317.out +++ b/tests/data/bugs/gh317.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `demo` ADD KEY `IDX_REPAIR` (`REPAIR`);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `demo` ADD KEY `IDX_REPAIR` (`REPAIR`);", "len": 51, "last": 51, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`demo`", "value": "demo", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +111,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 23 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +133,9 @@ "token": "`IDX_REPAIR`", "value": "IDX_REPAIR", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -121,7 +155,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 40 }, @@ -130,7 +168,9 @@ "token": "`REPAIR`", "value": "REPAIR", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 41 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 49 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +237,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -221,13 +253,13 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@17" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" } ] } @@ -242,9 +274,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh412.out b/tests/data/bugs/gh412.out index 9f47182c2..1e101e37f 100644 --- a/tests/data/bugs/gh412.out +++ b/tests/data/bugs/gh412.out @@ -2,18 +2,26 @@ "query": "SELECT 1, 2, ?, 3", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 1, 2, ?, 3", "len": 17, "last": 17, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 10 }, @@ -67,7 +91,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 11 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -85,7 +113,11 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 16, "position": 13 }, @@ -94,7 +126,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 14 }, @@ -103,7 +137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -112,30 +148,34 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -185,11 +225,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -197,7 +237,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -206,9 +246,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh478.out b/tests/data/bugs/gh478.out index a2e44ff80..6c7173ed6 100644 --- a/tests/data/bugs/gh478.out +++ b/tests/data/bugs/gh478.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `MY_TABLE`\nMODIFY `FOO` INT(11) NULL,\nMODIFY `MY_COLUMN` ENUM('INSERT','UPDATE','DELETE','REPLACE') NULL,\nMODIFY `BAR` VARCHAR(255) NULL;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `MY_TABLE`\nMODIFY `FOO` INT(11) NULL,\nMODIFY `MY_COLUMN` ENUM('INSERT','UPDATE','DELETE','REPLACE') NULL,\nMODIFY `BAR` VARCHAR(255) NULL;\n", "len": 150, "last": 150, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 49, + "idx": 49, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`MY_TABLE`", "value": "MY_TABLE", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +111,9 @@ "token": "`FOO`", "value": "FOO", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 30 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +133,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 36 }, @@ -112,7 +144,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 39 }, @@ -121,7 +157,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 40 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 42 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -148,7 +192,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 48 }, @@ -166,7 +214,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -175,7 +225,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -193,7 +247,9 @@ "token": "`MY_COLUMN`", "value": "MY_COLUMN", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 57 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -211,7 +269,9 @@ "token": "ENUM", "value": "ENUM", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 69 }, @@ -220,7 +280,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 73 }, @@ -229,7 +291,11 @@ "token": "'INSERT'", "value": "INSERT", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 74 }, @@ -238,7 +304,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 82 }, @@ -247,7 +315,9 @@ "token": "'UPDATE'", "value": "UPDATE", "keyword": null, - "type": 7, + "type": { + "@type": "@32" + }, "flags": 1, "position": 83 }, @@ -256,7 +326,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 91 }, @@ -265,7 +337,9 @@ "token": "'DELETE'", "value": "DELETE", "keyword": null, - "type": 7, + "type": { + "@type": "@32" + }, "flags": 1, "position": 92 }, @@ -274,7 +348,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 100 }, @@ -283,7 +359,9 @@ "token": "'REPLACE'", "value": "REPLACE", "keyword": null, - "type": 7, + "type": { + "@type": "@32" + }, "flags": 1, "position": 101 }, @@ -292,7 +370,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 110 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -310,7 +392,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 112 }, @@ -319,7 +403,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 116 }, @@ -328,7 +414,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 117 }, @@ -337,7 +425,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 118 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -355,7 +447,9 @@ "token": "`BAR`", "value": "BAR", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 125 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -373,7 +469,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 131 }, @@ -382,7 +480,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 138 }, @@ -391,7 +491,9 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 139 }, @@ -400,7 +502,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 142 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, @@ -418,7 +524,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 144 }, @@ -427,7 +535,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 148 }, @@ -436,30 +548,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@55" + }, "flags": 0, "position": null } - ], - "count": 49, - "idx": 49 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -479,20 +593,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -512,41 +612,27 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@16" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@20" }, { - "@type": "@16" + "@type": "@21" }, { - "@type": "@17" + "@type": "@22" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -566,59 +652,45 @@ "partitions": null, "unknown": [ { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@33" }, { - "@type": "@28" + "@type": "@34" }, { - "@type": "@29" + "@type": "@35" }, { - "@type": "@30" + "@type": "@36" }, { - "@type": "@31" + "@type": "@37" }, { - "@type": "@32" + "@type": "@38" }, { - "@type": "@33" + "@type": "@39" }, { - "@type": "@34" + "@type": "@40" }, { - "@type": "@35" + "@type": "@41" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -638,22 +710,22 @@ "partitions": null, "unknown": [ { - "@type": "@42" + "@type": "@48" }, { - "@type": "@43" + "@type": "@49" }, { - "@type": "@44" + "@type": "@50" }, { - "@type": "@45" + "@type": "@51" }, { - "@type": "@46" + "@type": "@52" }, { - "@type": "@47" + "@type": "@53" } ] } @@ -668,9 +740,7 @@ "last": 46 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh492.out b/tests/data/bugs/gh492.out index 785585f4a..db73d01ee 100644 --- a/tests/data/bugs/gh492.out +++ b/tests/data/bugs/gh492.out @@ -2,18 +2,26 @@ "query": "UPDATE order\nSET price = ?\nWHERE orderid = ?", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE order\nSET price = ?\nWHERE orderid = ?", "len": 51, "last": 51, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "order", "value": "ORDER", "keyword": "ORDER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "price", "value": "price", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +111,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 28 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -103,7 +135,11 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 16, "position": 30 }, @@ -112,7 +148,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -121,7 +159,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 32 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +181,9 @@ "token": "orderid", "value": "orderid", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 40 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -157,7 +203,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 48 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -175,30 +225,34 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 16, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -220,7 +274,10 @@ "orderid" ], "isOperator": false, - "expr": "orderid = ?" + "expr": "orderid = ?", + "leftOperand": "orderid", + "operator": "=", + "rightOperand": "?" } ], "order": null, @@ -234,9 +291,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -244,14 +299,14 @@ [ "An expression was expected.", { - "@type": "@4" + "@type": "@6" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@4" + "@type": "@6" }, 0 ] diff --git a/tests/data/bugs/gh496.out b/tests/data/bugs/gh496.out index 624a921f5..fd34fce9b 100644 --- a/tests/data/bugs/gh496.out +++ b/tests/data/bugs/gh496.out @@ -2,18 +2,26 @@ "query": "SELECT COUNT(*) AS amount\nFROM one i\nJOIN two io ON io.id = i.id", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT COUNT(*) AS amount\nFROM one i\nJOIN two io ON io.id = i.id", "len": 71, "last": 71, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 35, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 8 }, @@ -40,7 +54,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 13 }, @@ -49,7 +67,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 14 }, @@ -58,7 +78,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -76,7 +100,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -94,7 +122,11 @@ "token": "amount", "value": "amount", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 20 }, @@ -103,7 +135,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -112,7 +146,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -130,7 +168,9 @@ "token": "one", "value": "one", "keyword": "ONE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -148,7 +190,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 39 }, @@ -157,7 +201,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -166,7 +212,9 @@ "token": "JOIN", "value": "JOIN", "keyword": "JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 41 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -184,7 +234,9 @@ "token": "two", "value": "two", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 49 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -202,7 +256,9 @@ "token": "io", "value": "io", "keyword": "IO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 53 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -220,7 +278,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -238,7 +300,9 @@ "token": "io", "value": "io", "keyword": "IO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 59 }, @@ -247,7 +311,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 61 }, @@ -256,7 +322,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 62 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -274,7 +344,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 65 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -292,7 +366,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 67 }, @@ -301,7 +377,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 68 }, @@ -310,30 +388,34 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 69 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 35, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -364,11 +446,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -397,14 +479,18 @@ "i" ], "isOperator": false, - "expr": "io.id = i.id" + "expr": "io.id = i.id", + "leftOperand": "io.id", + "operator": "=", + "rightOperand": "i.id" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -413,9 +499,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh498.out b/tests/data/bugs/gh498.out index 1b4e5d533..4f514bd51 100644 --- a/tests/data/bugs/gh498.out +++ b/tests/data/bugs/gh498.out @@ -2,18 +2,26 @@ "query": "SELECT ?\nFROM uno\nJOIN dos ON dos.id = uno.id\nLIMIT ? OFFSET ?", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT ?\nFROM uno\nJOIN dos ON dos.id = uno.id\nLIMIT ? OFFSET ?", "len": 63, "last": 63, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 32, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "uno", "value": "uno", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -85,7 +113,9 @@ "token": "JOIN", "value": "JOIN", "keyword": "JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -103,7 +135,9 @@ "token": "dos", "value": "dos", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 23 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -121,7 +157,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 28 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -139,7 +179,9 @@ "token": "dos", "value": "dos", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 31 }, @@ -148,7 +190,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 34 }, @@ -157,7 +203,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 35 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -175,7 +225,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@22" + }, "flags": 2, "position": 38 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -193,7 +247,9 @@ "token": "uno", "value": "uno", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 40 }, @@ -202,7 +258,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@22" + }, "flags": 16, "position": 43 }, @@ -211,7 +269,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 44 }, @@ -220,7 +280,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -229,7 +291,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -247,7 +313,9 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 16, "position": 53 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -265,7 +335,9 @@ "token": "OFFSET", "value": "OFFSET", "keyword": "OFFSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 55 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -283,30 +357,34 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 16, "position": 62 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 32 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -337,11 +415,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": { @@ -374,14 +452,18 @@ "uno" ], "isOperator": false, - "expr": "dos.id = uno.id" + "expr": "dos.id = uno.id", + "leftOperand": "dos.id", + "operator": "=", + "rightOperand": "uno.id" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -390,9 +472,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh499.out b/tests/data/bugs/gh499.out index b0b2715bf..82de99e2a 100644 --- a/tests/data/bugs/gh499.out +++ b/tests/data/bugs/gh499.out @@ -2,18 +2,26 @@ "query": "UPDATE\n users\nSET\n username = ?,\n id=155;\n\nUPDATE\n users\nSET\n username = :user_name,\n id=155;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE\n users\nSET\n username = ?,\n id=155;\n\nUPDATE\n users\nSET\n username = :user_name,\n id=155;", "len": 111, "last": 111, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 36, + "idx": 36, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 11 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +67,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 17 }, @@ -58,7 +78,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +135,11 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 16, "position": 36 }, @@ -112,7 +148,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 37 }, @@ -121,7 +159,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +170,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 43 }, @@ -139,7 +181,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 45 }, @@ -148,7 +192,11 @@ "token": "155", "value": 155, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 46 }, @@ -157,7 +205,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 49 }, @@ -166,7 +218,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -175,7 +229,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -184,7 +240,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -193,7 +251,9 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 63 }, @@ -202,7 +262,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -211,7 +273,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 69 }, @@ -220,7 +284,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -229,7 +295,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 77 }, @@ -238,7 +306,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -247,7 +317,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 86 }, @@ -256,7 +328,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -265,7 +339,9 @@ "token": ":user_name", "value": "user_name", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 16, "position": 88 }, @@ -274,7 +350,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 98 }, @@ -283,7 +361,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -292,7 +372,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 104 }, @@ -301,7 +383,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 106 }, @@ -310,7 +394,9 @@ "token": "155", "value": 155, "keyword": null, - "type": 6, + "type": { + "@type": "@23" + }, "flags": 0, "position": 107 }, @@ -319,30 +405,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@25" + }, "flags": 0, "position": 110 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@25" + }, "flags": 0, "position": null } - ], - "count": 36, - "idx": 36 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -422,9 +510,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh508.out b/tests/data/bugs/gh508.out index 085f75e6d..d555d434d 100644 --- a/tests/data/bugs/gh508.out +++ b/tests/data/bugs/gh508.out @@ -2,48 +2,56 @@ "query": "0X0F", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "0X0F", "len": 4, "last": 4, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 2, + "idx": 2, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "0X0F", "value": "0X0F", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 2, - "idx": 2 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh511.out b/tests/data/bugs/gh511.out index 3d8e2b645..759fbef3a 100644 --- a/tests/data/bugs/gh511.out +++ b/tests/data/bugs/gh511.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE users_type MODIFY limitations ENUM('tout', 'rien', 'bu', 'agence', 'agence_limite', 'n-1', 'agence_inactif');\nUPDATE users_type SET limitations = 'agence_inactif' WHERE id_users_type = 19;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE users_type MODIFY limitations ENUM('tout', 'rien', 'bu', 'agence', 'agence_limite', 'n-1', 'agence_inactif');\nUPDATE users_type SET limitations = 'agence_inactif' WHERE id_users_type = 19;\n", "len": 201, "last": 201, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 56, + "idx": 56, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "users_type", "value": "users_type", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +111,9 @@ "token": "limitations", "value": "limitations", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 30 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -103,7 +133,9 @@ "token": "ENUM", "value": "ENUM", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 42 }, @@ -112,7 +144,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 46 }, @@ -121,7 +157,11 @@ "token": "'tout'", "value": "tout", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 47 }, @@ -130,7 +170,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 53 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -148,7 +192,9 @@ "token": "'rien'", "value": "rien", "keyword": null, - "type": 7, + "type": { + "@type": "@19" + }, "flags": 1, "position": 55 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 61 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -175,7 +225,9 @@ "token": "'bu'", "value": "bu", "keyword": null, - "type": 7, + "type": { + "@type": "@19" + }, "flags": 1, "position": 63 }, @@ -184,7 +236,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 67 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -202,7 +258,9 @@ "token": "'agence'", "value": "agence", "keyword": null, - "type": 7, + "type": { + "@type": "@19" + }, "flags": 1, "position": 69 }, @@ -211,7 +269,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 77 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -229,7 +291,9 @@ "token": "'agence_limite'", "value": "agence_limite", "keyword": null, - "type": 7, + "type": { + "@type": "@19" + }, "flags": 1, "position": 79 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 94 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -256,7 +324,9 @@ "token": "'n-1'", "value": "n-1", "keyword": null, - "type": 7, + "type": { + "@type": "@19" + }, "flags": 1, "position": 96 }, @@ -265,7 +335,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 101 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -283,7 +357,9 @@ "token": "'agence_inactif'", "value": "agence_inactif", "keyword": null, - "type": 7, + "type": { + "@type": "@19" + }, "flags": 1, "position": 103 }, @@ -292,7 +368,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 119 }, @@ -301,7 +379,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 120 }, @@ -310,7 +392,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -319,7 +403,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 122 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 128 }, @@ -337,7 +425,9 @@ "token": "users_type", "value": "users_type", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 129 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -355,7 +447,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 140 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, @@ -373,7 +469,9 @@ "token": "limitations", "value": "limitations", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 144 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -391,7 +491,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 156 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -409,7 +513,9 @@ "token": "'agence_inactif'", "value": "agence_inactif", "keyword": null, - "type": 7, + "type": { + "@type": "@19" + }, "flags": 1, "position": 158 }, @@ -418,7 +524,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -427,7 +535,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 175 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 180 }, @@ -445,7 +557,9 @@ "token": "id_users_type", "value": "id_users_type", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 181 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 194 }, @@ -463,7 +579,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 195 }, @@ -472,7 +590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 196 }, @@ -481,7 +601,11 @@ "token": "19", "value": 19, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 197 }, @@ -490,7 +614,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@40" + }, "flags": 0, "position": 199 }, @@ -499,30 +625,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 200 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@40" + }, "flags": 0, "position": null } - ], - "count": 56, - "idx": 56 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -542,20 +670,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -574,30 +688,15 @@ }, "partitions": null, "unknown": [ - { - "@type": "@12" - }, - { - "@type": "@13" - }, - { - "@type": "@14" - }, { "@type": "@15" }, { "@type": "@16" }, - { - "@type": "@17" - }, { "@type": "@18" }, - { - "@type": "@19" - }, { "@type": "@20" }, @@ -639,6 +738,21 @@ }, { "@type": "@33" + }, + { + "@type": "@34" + }, + { + "@type": "@35" + }, + { + "@type": "@36" + }, + { + "@type": "@37" + }, + { + "@type": "@38" } ] } @@ -680,7 +794,10 @@ "id_users_type" ], "isOperator": false, - "expr": "id_users_type = 19" + "expr": "id_users_type = 19", + "leftOperand": "id_users_type", + "operator": "=", + "rightOperand": "19" } ], "order": null, @@ -694,9 +811,7 @@ "last": 52 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/gh9.out b/tests/data/bugs/gh9.out index 08f0c41a2..08822c559 100644 --- a/tests/data/bugs/gh9.out +++ b/tests/data/bugs/gh9.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM foo WHERE\nSELECT * FROM foo WHERE\n\nSTART TRANSACTION;\n\nCREATE TABLE `tb` (`uid` INT UNSIGNED NOT NULL\n`position` INT NOT NULL,\nPRIMARY KEY ( `uid` ) ,\nINDEX ( `position` )\n) ENGINE = InnoDB;\n\nCOMMIT;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM foo WHERE\nSELECT * FROM foo WHERE\n\nSTART TRANSACTION;\n\nCREATE TABLE `tb` (`uid` INT UNSIGNED NOT NULL\n`position` INT NOT NULL,\nPRIMARY KEY ( `uid` ) ,\nINDEX ( `position` )\n) ENGINE = InnoDB;\n\nCOMMIT;", "len": 213, "last": 213, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 75, + "idx": 75, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -85,7 +113,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -94,7 +124,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -103,7 +135,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -121,7 +157,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 31 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -139,7 +179,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -157,7 +201,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 38 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -175,7 +223,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -184,7 +234,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -193,7 +245,9 @@ "token": "START TRANSACTION", "value": "START TRANSACTION", "keyword": "START TRANSACTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 49 }, @@ -202,7 +256,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 66 }, @@ -211,7 +269,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -220,7 +280,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 69 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -238,7 +302,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,11 @@ "token": "`tb`", "value": "tb", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 82 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +348,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 87 }, @@ -283,7 +359,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@35" + }, "flags": 2, "position": 88 }, @@ -292,7 +370,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -301,7 +381,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 94 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -319,7 +403,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 98 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -337,7 +425,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 107 }, @@ -346,7 +436,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -355,7 +447,9 @@ "token": "`position`", "value": "position", "keyword": null, - "type": 8, + "type": { + "@type": "@35" + }, "flags": 2, "position": 116 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -373,7 +469,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 127 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -391,7 +491,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 131 }, @@ -400,7 +502,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 139 }, @@ -409,7 +513,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -418,7 +524,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 141 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -436,7 +546,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 153 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 154 }, @@ -454,7 +568,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@35" + }, "flags": 2, "position": 155 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -472,7 +590,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 161 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -490,7 +612,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 163 }, @@ -499,7 +623,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 164 }, @@ -508,7 +634,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 165 }, @@ -517,7 +645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 170 }, @@ -526,7 +656,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 171 }, @@ -535,7 +667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 172 }, @@ -544,7 +678,9 @@ "token": "`position`", "value": "position", "keyword": null, - "type": 8, + "type": { + "@type": "@35" + }, "flags": 2, "position": 173 }, @@ -553,7 +689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 183 }, @@ -562,7 +700,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 184 }, @@ -571,7 +711,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -580,7 +722,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 186 }, @@ -589,7 +733,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 187 }, @@ -598,7 +744,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 188 }, @@ -607,7 +755,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 194 }, @@ -616,7 +766,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 195 }, @@ -625,7 +777,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 196 }, @@ -634,7 +788,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 197 }, @@ -643,7 +799,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": 203 }, @@ -652,7 +810,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 204 }, @@ -661,7 +821,9 @@ "token": "COMMIT", "value": "COMMIT", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 206 }, @@ -670,30 +832,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": 212 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": null } - ], - "count": 75, - "idx": 75 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -724,11 +888,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -736,7 +900,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -770,11 +934,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -782,7 +946,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -824,7 +988,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -882,9 +1047,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -892,35 +1055,35 @@ [ "This type of clause was previously parsed.", { - "@type": "@12" + "@type": "@16" }, 0 ], [ "A new statement was found, but no delimiter between it and the previous one.", { - "@type": "@22" + "@type": "@26" }, 0 ], [ "A comma or a closing bracket was expected.", { - "@type": "@40" + "@type": "@46" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@51" + "@type": "@57" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@57" + "@type": "@63" }, 0 ] diff --git a/tests/data/bugs/pma11800.out b/tests/data/bugs/pma11800.out index 5932800ef..075c0e11f 100644 --- a/tests/data/bugs/pma11800.out +++ b/tests/data/bugs/pma11800.out @@ -2,18 +2,26 @@ "query": "SELECT 'a' REGEXP '^[a-d]';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 'a' REGEXP '^[a-d]';", "len": 27, "last": 27, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "'a'", "value": "a", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +67,9 @@ "token": "REGEXP", "value": "REGEXP", "keyword": "REGEXP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "'^[a-d]'", "value": "^[a-d]", "keyword": null, - "type": 7, + "type": { + "@type": "@7" + }, "flags": 1, "position": 18 }, @@ -76,30 +100,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 26 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -119,11 +147,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -131,7 +159,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -140,9 +168,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/pma11836.out b/tests/data/bugs/pma11836.out index 27836e0a2..d2b362ae2 100644 --- a/tests/data/bugs/pma11836.out +++ b/tests/data/bugs/pma11836.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM alumnos WHERE id = IF(id = 1, id, nombre) AND id not in (SELECT id FROM alumnos)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM alumnos WHERE id = IF(id = 1, id, nombre) AND id not in (SELECT id FROM alumnos)", "len": 94, "last": 94, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 45, + "idx": 45, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "alumnos", "value": "alumnos", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 28 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -121,7 +157,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 31 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -139,7 +179,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 33 }, @@ -148,7 +190,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 35 }, @@ -157,7 +201,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 36 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -175,7 +223,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 39 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -193,7 +245,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -202,7 +258,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 42 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -220,7 +280,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 44 }, @@ -229,7 +291,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 46 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -247,7 +313,9 @@ "token": "nombre", "value": "nombre", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 48 }, @@ -256,7 +324,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 54 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -274,7 +346,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -292,7 +368,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 60 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -310,7 +390,9 @@ "token": "not in", "value": "NOT IN", "keyword": "NOT IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 39, "position": 63 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -328,7 +412,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 70 }, @@ -337,7 +423,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -355,7 +445,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 78 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -373,7 +467,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 81 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -391,7 +489,9 @@ "token": "alumnos", "value": "alumnos", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 86 }, @@ -400,30 +500,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 93 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 45, - "idx": 45 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -454,7 +558,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -464,13 +568,19 @@ "nombre" ], "isOperator": false, - "expr": "id = IF(id = 1, id, nombre)" + "expr": "id = IF(id = 1, id, nombre)", + "leftOperand": "id", + "operator": "=", + "rightOperand": "IF(id = 1, id, nombre)" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -479,11 +589,14 @@ "alumnos" ], "isOperator": false, - "expr": "id not in (SELECT id FROM alumnos)" + "expr": "id not in (SELECT id FROM alumnos)", + "leftOperand": "id not in (SELECT id FROM alumnos)", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -491,7 +604,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -500,9 +613,7 @@ "last": 43 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/pma11843.out b/tests/data/bugs/pma11843.out index 498024006..7c3b03f12 100644 --- a/tests/data/bugs/pma11843.out +++ b/tests/data/bugs/pma11843.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `mytable` (\n `id` int(11) NOT NULL,\n `created_at` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `mytable` (\n `id` int(11) NOT NULL,\n `created_at` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP\n);", "len": 119, "last": 119, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`mytable`", "value": "mytable", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +113,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 29 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +135,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 34 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 37 }, @@ -121,7 +157,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 38 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 40 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +192,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 42 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 50 }, @@ -166,7 +214,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -175,7 +225,9 @@ "token": "`created_at`", "value": "created_at", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 56 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -193,7 +247,9 @@ "token": "timestamp", "value": "timestamp", "keyword": "TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 69 }, @@ -202,7 +258,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 78 }, @@ -211,7 +269,9 @@ "token": "6", "value": 6, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 79 }, @@ -220,7 +280,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 80 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -238,7 +302,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 82 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -256,7 +324,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 91 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -274,7 +346,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 99 }, @@ -283,7 +357,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -292,7 +368,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 117 }, @@ -301,30 +379,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 118 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@40" + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -359,7 +441,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -383,7 +466,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -432,9 +516,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/bugs/pma11879.out b/tests/data/bugs/pma11879.out index 7e6af88b6..3780472f1 100644 --- a/tests/data/bugs/pma11879.out +++ b/tests/data/bugs/pma11879.out @@ -2,18 +2,26 @@ "query": "INSERT INTO\n tbproject(`id`, `name`, `description`, `create_dt`, `dbtype`, `useclause`, `sync_comments`)\nVALUES\n (NULL, 'testdb', 'Descrizione test', NOW(), 'mySQL', '', 1);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO\n tbproject(`id`, `name`, `description`, `create_dt`, `dbtype`, `useclause`, `sync_comments`)\nVALUES\n (NULL, 'testdb', 'Descrizione test', NOW(), 'mySQL', '', 1);", "len": 175, "last": 175, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 54, + "idx": 54, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "tbproject", "value": "tbproject", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -58,7 +78,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -67,7 +91,11 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 24 }, @@ -76,7 +104,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 28 }, @@ -85,7 +115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -94,7 +126,9 @@ "token": "`name`", "value": "name", "keyword": null, - "type": 8, + "type": { + "@type": "@13" + }, "flags": 2, "position": 30 }, @@ -103,7 +137,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 36 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -121,7 +159,9 @@ "token": "`description`", "value": "description", "keyword": null, - "type": 8, + "type": { + "@type": "@13" + }, "flags": 2, "position": 38 }, @@ -130,7 +170,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 51 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -148,7 +192,9 @@ "token": "`create_dt`", "value": "create_dt", "keyword": null, - "type": 8, + "type": { + "@type": "@13" + }, "flags": 2, "position": 53 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 64 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -175,7 +225,9 @@ "token": "`dbtype`", "value": "dbtype", "keyword": null, - "type": 8, + "type": { + "@type": "@13" + }, "flags": 2, "position": 66 }, @@ -184,7 +236,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 74 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -202,7 +258,9 @@ "token": "`useclause`", "value": "useclause", "keyword": null, - "type": 8, + "type": { + "@type": "@13" + }, "flags": 2, "position": 76 }, @@ -211,7 +269,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 87 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -229,7 +291,9 @@ "token": "`sync_comments`", "value": "sync_comments", "keyword": null, - "type": 8, + "type": { + "@type": "@13" + }, "flags": 2, "position": 89 }, @@ -238,7 +302,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 104 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 105 }, @@ -256,7 +324,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 106 }, @@ -265,7 +335,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -274,7 +346,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 115 }, @@ -283,7 +357,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 116 }, @@ -292,7 +368,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 120 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -310,7 +390,11 @@ "token": "'testdb'", "value": "testdb", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 122 }, @@ -319,7 +403,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 130 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -337,7 +425,9 @@ "token": "'Descrizione test'", "value": "Descrizione test", "keyword": null, - "type": 7, + "type": { + "@type": "@41" + }, "flags": 1, "position": 132 }, @@ -346,7 +436,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 150 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 151 }, @@ -364,7 +458,9 @@ "token": "NOW", "value": "NOW", "keyword": "NOW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 152 }, @@ -373,7 +469,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 155 }, @@ -382,7 +480,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 156 }, @@ -391,7 +491,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 157 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -409,7 +513,9 @@ "token": "'mySQL'", "value": "mySQL", "keyword": null, - "type": 7, + "type": { + "@type": "@41" + }, "flags": 1, "position": 159 }, @@ -418,7 +524,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 166 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 167 }, @@ -436,7 +546,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@41" + }, "flags": 1, "position": 168 }, @@ -445,7 +557,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 170 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -463,7 +579,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 172 }, @@ -472,7 +592,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 173 }, @@ -481,30 +603,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 174 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@62" + }, "flags": 0, "position": null } - ], - "count": 54, - "idx": 54 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -534,9 +660,9 @@ "sync_comments" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -573,9 +699,7 @@ "last": 51 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/lexer/lex.out b/tests/data/lexer/lex.out index 025387ace..60948b33c 100644 --- a/tests/data/lexer/lex.out +++ b/tests/data/lexer/lex.out @@ -2,18 +2,26 @@ "query": "SELECT \\\\", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT \\\\", "len": 9, "last": 9, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "\\", "value": "\\", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,27 +56,29 @@ "token": "\\", "value": "\\", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 8 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexBool.out b/tests/data/lexer/lexBool.out index 88a0095f4..70aa6b7a2 100644 --- a/tests/data/lexer/lexBool.out +++ b/tests/data/lexer/lexBool.out @@ -2,18 +2,26 @@ "query": "SELECT true, FalSe", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT true, FalSe", "len": 18, "last": 18, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 7, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "true", "value": true, "keyword": null, - "type": 5, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Bool", + "value": 5 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 11 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -58,27 +80,29 @@ "token": "FalSe", "value": false, "keyword": null, - "type": 5, + "type": { + "@type": "@7" + }, "flags": 1, "position": 13 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 7, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexComment.out b/tests/data/lexer/lexComment.out index 8af1028b2..d6f7b9857 100644 --- a/tests/data/lexer/lexComment.out +++ b/tests/data/lexer/lexComment.out @@ -2,18 +2,26 @@ "query": "# comment\nSELECT /*!50000 STRAIGHT_JOIN */ col1 FROM table1, table2 /* select query */\n-- comment\n-- comment 2", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "# comment\nSELECT /*!50000 STRAIGHT_JOIN */ col1 FROM table1, table2 /* select query */\n-- comment\n-- comment 2", "len": 110, "last": 111, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "# comment", "value": "# comment", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 1, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 10 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +67,9 @@ "token": "/*!50000", "value": "/*!50000", "keyword": null, - "type": 4, + "type": { + "@type": "@3" + }, "flags": 10, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "STRAIGHT_JOIN", "value": "STRAIGHT_JOIN", "keyword": "STRAIGHT_JOIN", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@3" + }, "flags": 2, "position": 40 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -103,7 +133,11 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 43 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -121,7 +157,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 48 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -139,7 +179,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@16" + }, "flags": 0, "position": 53 }, @@ -148,7 +190,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 59 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -166,7 +214,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@16" + }, "flags": 0, "position": 61 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -184,7 +236,9 @@ "token": "/* select query */", "value": "/* select query */", "keyword": null, - "type": 4, + "type": { + "@type": "@3" + }, "flags": 2, "position": 68 }, @@ -193,7 +247,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -202,7 +258,9 @@ "token": "-- comment", "value": "-- comment", "keyword": null, - "type": 4, + "type": { + "@type": "@3" + }, "flags": 4, "position": 87 }, @@ -211,7 +269,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -220,27 +280,29 @@ "token": "-- comment 2", "value": "-- comment 2", "keyword": null, - "type": 4, + "type": { + "@type": "@3" + }, "flags": 4, "position": 98 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexCommentEnd.out b/tests/data/lexer/lexCommentEnd.out index 0ee4d6953..000095ada 100644 --- a/tests/data/lexer/lexCommentEnd.out +++ b/tests/data/lexer/lexCommentEnd.out @@ -2,18 +2,26 @@ "query": "SELECT 1\n-- comment\n--", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 1\n-- comment\n--", "len": 22, "last": 23, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": "-- comment", "value": "-- comment", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 9 }, @@ -58,7 +80,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,27 +91,29 @@ "token": "--", "value": "--", "keyword": null, - "type": 4, + "type": { + "@type": "@10" + }, "flags": 4, "position": 20 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexDelimiter.out b/tests/data/lexer/lexDelimiter.out index 243fb7fb5..ecd0d94a0 100644 --- a/tests/data/lexer/lexDelimiter.out +++ b/tests/data/lexer/lexDelimiter.out @@ -2,18 +2,26 @@ "query": "DELIMITER GO\nSELECT a,b FROM foo GO\nSELECT * FROM bar", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER GO\nSELECT a,b FROM foo GO\nSELECT * FROM bar", "len": 53, "last": 53, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "GO", "value": "GO", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +67,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +91,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 20 }, @@ -76,7 +102,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -85,7 +115,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 22 }, @@ -94,7 +126,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -103,7 +137,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 24 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -121,7 +159,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 29 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -139,7 +181,9 @@ "token": "GO", "value": "GO", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": 33 }, @@ -148,7 +192,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -157,7 +203,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 36 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -175,7 +225,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 43 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -193,7 +247,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 45 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -211,27 +269,27 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 0 + ] }, "delimiter": "GO", - "delimiterLen": 2, - "strict": false, - "errors": [] + "delimiterLen": 2 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexDelimiter2.out b/tests/data/lexer/lexDelimiter2.out index e6ebb62d1..d4e54ded8 100644 --- a/tests/data/lexer/lexDelimiter2.out +++ b/tests/data/lexer/lexDelimiter2.out @@ -2,18 +2,26 @@ "query": "DELIMTER //\nSELECT a,b FROM test //\nSELECT * FROM bar //", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMTER //\nSELECT a,b FROM test //\nSELECT * FROM bar //", "len": 56, "last": 56, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMTER", "value": "DELIMTER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 8 }, @@ -31,7 +43,11 @@ "token": "/", "value": "/", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 9 }, @@ -40,7 +56,9 @@ "token": "/", "value": "/", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 10 }, @@ -49,7 +67,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -58,7 +78,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 12 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -76,7 +102,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 20 }, @@ -94,7 +124,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 21 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -112,7 +146,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 23 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -130,7 +168,9 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 28 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -148,7 +190,9 @@ "token": "/", "value": "/", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 33 }, @@ -157,7 +201,9 @@ "token": "/", "value": "/", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 34 }, @@ -166,7 +212,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -175,7 +223,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 36 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -193,7 +245,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 43 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -211,7 +267,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 45 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -229,7 +289,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 50 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -247,7 +311,9 @@ "token": "/", "value": "/", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 54 }, @@ -256,27 +322,29 @@ "token": "/", "value": "/", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 55 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexDelimiterErr1.out b/tests/data/lexer/lexDelimiterErr1.out index 1cbd78dc2..f4df40024 100644 --- a/tests/data/lexer/lexDelimiterErr1.out +++ b/tests/data/lexer/lexDelimiterErr1.out @@ -2,38 +2,46 @@ "query": "DELIMITER", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER", "len": 9, "last": 9, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 2, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 2, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexDelimiterErr2.out b/tests/data/lexer/lexDelimiterErr2.out index 222e9b1a7..2e5cbeb3e 100644 --- a/tests/data/lexer/lexDelimiterErr2.out +++ b/tests/data/lexer/lexDelimiterErr2.out @@ -2,18 +2,26 @@ "query": "DELIMITER \r", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER \r", "len": 11, "last": 11, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 3, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,27 +30,31 @@ "token": " \r", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 3, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexDelimiterErr3.out b/tests/data/lexer/lexDelimiterErr3.out index 65362eb12..189c05d2d 100644 --- a/tests/data/lexer/lexDelimiterErr3.out +++ b/tests/data/lexer/lexDelimiterErr3.out @@ -2,18 +2,26 @@ "query": "DELIMITER;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER;\n", "len": 11, "last": 11, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -31,27 +43,29 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 10 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexDelimiterLen.out b/tests/data/lexer/lexDelimiterLen.out index 060463c59..0cb6db2c7 100644 --- a/tests/data/lexer/lexDelimiterLen.out +++ b/tests/data/lexer/lexDelimiterLen.out @@ -2,18 +2,26 @@ "query": "DELIMITER abcdefghijklmnopqrstuvwxyz\nSELECT 1 abcdefghijklmnopqrstuvwxyz\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER abcdefghijklmnopqrstuvwxyz\nSELECT 1 abcdefghijklmnopqrstuvwxyz\n", "len": 73, "last": 73, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "abcdefghijklmno", "value": "abcdefghijklmno", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -40,7 +56,9 @@ "token": "pqrstuvwxyz", "value": "pqrstuvwxyz", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 25 }, @@ -49,7 +67,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -58,7 +78,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 37 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -76,7 +102,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 44 }, @@ -85,7 +115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -94,7 +126,9 @@ "token": "abcdefghijklmno", "value": "abcdefghijklmno", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": 46 }, @@ -103,7 +137,9 @@ "token": "pqrstuvwxyz", "value": "pqrstuvwxyz", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 61 }, @@ -112,27 +148,27 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 0 + ] }, "delimiter": "abcdefghijklmno", - "delimiterLen": 15, - "strict": false, - "errors": [] + "delimiterLen": 15 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexEmptyCStyleComment.out b/tests/data/lexer/lexEmptyCStyleComment.out index 09a95d1f4..0313e2768 100644 --- a/tests/data/lexer/lexEmptyCStyleComment.out +++ b/tests/data/lexer/lexEmptyCStyleComment.out @@ -2,18 +2,26 @@ "query": "SELECT /**/ 1\nSELECT /*+*/ 1\nSELECT /***/ 1\nSELECT /** */ 1\nSELECT /* **/ 1\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT /**/ 1\nSELECT /*+*/ 1\nSELECT /***/ 1\nSELECT /** */ 1\nSELECT /* **/ 1\n", "len": 76, "last": 76, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 31, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "/**/", "value": "/**/", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +67,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 12 }, @@ -58,7 +80,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +91,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": "/*+*/", "value": "/*+*/", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 21 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@10" + }, "flags": 0, "position": 27 }, @@ -112,7 +146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -121,7 +157,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -139,7 +179,9 @@ "token": "/***/", "value": "/***/", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 36 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@10" + }, "flags": 0, "position": 42 }, @@ -166,7 +212,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -175,7 +223,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +245,9 @@ "token": "/** */", "value": "/** */", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 51 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -211,7 +267,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@10" + }, "flags": 0, "position": 58 }, @@ -220,7 +278,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -229,7 +289,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 60 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -247,7 +311,9 @@ "token": "/* **/", "value": "/* **/", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 67 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -265,7 +333,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@10" + }, "flags": 0, "position": 74 }, @@ -274,27 +344,29 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 31, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexKeyword.out b/tests/data/lexer/lexKeyword.out index ce2498c2b..aff6c684f 100644 --- a/tests/data/lexer/lexKeyword.out +++ b/tests/data/lexer/lexKeyword.out @@ -2,18 +2,26 @@ "query": "SELECT 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 1", "len": 8, "last": 8, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,27 +43,31 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexKeyword2.out b/tests/data/lexer/lexKeyword2.out index eeabc3bbe..677ddac46 100644 --- a/tests/data/lexer/lexKeyword2.out +++ b/tests/data/lexer/lexKeyword2.out @@ -2,18 +2,26 @@ "query": "SELECT tbl.TABLE FROM tbl", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT tbl.TABLE FROM tbl", "len": 25, "last": 25, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 10 }, @@ -49,7 +69,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +91,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,27 +113,29 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexLabel1.out b/tests/data/lexer/lexLabel1.out index f157c489b..85ee7c7d8 100644 --- a/tests/data/lexer/lexLabel1.out +++ b/tests/data/lexer/lexLabel1.out @@ -2,18 +2,26 @@ "query": "CREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n label1 : LOOP\n SET p1 = p1 + 1;\n IF p1 < 10 THEN\n ITERATE label1;\n END IF;\n LEAVE label1;\n END LOOP label1;\n SET @x = p1;\nEND", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n label1 : LOOP\n SET p1 = p1 + 1;\n IF p1 < 10 THEN\n ITERATE label1;\n END IF;\n LEAVE label1;\n END LOOP label1;\n SET @x = p1;\nEND", "len": 187, "last": 187, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 73, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "doiterate", "value": "doiterate", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 17 }, @@ -58,7 +78,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 26 }, @@ -67,7 +91,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 27 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +113,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 30 }, @@ -94,7 +124,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 33 }, @@ -103,7 +135,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -121,7 +157,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -130,7 +168,11 @@ "token": "label1 :", "value": "label1 :", "keyword": null, - "type": 10, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Label", + "value": 10 + }, "flags": 0, "position": 43 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -148,7 +192,9 @@ "token": "LOOP", "value": "LOOP", "keyword": "LOOP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -157,7 +203,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -166,7 +214,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 61 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -184,7 +236,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 65 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -202,7 +258,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 68 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -220,7 +280,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 70 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -238,7 +302,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 1, "position": 73 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -256,7 +324,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 75 }, @@ -265,7 +337,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 76 }, @@ -274,7 +350,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -283,7 +361,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 82 }, @@ -292,7 +372,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -301,7 +383,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 85 }, @@ -310,7 +394,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -319,7 +405,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 88 }, @@ -328,7 +416,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -337,7 +427,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 90 }, @@ -346,7 +438,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -355,7 +449,9 @@ "token": "THEN", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, @@ -364,7 +460,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -373,7 +471,9 @@ "token": "ITERATE", "value": "ITERATE", "keyword": "ITERATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 104 }, @@ -382,7 +482,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -391,7 +493,9 @@ "token": "label1", "value": "label1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 112 }, @@ -400,7 +504,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 118 }, @@ -409,7 +515,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -418,7 +526,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 124 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +548,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 128 }, @@ -445,7 +559,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 130 }, @@ -454,7 +570,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -463,7 +581,9 @@ "token": "LEAVE", "value": "LEAVE", "keyword": "LEAVE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 136 }, @@ -472,7 +592,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -481,7 +603,9 @@ "token": "label1", "value": "label1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 142 }, @@ -490,7 +614,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 148 }, @@ -499,7 +625,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -508,7 +636,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 152 }, @@ -517,7 +647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -526,7 +658,9 @@ "token": "LOOP", "value": "LOOP", "keyword": "LOOP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 156 }, @@ -535,7 +669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -544,7 +680,9 @@ "token": "label1", "value": "label1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 161 }, @@ -553,7 +691,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 167 }, @@ -562,7 +702,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 168 }, @@ -571,7 +713,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 171 }, @@ -580,7 +724,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -589,7 +735,11 @@ "token": "@x", "value": "x", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 175 }, @@ -598,7 +748,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 177 }, @@ -607,7 +759,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 178 }, @@ -616,7 +770,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 179 }, @@ -625,7 +781,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 180 }, @@ -634,7 +792,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 182 }, @@ -643,7 +803,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 183 }, @@ -652,27 +814,27 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 184 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": null } - ], - "count": 73, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexLabel2.out b/tests/data/lexer/lexLabel2.out index df7929a15..5314b6662 100644 --- a/tests/data/lexer/lexLabel2.out +++ b/tests/data/lexer/lexLabel2.out @@ -2,18 +2,26 @@ "query": "CREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n label1: LOOP\n SET p1 = p1 + 1;\n IF p1 < 10 THEN\n ITERATE label1;\n END IF;\n LEAVE label1;\n END LOOP label1;\n SET @x = p1;\nEND", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n label1: LOOP\n SET p1 = p1 + 1;\n IF p1 < 10 THEN\n ITERATE label1;\n END IF;\n LEAVE label1;\n END LOOP label1;\n SET @x = p1;\nEND", "len": 186, "last": 186, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 73, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "doiterate", "value": "doiterate", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 17 }, @@ -58,7 +78,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 26 }, @@ -67,7 +91,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 27 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +113,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 30 }, @@ -94,7 +124,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 33 }, @@ -103,7 +135,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -121,7 +157,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -130,7 +168,11 @@ "token": "label1:", "value": "label1:", "keyword": null, - "type": 10, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Label", + "value": 10 + }, "flags": 0, "position": 43 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +192,9 @@ "token": "LOOP", "value": "LOOP", "keyword": "LOOP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 51 }, @@ -157,7 +203,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -166,7 +214,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 60 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -184,7 +236,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 64 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -202,7 +258,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 67 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -220,7 +280,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 69 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -238,7 +302,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 1, "position": 72 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -256,7 +324,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 74 }, @@ -265,7 +337,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 75 }, @@ -274,7 +350,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -283,7 +361,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 81 }, @@ -292,7 +372,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -301,7 +383,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 84 }, @@ -310,7 +394,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -319,7 +405,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 87 }, @@ -328,7 +416,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -337,7 +427,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 89 }, @@ -346,7 +438,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -355,7 +449,9 @@ "token": "THEN", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 92 }, @@ -364,7 +460,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -373,7 +471,9 @@ "token": "ITERATE", "value": "ITERATE", "keyword": "ITERATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 103 }, @@ -382,7 +482,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -391,7 +493,9 @@ "token": "label1", "value": "label1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 111 }, @@ -400,7 +504,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 117 }, @@ -409,7 +515,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -418,7 +526,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 123 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -436,7 +548,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 127 }, @@ -445,7 +559,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 129 }, @@ -454,7 +570,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -463,7 +581,9 @@ "token": "LEAVE", "value": "LEAVE", "keyword": "LEAVE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 135 }, @@ -472,7 +592,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -481,7 +603,9 @@ "token": "label1", "value": "label1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 141 }, @@ -490,7 +614,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 147 }, @@ -499,7 +625,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -508,7 +636,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 151 }, @@ -517,7 +647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 154 }, @@ -526,7 +658,9 @@ "token": "LOOP", "value": "LOOP", "keyword": "LOOP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 155 }, @@ -535,7 +669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 159 }, @@ -544,7 +680,9 @@ "token": "label1", "value": "label1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 160 }, @@ -553,7 +691,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 166 }, @@ -562,7 +702,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 167 }, @@ -571,7 +713,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 170 }, @@ -580,7 +724,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -589,7 +735,11 @@ "token": "@x", "value": "x", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 174 }, @@ -598,7 +748,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -607,7 +759,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 177 }, @@ -616,7 +770,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 178 }, @@ -625,7 +781,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 179 }, @@ -634,7 +792,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": 181 }, @@ -643,7 +803,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -652,27 +814,27 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 183 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": null } - ], - "count": 73, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexNoLabel.out b/tests/data/lexer/lexNoLabel.out index 1b85bc6f0..fb093d3e3 100644 --- a/tests/data/lexer/lexNoLabel.out +++ b/tests/data/lexer/lexNoLabel.out @@ -2,18 +2,26 @@ "query": "SELECT wins FROM players WHERE auth = '[U1:123456789]' LIMIT 1\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT wins FROM players WHERE auth = '[U1:123456789]' LIMIT 1\n", "len": 63, "last": 63, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "wins", "value": "wins", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "players", "value": "players", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,9 @@ "token": "auth", "value": "auth", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 31 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -121,7 +155,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 36 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,11 @@ "token": "'[U1:123456789]'", "value": "[U1:123456789]", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 38 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -157,7 +203,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 55 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -175,7 +225,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 61 }, @@ -184,27 +238,29 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexNumber.out b/tests/data/lexer/lexNumber.out index 1b43ba952..bec58f932 100644 --- a/tests/data/lexer/lexNumber.out +++ b/tests/data/lexer/lexNumber.out @@ -2,18 +2,26 @@ "query": "SELECT 12, 34, 5.67, 0x89, -10, --11, +12, .15, 0xFFa, 0xfFA, +0xfFA, -0xFFa, -0xfFA, 1e-10, 1e10, .5e10, b'10';\n-- invalid numbers\nSELECT 12ex10, b'15', 0XFfA, -0XFfA, +0XFfA, .e4;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 12, 34, 5.67, 0x89, -10, --11, +12, .15, 0xFFa, 0xfFA, +0xfFA, -0xFFa, -0xfFA, 1e-10, 1e10, .5e10, b'10';\n-- invalid numbers\nSELECT 12ex10, b'15', 0XFfA, -0XFfA, +0XFfA, .e4;\n", "len": 182, "last": 182, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 80, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "12", "value": 12, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -58,7 +80,9 @@ "token": "34", "value": 34, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 13 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -85,7 +113,9 @@ "token": "5.67", "value": 5.67, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 15 }, @@ -94,7 +124,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 19 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -112,7 +146,9 @@ "token": "0x89", "value": 137, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 21 }, @@ -121,7 +157,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 25 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -139,7 +179,9 @@ "token": "-10", "value": -10, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 8, "position": 27 }, @@ -148,7 +190,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 30 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -166,7 +212,9 @@ "token": "--11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 8, "position": 32 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 36 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -193,7 +245,9 @@ "token": "+12", "value": 12, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 38 }, @@ -202,7 +256,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 41 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -220,7 +278,9 @@ "token": ".15", "value": 0.15, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 43 }, @@ -229,7 +289,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 46 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -247,7 +311,9 @@ "token": "0xFFa", "value": 4090, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 48 }, @@ -256,7 +322,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 53 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -274,7 +344,9 @@ "token": "0xfFA", "value": 4090, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 55 }, @@ -283,7 +355,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 60 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -301,7 +377,9 @@ "token": "+0xfFA", "value": 4090, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 62 }, @@ -310,7 +388,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 68 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -328,7 +410,9 @@ "token": "-0xFFa", "value": -4090, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 70 }, @@ -337,7 +421,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 76 }, @@ -346,7 +432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -355,7 +443,9 @@ "token": "-0xfFA", "value": -4090, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 78 }, @@ -364,7 +454,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 84 }, @@ -373,7 +465,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -382,7 +476,9 @@ "token": "1e-10", "value": 1.0e-10, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 4, "position": 86 }, @@ -391,7 +487,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 91 }, @@ -400,7 +498,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -409,7 +509,9 @@ "token": "1e10", "value": 10000000000.0, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 4, "position": 93 }, @@ -418,7 +520,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 97 }, @@ -427,7 +531,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -436,7 +542,9 @@ "token": ".5e10", "value": 5000000000.0, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 6, "position": 99 }, @@ -445,7 +553,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 104 }, @@ -454,7 +564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 105 }, @@ -463,7 +575,9 @@ "token": "b'10'", "value": "b'10'", "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 16, "position": 106 }, @@ -472,7 +586,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 111 }, @@ -481,7 +599,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -490,7 +610,11 @@ "token": "-- invalid numbers", "value": "-- invalid numbers", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 113 }, @@ -499,7 +623,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -508,7 +634,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 132 }, @@ -517,7 +645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -526,7 +656,11 @@ "token": "12ex10", "value": "12ex10", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 139 }, @@ -535,7 +669,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 145 }, @@ -544,7 +680,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 146 }, @@ -553,7 +691,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@66" + }, "flags": 0, "position": 147 }, @@ -562,7 +702,11 @@ "token": "'15'", "value": "15", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 148 }, @@ -571,7 +715,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 152 }, @@ -580,7 +726,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 153 }, @@ -589,7 +737,9 @@ "token": "0XFfA", "value": "0XFfA", "keyword": null, - "type": 0, + "type": { + "@type": "@66" + }, "flags": 0, "position": 154 }, @@ -598,7 +748,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 159 }, @@ -607,7 +759,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -616,7 +770,9 @@ "token": "-", "value": "-", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 161 }, @@ -625,7 +781,9 @@ "token": "0XFfA", "value": "0XFfA", "keyword": null, - "type": 0, + "type": { + "@type": "@66" + }, "flags": 0, "position": 162 }, @@ -634,7 +792,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 167 }, @@ -643,7 +803,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 168 }, @@ -652,7 +814,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 169 }, @@ -661,7 +825,9 @@ "token": "0XFfA", "value": "0XFfA", "keyword": null, - "type": 0, + "type": { + "@type": "@66" + }, "flags": 0, "position": 170 }, @@ -670,7 +836,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 175 }, @@ -679,7 +847,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -688,7 +858,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 177 }, @@ -697,7 +869,9 @@ "token": "e4", "value": "e4", "keyword": null, - "type": 0, + "type": { + "@type": "@66" + }, "flags": 0, "position": 178 }, @@ -706,7 +880,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@58" + }, "flags": 0, "position": 180 }, @@ -715,27 +891,27 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 181 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@58" + }, "flags": 0, "position": null } - ], - "count": 80, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexOperator.out b/tests/data/lexer/lexOperator.out index 50c554f94..48b671a58 100644 --- a/tests/data/lexer/lexOperator.out +++ b/tests/data/lexer/lexOperator.out @@ -2,18 +2,26 @@ "query": "SELECT 1 + 2", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 1 + 2", "len": 12, "last": 12, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 9 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -67,27 +91,29 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexOperatorStarIsArithmetic.out b/tests/data/lexer/lexOperatorStarIsArithmetic.out index 8e37f98f6..589dd999f 100644 --- a/tests/data/lexer/lexOperatorStarIsArithmetic.out +++ b/tests/data/lexer/lexOperatorStarIsArithmetic.out @@ -2,18 +2,26 @@ "query": "SELECT 2*3\nSELECT 2 * 3\nSELECT field * 8\nSELECT 8 * field\nSELECT foo * bar\nSELECT `escaped_field` * 16\nSELECT 16 * `escaped_field`\nSELECT `foo` * `bar`\nSELECT `foo`*`bar`\nSELECT 1 * (SELECT COUNT(1) FROM nb_rows)\nSELECT (SELECT COUNT(1) FROM nb_rows) * 1\nSELECT (SELECT COUNT(1) FROM nb_rows) * (SELECT COUNT(1) FROM nb_rows)\nSELECT (1 * 1) * (2 * 2)\nSELECT 1 * (2 * (3 * (4 * 5)))\nSELECT 2.71 * 3.14\nSELECT 2.71 * -3.14\nSELECT -2.71 * 3.14\nSELECT -2.71 * -3.14\nSELECT 0xABC * 0xCBA\nSELECT 0xABC * -0xCBA\nSELECT -0xABC * 0xCBA\nSELECT -0xABC * -0xCBA\n\n-- Now same but with comments inside (C style comments could conflicts with operator if lexer is failing)\nSELECT 2 * /* comment */3\nSELECT 2/* comment */ * 3\nSELECT 2/* comment with * inside */ * 3\nSELECT /* comment */ field /* comment */ * /* comment */ 8 /* comment */\nSELECT /* comment */ 8 /* comment */ * /* comment */ field /* comment */\nSELECT /* comment */ foo /* comment */ * /* comment */ bar /* comment */\nSELECT /* comment */ `escaped_field` /* comment */ * /* comment */ 16 /* comment */\nSELECT /* comment */ 16 /* comment */ * /* comment */ `escaped_field` /* comment */\nSELECT /* comment */ `foo` /* comment */ * /* comment */ `bar` /* comment */\nSELECT /* `comment` */ `foo` /* `comment` */ * /* `comment` */ `bar` /* `comment` */\nSELECT /* comment */ 1 /* comment */ * /* comment */ (SELECT COUNT(/* comment */1/* comment */) /* comment */ FROM nb_rows)\nSELECT /* comment */ (SELECT COUNT(1) /* comment */FROM/* comment */ nb_rows) /* comment */ * /* comment */ 1\nSELECT (SELECT /* comment */ COUNT(1) /* comment */ FROM /* comment */ nb_rows) /* comment */ * /* comment */ (SELECT COUNT(1) FROM nb_rows)\nSELECT (1 * 1) /* comment */ * /* comment */ (2 * 2)\nSELECT /* comment */ 1 /* comment */ * /* comment */ (2 /* comment */ * /* comment */ (3 /* comment */ * /* comment */ (4 /* comment */ * /* comment */ 5))) /* comment */\nSELECT 2.71 /* comment */ * /* comment */ 3.14\nSELECT 2.71 /* comment */ * /* comment */ -3.14\nSELECT -2.71 /* comment */ * /* comment */ 3.14\nSELECT -2.71 /* comment */ * /* comment */ -3.14\nSELECT 0xABC /* comment */ * /* comment */ 0xCBA\nSELECT 0xABC /* comment */ * /* comment */ -0xCBA\nSELECT -0xABC /* comment */ * /* comment */ 0xCBA\nSELECT -0xABC /* comment */ * /* comment */ -0xCBA\nSELECT 1 /* comment with FROM keyword */ * /* comment with USING keyword */1\nSELECT 1 /* comment with ) */ * /* comment with , keyword */1\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 2*3\nSELECT 2 * 3\nSELECT field * 8\nSELECT 8 * field\nSELECT foo * bar\nSELECT `escaped_field` * 16\nSELECT 16 * `escaped_field`\nSELECT `foo` * `bar`\nSELECT `foo`*`bar`\nSELECT 1 * (SELECT COUNT(1) FROM nb_rows)\nSELECT (SELECT COUNT(1) FROM nb_rows) * 1\nSELECT (SELECT COUNT(1) FROM nb_rows) * (SELECT COUNT(1) FROM nb_rows)\nSELECT (1 * 1) * (2 * 2)\nSELECT 1 * (2 * (3 * (4 * 5)))\nSELECT 2.71 * 3.14\nSELECT 2.71 * -3.14\nSELECT -2.71 * 3.14\nSELECT -2.71 * -3.14\nSELECT 0xABC * 0xCBA\nSELECT 0xABC * -0xCBA\nSELECT -0xABC * 0xCBA\nSELECT -0xABC * -0xCBA\n\n-- Now same but with comments inside (C style comments could conflicts with operator if lexer is failing)\nSELECT 2 * /* comment */3\nSELECT 2/* comment */ * 3\nSELECT 2/* comment with * inside */ * 3\nSELECT /* comment */ field /* comment */ * /* comment */ 8 /* comment */\nSELECT /* comment */ 8 /* comment */ * /* comment */ field /* comment */\nSELECT /* comment */ foo /* comment */ * /* comment */ bar /* comment */\nSELECT /* comment */ `escaped_field` /* comment */ * /* comment */ 16 /* comment */\nSELECT /* comment */ 16 /* comment */ * /* comment */ `escaped_field` /* comment */\nSELECT /* comment */ `foo` /* comment */ * /* comment */ `bar` /* comment */\nSELECT /* `comment` */ `foo` /* `comment` */ * /* `comment` */ `bar` /* `comment` */\nSELECT /* comment */ 1 /* comment */ * /* comment */ (SELECT COUNT(/* comment */1/* comment */) /* comment */ FROM nb_rows)\nSELECT /* comment */ (SELECT COUNT(1) /* comment */FROM/* comment */ nb_rows) /* comment */ * /* comment */ 1\nSELECT (SELECT /* comment */ COUNT(1) /* comment */ FROM /* comment */ nb_rows) /* comment */ * /* comment */ (SELECT COUNT(1) FROM nb_rows)\nSELECT (1 * 1) /* comment */ * /* comment */ (2 * 2)\nSELECT /* comment */ 1 /* comment */ * /* comment */ (2 /* comment */ * /* comment */ (3 /* comment */ * /* comment */ (4 /* comment */ * /* comment */ 5))) /* comment */\nSELECT 2.71 /* comment */ * /* comment */ 3.14\nSELECT 2.71 /* comment */ * /* comment */ -3.14\nSELECT -2.71 /* comment */ * /* comment */ 3.14\nSELECT -2.71 /* comment */ * /* comment */ -3.14\nSELECT 0xABC /* comment */ * /* comment */ 0xCBA\nSELECT 0xABC /* comment */ * /* comment */ -0xCBA\nSELECT -0xABC /* comment */ * /* comment */ 0xCBA\nSELECT -0xABC /* comment */ * /* comment */ -0xCBA\nSELECT 1 /* comment with FROM keyword */ * /* comment with USING keyword */1\nSELECT 1 /* comment with ) */ * /* comment with , keyword */1\n\n", "len": 2429, "last": 2429, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 672, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 8 }, @@ -49,7 +69,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -67,7 +91,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 11 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -85,7 +113,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 18 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -103,7 +135,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 20 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -121,7 +157,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -139,7 +179,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -157,7 +201,9 @@ "token": "field", "value": "field", "keyword": "FIELD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 31 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -175,7 +223,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 37 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -193,7 +245,9 @@ "token": "8", "value": 8, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 39 }, @@ -202,7 +256,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -211,7 +267,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 41 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -229,7 +289,9 @@ "token": "8", "value": 8, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 48 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -247,7 +311,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 50 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -265,7 +333,9 @@ "token": "field", "value": "field", "keyword": "FIELD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 52 }, @@ -274,7 +344,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -283,7 +355,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 58 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -301,7 +377,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 65 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -319,7 +401,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 69 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -337,7 +423,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 71 }, @@ -346,7 +434,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -355,7 +445,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 75 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -373,7 +467,11 @@ "token": "`escaped_field`", "value": "escaped_field", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 82 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -391,7 +491,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 98 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -409,7 +513,9 @@ "token": "16", "value": 16, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 100 }, @@ -418,7 +524,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -427,7 +535,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 103 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -445,7 +557,9 @@ "token": "16", "value": 16, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 110 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -463,7 +579,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 113 }, @@ -472,7 +590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -481,7 +601,9 @@ "token": "`escaped_field`", "value": "escaped_field", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 115 }, @@ -490,7 +612,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -499,7 +623,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 131 }, @@ -508,7 +634,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 137 }, @@ -517,7 +645,9 @@ "token": "`foo`", "value": "foo", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 138 }, @@ -526,7 +656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, @@ -535,7 +667,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 144 }, @@ -544,7 +678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -553,7 +689,9 @@ "token": "`bar`", "value": "bar", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 146 }, @@ -562,7 +700,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 151 }, @@ -571,7 +711,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 152 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -589,7 +733,9 @@ "token": "`foo`", "value": "foo", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 159 }, @@ -598,7 +744,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 164 }, @@ -607,7 +755,9 @@ "token": "`bar`", "value": "bar", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 165 }, @@ -616,7 +766,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 170 }, @@ -625,7 +777,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 171 }, @@ -634,7 +788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 177 }, @@ -643,7 +799,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 178 }, @@ -652,7 +810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 179 }, @@ -661,7 +821,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 180 }, @@ -670,7 +832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 181 }, @@ -679,7 +843,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 182 }, @@ -688,7 +854,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 183 }, @@ -697,7 +865,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 189 }, @@ -706,7 +876,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 190 }, @@ -715,7 +887,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 195 }, @@ -724,7 +898,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 196 }, @@ -733,7 +909,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 197 }, @@ -742,7 +920,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 198 }, @@ -751,7 +931,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 199 }, @@ -760,7 +942,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 203 }, @@ -769,7 +953,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 204 }, @@ -778,7 +964,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 211 }, @@ -787,7 +975,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 212 }, @@ -796,7 +986,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 213 }, @@ -805,7 +997,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 219 }, @@ -814,7 +1008,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 220 }, @@ -823,7 +1019,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 221 }, @@ -832,7 +1030,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 227 }, @@ -841,7 +1041,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 228 }, @@ -850,7 +1052,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 233 }, @@ -859,7 +1063,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 234 }, @@ -868,7 +1074,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 235 }, @@ -877,7 +1085,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 236 }, @@ -886,7 +1096,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 237 }, @@ -895,7 +1107,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 241 }, @@ -904,7 +1118,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 242 }, @@ -913,7 +1129,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 249 }, @@ -922,7 +1140,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 250 }, @@ -931,7 +1151,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 251 }, @@ -940,7 +1162,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 252 }, @@ -949,7 +1173,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 253 }, @@ -958,7 +1184,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 254 }, @@ -967,7 +1195,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 255 }, @@ -976,7 +1206,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 261 }, @@ -985,7 +1217,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 262 }, @@ -994,7 +1228,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 263 }, @@ -1003,7 +1239,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 269 }, @@ -1012,7 +1250,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 270 }, @@ -1021,7 +1261,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 275 }, @@ -1030,7 +1272,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 276 }, @@ -1039,7 +1283,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 277 }, @@ -1048,7 +1294,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 278 }, @@ -1057,7 +1305,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 279 }, @@ -1066,7 +1316,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 283 }, @@ -1075,7 +1327,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 284 }, @@ -1084,7 +1338,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 291 }, @@ -1093,7 +1349,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 292 }, @@ -1102,7 +1360,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 293 }, @@ -1111,7 +1371,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 294 }, @@ -1120,7 +1382,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 295 }, @@ -1129,7 +1393,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 296 }, @@ -1138,7 +1404,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 302 }, @@ -1147,7 +1415,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 303 }, @@ -1156,7 +1426,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 308 }, @@ -1165,7 +1437,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 309 }, @@ -1174,7 +1448,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 310 }, @@ -1183,7 +1459,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 311 }, @@ -1192,7 +1470,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 312 }, @@ -1201,7 +1481,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 316 }, @@ -1210,7 +1492,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 317 }, @@ -1219,7 +1503,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 324 }, @@ -1228,7 +1514,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 325 }, @@ -1237,7 +1525,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 326 }, @@ -1246,7 +1536,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 332 }, @@ -1255,7 +1547,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 333 }, @@ -1264,7 +1558,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 334 }, @@ -1273,7 +1569,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 335 }, @@ -1282,7 +1580,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 336 }, @@ -1291,7 +1591,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 337 }, @@ -1300,7 +1602,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 338 }, @@ -1309,7 +1613,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 339 }, @@ -1318,7 +1624,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 340 }, @@ -1327,7 +1635,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 341 }, @@ -1336,7 +1646,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 342 }, @@ -1345,7 +1657,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 343 }, @@ -1354,7 +1668,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 344 }, @@ -1363,7 +1679,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 345 }, @@ -1372,7 +1690,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 346 }, @@ -1381,7 +1701,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 347 }, @@ -1390,7 +1712,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 348 }, @@ -1399,7 +1723,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 349 }, @@ -1408,7 +1734,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 350 }, @@ -1417,7 +1745,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 351 }, @@ -1426,7 +1756,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 357 }, @@ -1435,7 +1767,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 358 }, @@ -1444,7 +1778,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 359 }, @@ -1453,7 +1789,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 360 }, @@ -1462,7 +1800,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 361 }, @@ -1471,7 +1811,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 362 }, @@ -1480,7 +1822,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 363 }, @@ -1489,7 +1833,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 364 }, @@ -1498,7 +1844,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 365 }, @@ -1507,7 +1855,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 366 }, @@ -1516,7 +1866,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 367 }, @@ -1525,7 +1877,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 368 }, @@ -1534,7 +1888,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 369 }, @@ -1543,7 +1899,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 370 }, @@ -1552,7 +1910,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 371 }, @@ -1561,7 +1921,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 372 }, @@ -1570,7 +1932,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 373 }, @@ -1579,7 +1943,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 374 }, @@ -1588,7 +1954,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 375 }, @@ -1597,7 +1965,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 376 }, @@ -1606,7 +1976,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 377 }, @@ -1615,7 +1987,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 378 }, @@ -1624,7 +1998,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 379 }, @@ -1633,7 +2009,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 380 }, @@ -1642,7 +2020,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 381 }, @@ -1651,7 +2031,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 382 }, @@ -1660,7 +2042,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 388 }, @@ -1669,7 +2053,9 @@ "token": "2.71", "value": 2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 389 }, @@ -1678,7 +2064,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 393 }, @@ -1687,7 +2075,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 394 }, @@ -1696,7 +2086,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 395 }, @@ -1705,7 +2097,9 @@ "token": "3.14", "value": 3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 396 }, @@ -1714,7 +2108,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 400 }, @@ -1723,7 +2119,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 401 }, @@ -1732,7 +2130,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 407 }, @@ -1741,7 +2141,9 @@ "token": "2.71", "value": 2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 408 }, @@ -1750,7 +2152,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 412 }, @@ -1759,7 +2163,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 413 }, @@ -1768,7 +2174,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 414 }, @@ -1777,7 +2185,9 @@ "token": "-3.14", "value": -3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 415 }, @@ -1786,7 +2196,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 420 }, @@ -1795,7 +2207,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 421 }, @@ -1804,7 +2218,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 427 }, @@ -1813,7 +2229,9 @@ "token": "-2.71", "value": -2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 428 }, @@ -1822,7 +2240,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 433 }, @@ -1831,7 +2251,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 434 }, @@ -1840,7 +2262,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 435 }, @@ -1849,7 +2273,9 @@ "token": "3.14", "value": 3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 436 }, @@ -1858,7 +2284,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 440 }, @@ -1867,7 +2295,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 441 }, @@ -1876,7 +2306,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 447 }, @@ -1885,7 +2317,9 @@ "token": "-2.71", "value": -2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 448 }, @@ -1894,7 +2328,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 453 }, @@ -1903,7 +2339,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 454 }, @@ -1912,7 +2350,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 455 }, @@ -1921,7 +2361,9 @@ "token": "-3.14", "value": -3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 456 }, @@ -1930,7 +2372,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 461 }, @@ -1939,7 +2383,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 462 }, @@ -1948,7 +2394,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 468 }, @@ -1957,7 +2405,9 @@ "token": "0xABC", "value": 2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 469 }, @@ -1966,7 +2416,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 474 }, @@ -1975,7 +2427,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 475 }, @@ -1984,7 +2438,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 476 }, @@ -1993,7 +2449,9 @@ "token": "0xCBA", "value": 3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 477 }, @@ -2002,7 +2460,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 482 }, @@ -2011,7 +2471,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 483 }, @@ -2020,7 +2482,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 489 }, @@ -2029,7 +2493,9 @@ "token": "0xABC", "value": 2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 490 }, @@ -2038,7 +2504,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 495 }, @@ -2047,7 +2515,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 496 }, @@ -2056,7 +2526,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 497 }, @@ -2065,7 +2537,9 @@ "token": "-0xCBA", "value": -3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 498 }, @@ -2074,7 +2548,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 504 }, @@ -2083,7 +2559,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 505 }, @@ -2092,7 +2570,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 511 }, @@ -2101,7 +2581,9 @@ "token": "-0xABC", "value": -2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 512 }, @@ -2110,7 +2592,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 518 }, @@ -2119,7 +2603,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 519 }, @@ -2128,7 +2614,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 520 }, @@ -2137,7 +2625,9 @@ "token": "0xCBA", "value": 3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 521 }, @@ -2146,7 +2636,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 526 }, @@ -2155,7 +2647,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 527 }, @@ -2164,7 +2658,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 533 }, @@ -2173,7 +2669,9 @@ "token": "-0xABC", "value": -2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 534 }, @@ -2182,7 +2680,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 540 }, @@ -2191,7 +2691,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 541 }, @@ -2200,7 +2702,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 542 }, @@ -2209,7 +2713,9 @@ "token": "-0xCBA", "value": -3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 543 }, @@ -2218,7 +2724,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 549 }, @@ -2227,7 +2735,11 @@ "token": "-- Now same but with comments inside (C style comments could conflicts with operator if lexer is failing)", "value": "-- Now same but with comments inside (C style comments could conflicts with operator if lexer is failing)", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 551 }, @@ -2236,7 +2748,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 656 }, @@ -2245,7 +2759,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 657 }, @@ -2254,7 +2770,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 663 }, @@ -2263,7 +2781,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 664 }, @@ -2272,7 +2792,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 665 }, @@ -2281,7 +2803,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 666 }, @@ -2290,7 +2814,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 667 }, @@ -2299,7 +2825,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 668 }, @@ -2308,7 +2836,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 681 }, @@ -2317,7 +2847,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 682 }, @@ -2326,7 +2858,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 683 }, @@ -2335,7 +2869,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 689 }, @@ -2344,7 +2880,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 690 }, @@ -2353,7 +2891,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 691 }, @@ -2362,7 +2902,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 704 }, @@ -2371,7 +2913,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 705 }, @@ -2380,7 +2924,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 706 }, @@ -2389,7 +2935,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 707 }, @@ -2398,7 +2946,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 708 }, @@ -2407,7 +2957,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 709 }, @@ -2416,7 +2968,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 715 }, @@ -2425,7 +2979,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 716 }, @@ -2434,7 +2990,9 @@ "token": "/* comment with * inside */", "value": "/* comment with * inside */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 717 }, @@ -2443,7 +3001,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 744 }, @@ -2452,7 +3012,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 745 }, @@ -2461,7 +3023,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 746 }, @@ -2470,7 +3034,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 747 }, @@ -2479,7 +3045,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 748 }, @@ -2488,7 +3056,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 749 }, @@ -2497,7 +3067,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 755 }, @@ -2506,7 +3078,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 756 }, @@ -2515,7 +3089,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 769 }, @@ -2524,7 +3100,9 @@ "token": "field", "value": "field", "keyword": "FIELD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 770 }, @@ -2533,7 +3111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 775 }, @@ -2542,7 +3122,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 776 }, @@ -2551,7 +3133,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 789 }, @@ -2560,7 +3144,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 790 }, @@ -2569,7 +3155,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 791 }, @@ -2578,7 +3166,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 792 }, @@ -2587,7 +3177,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 805 }, @@ -2596,7 +3188,9 @@ "token": "8", "value": 8, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 806 }, @@ -2605,7 +3199,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 807 }, @@ -2614,7 +3210,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 808 }, @@ -2623,7 +3221,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 821 }, @@ -2632,7 +3232,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 822 }, @@ -2641,7 +3243,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 828 }, @@ -2650,7 +3254,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 829 }, @@ -2659,7 +3265,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 842 }, @@ -2668,7 +3276,9 @@ "token": "8", "value": 8, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 843 }, @@ -2677,7 +3287,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 844 }, @@ -2686,7 +3298,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 845 }, @@ -2695,7 +3309,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 858 }, @@ -2704,7 +3320,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 859 }, @@ -2713,7 +3331,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 860 }, @@ -2722,7 +3342,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 861 }, @@ -2731,7 +3353,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 874 }, @@ -2740,7 +3364,9 @@ "token": "field", "value": "field", "keyword": "FIELD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 875 }, @@ -2749,7 +3375,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 880 }, @@ -2758,7 +3386,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 881 }, @@ -2767,7 +3397,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 894 }, @@ -2776,7 +3408,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 895 }, @@ -2785,7 +3419,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 901 }, @@ -2794,7 +3430,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 902 }, @@ -2803,7 +3441,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 915 }, @@ -2812,7 +3452,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 916 }, @@ -2821,7 +3463,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 919 }, @@ -2830,7 +3474,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 920 }, @@ -2839,7 +3485,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 933 }, @@ -2848,7 +3496,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 934 }, @@ -2857,7 +3507,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 935 }, @@ -2866,7 +3518,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 936 }, @@ -2875,7 +3529,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 949 }, @@ -2884,7 +3540,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 950 }, @@ -2893,7 +3551,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 953 }, @@ -2902,7 +3562,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 954 }, @@ -2911,7 +3573,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 967 }, @@ -2920,7 +3584,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 968 }, @@ -2929,7 +3595,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 974 }, @@ -2938,7 +3606,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 975 }, @@ -2947,7 +3617,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 988 }, @@ -2956,7 +3628,9 @@ "token": "`escaped_field`", "value": "escaped_field", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 989 }, @@ -2965,7 +3639,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1004 }, @@ -2974,7 +3650,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1005 }, @@ -2983,7 +3661,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1018 }, @@ -2992,7 +3672,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1019 }, @@ -3001,7 +3683,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1020 }, @@ -3010,7 +3694,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1021 }, @@ -3019,7 +3705,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1034 }, @@ -3028,7 +3716,9 @@ "token": "16", "value": 16, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1035 }, @@ -3037,7 +3727,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1037 }, @@ -3046,7 +3738,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1038 }, @@ -3055,7 +3749,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1051 }, @@ -3064,7 +3760,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1052 }, @@ -3073,7 +3771,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1058 }, @@ -3082,7 +3782,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1059 }, @@ -3091,7 +3793,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1072 }, @@ -3100,7 +3804,9 @@ "token": "16", "value": 16, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1073 }, @@ -3109,7 +3815,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1075 }, @@ -3118,7 +3826,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1076 }, @@ -3127,7 +3837,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1089 }, @@ -3136,7 +3848,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1090 }, @@ -3145,7 +3859,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1091 }, @@ -3154,7 +3870,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1092 }, @@ -3163,7 +3881,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1105 }, @@ -3172,7 +3892,9 @@ "token": "`escaped_field`", "value": "escaped_field", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 1106 }, @@ -3181,7 +3903,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1121 }, @@ -3190,7 +3914,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1122 }, @@ -3199,7 +3925,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1135 }, @@ -3208,7 +3936,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1136 }, @@ -3217,7 +3947,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1142 }, @@ -3226,7 +3958,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1143 }, @@ -3235,7 +3969,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1156 }, @@ -3244,7 +3980,9 @@ "token": "`foo`", "value": "foo", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 1157 }, @@ -3253,7 +3991,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1162 }, @@ -3262,7 +4002,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1163 }, @@ -3271,7 +4013,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1176 }, @@ -3280,7 +4024,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1177 }, @@ -3289,7 +4035,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1178 }, @@ -3298,7 +4046,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1179 }, @@ -3307,7 +4057,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1192 }, @@ -3316,7 +4068,9 @@ "token": "`bar`", "value": "bar", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 1193 }, @@ -3325,7 +4079,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1198 }, @@ -3334,7 +4090,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1199 }, @@ -3343,7 +4101,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1212 }, @@ -3352,7 +4112,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1213 }, @@ -3361,7 +4123,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1219 }, @@ -3370,7 +4134,9 @@ "token": "/* `comment` */", "value": "/* `comment` */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1220 }, @@ -3379,7 +4145,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1235 }, @@ -3388,7 +4156,9 @@ "token": "`foo`", "value": "foo", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 1236 }, @@ -3397,7 +4167,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1241 }, @@ -3406,7 +4178,9 @@ "token": "/* `comment` */", "value": "/* `comment` */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1242 }, @@ -3415,7 +4189,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1257 }, @@ -3424,7 +4200,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1258 }, @@ -3433,7 +4211,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1259 }, @@ -3442,7 +4222,9 @@ "token": "/* `comment` */", "value": "/* `comment` */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1260 }, @@ -3451,7 +4233,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1275 }, @@ -3460,7 +4244,9 @@ "token": "`bar`", "value": "bar", "keyword": null, - "type": 8, + "type": { + "@type": "@48" + }, "flags": 2, "position": 1276 }, @@ -3469,7 +4255,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1281 }, @@ -3478,7 +4266,9 @@ "token": "/* `comment` */", "value": "/* `comment` */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1282 }, @@ -3487,7 +4277,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1297 }, @@ -3496,7 +4288,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1298 }, @@ -3505,7 +4299,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1304 }, @@ -3514,7 +4310,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1305 }, @@ -3523,7 +4321,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1318 }, @@ -3532,7 +4332,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1319 }, @@ -3541,7 +4343,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1320 }, @@ -3550,7 +4354,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1321 }, @@ -3559,7 +4365,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1334 }, @@ -3568,7 +4376,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1335 }, @@ -3577,7 +4387,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1336 }, @@ -3586,7 +4398,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1337 }, @@ -3595,7 +4409,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1350 }, @@ -3604,7 +4420,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1351 }, @@ -3613,7 +4431,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1352 }, @@ -3622,7 +4442,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1358 }, @@ -3631,7 +4453,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 1359 }, @@ -3640,7 +4464,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1364 }, @@ -3649,7 +4475,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1365 }, @@ -3658,7 +4486,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1378 }, @@ -3667,7 +4497,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1379 }, @@ -3676,7 +4508,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1392 }, @@ -3685,7 +4519,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1393 }, @@ -3694,7 +4530,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1394 }, @@ -3703,7 +4541,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1407 }, @@ -3712,7 +4552,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1408 }, @@ -3721,7 +4563,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1412 }, @@ -3730,7 +4574,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 1413 }, @@ -3739,7 +4585,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1420 }, @@ -3748,7 +4596,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1421 }, @@ -3757,7 +4607,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1422 }, @@ -3766,7 +4618,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1428 }, @@ -3775,7 +4629,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1429 }, @@ -3784,7 +4640,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1442 }, @@ -3793,7 +4651,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1443 }, @@ -3802,7 +4662,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1444 }, @@ -3811,7 +4673,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1450 }, @@ -3820,7 +4684,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 1451 }, @@ -3829,7 +4695,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1456 }, @@ -3838,7 +4706,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1457 }, @@ -3847,7 +4717,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1458 }, @@ -3856,7 +4728,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1459 }, @@ -3865,7 +4739,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1460 }, @@ -3874,7 +4750,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1473 }, @@ -3883,7 +4761,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1477 }, @@ -3892,7 +4772,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1490 }, @@ -3901,7 +4783,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 1491 }, @@ -3910,7 +4794,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1498 }, @@ -3919,7 +4805,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1499 }, @@ -3928,7 +4816,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1500 }, @@ -3937,7 +4827,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1513 }, @@ -3946,7 +4838,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1514 }, @@ -3955,7 +4849,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1515 }, @@ -3964,7 +4860,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1516 }, @@ -3973,7 +4871,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1529 }, @@ -3982,7 +4882,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1530 }, @@ -3991,7 +4893,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1531 }, @@ -4000,7 +4904,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1532 }, @@ -4009,7 +4915,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1538 }, @@ -4018,7 +4926,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1539 }, @@ -4027,7 +4937,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1540 }, @@ -4036,7 +4948,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1546 }, @@ -4045,7 +4959,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1547 }, @@ -4054,7 +4970,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1560 }, @@ -4063,7 +4981,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 1561 }, @@ -4072,7 +4992,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1566 }, @@ -4081,7 +5003,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1567 }, @@ -4090,7 +5014,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1568 }, @@ -4099,7 +5025,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1569 }, @@ -4108,7 +5036,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1570 }, @@ -4117,7 +5047,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1583 }, @@ -4126,7 +5058,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1584 }, @@ -4135,7 +5069,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1588 }, @@ -4144,7 +5080,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1589 }, @@ -4153,7 +5091,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1602 }, @@ -4162,7 +5102,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 1603 }, @@ -4171,7 +5113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1610 }, @@ -4180,7 +5124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1611 }, @@ -4189,7 +5135,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1612 }, @@ -4198,7 +5146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1625 }, @@ -4207,7 +5157,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1626 }, @@ -4216,7 +5168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1627 }, @@ -4225,7 +5179,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1628 }, @@ -4234,7 +5190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1641 }, @@ -4243,7 +5201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1642 }, @@ -4252,7 +5212,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1643 }, @@ -4261,7 +5223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1649 }, @@ -4270,7 +5234,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 1650 }, @@ -4279,7 +5245,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1655 }, @@ -4288,7 +5256,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1656 }, @@ -4297,7 +5267,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1657 }, @@ -4306,7 +5278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1658 }, @@ -4315,7 +5289,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1659 }, @@ -4324,7 +5300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1663 }, @@ -4333,7 +5311,9 @@ "token": "nb_rows", "value": "nb_rows", "keyword": null, - "type": 0, + "type": { + "@type": "@39" + }, "flags": 0, "position": 1664 }, @@ -4342,7 +5322,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1671 }, @@ -4351,7 +5333,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1672 }, @@ -4360,7 +5344,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1673 }, @@ -4369,7 +5355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1679 }, @@ -4378,7 +5366,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1680 }, @@ -4387,7 +5377,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1681 }, @@ -4396,7 +5388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1682 }, @@ -4405,7 +5399,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1683 }, @@ -4414,7 +5410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1684 }, @@ -4423,7 +5421,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1685 }, @@ -4432,7 +5432,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1686 }, @@ -4441,7 +5443,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1687 }, @@ -4450,7 +5454,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1688 }, @@ -4459,7 +5465,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1701 }, @@ -4468,7 +5476,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1702 }, @@ -4477,7 +5487,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1703 }, @@ -4486,7 +5498,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1704 }, @@ -4495,7 +5509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1717 }, @@ -4504,7 +5520,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1718 }, @@ -4513,7 +5531,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1719 }, @@ -4522,7 +5542,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1720 }, @@ -4531,7 +5553,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1721 }, @@ -4540,7 +5564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1722 }, @@ -4549,7 +5575,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1723 }, @@ -4558,7 +5586,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1724 }, @@ -4567,7 +5597,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1725 }, @@ -4576,7 +5608,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1726 }, @@ -4585,7 +5619,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1732 }, @@ -4594,7 +5630,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1733 }, @@ -4603,7 +5641,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1746 }, @@ -4612,7 +5652,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1747 }, @@ -4621,7 +5663,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1748 }, @@ -4630,7 +5674,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1749 }, @@ -4639,7 +5685,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1762 }, @@ -4648,7 +5696,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1763 }, @@ -4657,7 +5707,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1764 }, @@ -4666,7 +5718,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1765 }, @@ -4675,7 +5729,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1778 }, @@ -4684,7 +5740,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1779 }, @@ -4693,7 +5751,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1780 }, @@ -4702,7 +5762,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1781 }, @@ -4711,7 +5773,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1782 }, @@ -4720,7 +5784,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1795 }, @@ -4729,7 +5795,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1796 }, @@ -4738,7 +5806,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1797 }, @@ -4747,7 +5817,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1798 }, @@ -4756,7 +5828,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1811 }, @@ -4765,7 +5839,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1812 }, @@ -4774,7 +5850,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1813 }, @@ -4783,7 +5861,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1814 }, @@ -4792,7 +5872,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1815 }, @@ -4801,7 +5883,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1828 }, @@ -4810,7 +5894,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1829 }, @@ -4819,7 +5905,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1830 }, @@ -4828,7 +5916,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1831 }, @@ -4837,7 +5927,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1844 }, @@ -4846,7 +5938,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1845 }, @@ -4855,7 +5949,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1846 }, @@ -4864,7 +5960,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1847 }, @@ -4873,7 +5971,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1848 }, @@ -4882,7 +5982,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1861 }, @@ -4891,7 +5993,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1862 }, @@ -4900,7 +6004,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1863 }, @@ -4909,7 +6015,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1864 }, @@ -4918,7 +6026,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1877 }, @@ -4927,7 +6037,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1878 }, @@ -4936,7 +6048,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1879 }, @@ -4945,7 +6059,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1880 }, @@ -4954,7 +6070,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1881 }, @@ -4963,7 +6081,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1882 }, @@ -4972,7 +6092,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1883 }, @@ -4981,7 +6103,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1896 }, @@ -4990,7 +6114,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1897 }, @@ -4999,7 +6125,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1903 }, @@ -5008,7 +6136,9 @@ "token": "2.71", "value": 2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 1904 }, @@ -5017,7 +6147,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1908 }, @@ -5026,7 +6158,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1909 }, @@ -5035,7 +6169,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1922 }, @@ -5044,7 +6180,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1923 }, @@ -5053,7 +6191,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1924 }, @@ -5062,7 +6202,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1925 }, @@ -5071,7 +6213,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1938 }, @@ -5080,7 +6224,9 @@ "token": "3.14", "value": 3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 1939 }, @@ -5089,7 +6235,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1943 }, @@ -5098,7 +6246,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1944 }, @@ -5107,7 +6257,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1950 }, @@ -5116,7 +6268,9 @@ "token": "2.71", "value": 2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 1951 }, @@ -5125,7 +6279,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1955 }, @@ -5134,7 +6290,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1956 }, @@ -5143,7 +6301,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1969 }, @@ -5152,7 +6312,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 1970 }, @@ -5161,7 +6323,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1971 }, @@ -5170,7 +6334,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 1972 }, @@ -5179,7 +6345,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1985 }, @@ -5188,7 +6356,9 @@ "token": "-3.14", "value": -3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 1986 }, @@ -5197,7 +6367,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1991 }, @@ -5206,7 +6378,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1992 }, @@ -5215,7 +6389,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1998 }, @@ -5224,7 +6400,9 @@ "token": "-2.71", "value": -2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 1999 }, @@ -5233,7 +6411,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2004 }, @@ -5242,7 +6422,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2005 }, @@ -5251,7 +6433,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2018 }, @@ -5260,7 +6444,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2019 }, @@ -5269,7 +6455,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2020 }, @@ -5278,7 +6466,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2021 }, @@ -5287,7 +6477,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2034 }, @@ -5296,7 +6488,9 @@ "token": "3.14", "value": 3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 2, "position": 2035 }, @@ -5305,7 +6499,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2039 }, @@ -5314,7 +6510,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2040 }, @@ -5323,7 +6521,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2046 }, @@ -5332,7 +6532,9 @@ "token": "-2.71", "value": -2.71, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 2047 }, @@ -5341,7 +6543,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2052 }, @@ -5350,7 +6554,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2053 }, @@ -5359,7 +6565,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2066 }, @@ -5368,7 +6576,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2067 }, @@ -5377,7 +6587,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2068 }, @@ -5386,7 +6598,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2069 }, @@ -5395,7 +6609,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2082 }, @@ -5404,7 +6620,9 @@ "token": "-3.14", "value": -3.14, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 10, "position": 2083 }, @@ -5413,7 +6631,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2088 }, @@ -5422,7 +6642,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2089 }, @@ -5431,7 +6653,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2095 }, @@ -5440,7 +6664,9 @@ "token": "0xABC", "value": 2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 2096 }, @@ -5449,7 +6675,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2101 }, @@ -5458,7 +6686,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2102 }, @@ -5467,7 +6697,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2115 }, @@ -5476,7 +6708,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2116 }, @@ -5485,7 +6719,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2117 }, @@ -5494,7 +6730,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2118 }, @@ -5503,7 +6741,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2131 }, @@ -5512,7 +6752,9 @@ "token": "0xCBA", "value": 3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 2132 }, @@ -5521,7 +6763,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2137 }, @@ -5530,7 +6774,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2138 }, @@ -5539,7 +6785,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2144 }, @@ -5548,7 +6796,9 @@ "token": "0xABC", "value": 2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 2145 }, @@ -5557,7 +6807,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2150 }, @@ -5566,7 +6818,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2151 }, @@ -5575,7 +6829,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2164 }, @@ -5584,7 +6840,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2165 }, @@ -5593,7 +6851,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2166 }, @@ -5602,7 +6862,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2167 }, @@ -5611,7 +6873,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2180 }, @@ -5620,7 +6884,9 @@ "token": "-0xCBA", "value": -3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 2181 }, @@ -5629,7 +6895,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2187 }, @@ -5638,7 +6906,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2188 }, @@ -5647,7 +6917,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2194 }, @@ -5656,7 +6928,9 @@ "token": "-0xABC", "value": -2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 2195 }, @@ -5665,7 +6939,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2201 }, @@ -5674,7 +6950,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2202 }, @@ -5683,7 +6961,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2215 }, @@ -5692,7 +6972,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2216 }, @@ -5701,7 +6983,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2217 }, @@ -5710,7 +6994,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2218 }, @@ -5719,7 +7005,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2231 }, @@ -5728,7 +7016,9 @@ "token": "0xCBA", "value": 3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 1, "position": 2232 }, @@ -5737,7 +7027,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2237 }, @@ -5746,7 +7038,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2238 }, @@ -5755,7 +7049,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2244 }, @@ -5764,7 +7060,9 @@ "token": "-0xABC", "value": -2748, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 2245 }, @@ -5773,7 +7071,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2251 }, @@ -5782,7 +7082,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2252 }, @@ -5791,7 +7093,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2265 }, @@ -5800,7 +7104,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2266 }, @@ -5809,7 +7115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2267 }, @@ -5818,7 +7126,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2268 }, @@ -5827,7 +7137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2281 }, @@ -5836,7 +7148,9 @@ "token": "-0xCBA", "value": -3258, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 9, "position": 2282 }, @@ -5845,7 +7159,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2288 }, @@ -5854,7 +7170,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2289 }, @@ -5863,7 +7181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2295 }, @@ -5872,7 +7192,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2296 }, @@ -5881,7 +7203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2297 }, @@ -5890,7 +7214,9 @@ "token": "/* comment with FROM keyword */", "value": "/* comment with FROM keyword */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2298 }, @@ -5899,7 +7225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2329 }, @@ -5908,7 +7236,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2330 }, @@ -5917,7 +7247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2331 }, @@ -5926,7 +7258,9 @@ "token": "/* comment with USING keyword */", "value": "/* comment with USING keyword */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2332 }, @@ -5935,7 +7269,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2364 }, @@ -5944,7 +7280,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2365 }, @@ -5953,7 +7291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2366 }, @@ -5962,7 +7302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2372 }, @@ -5971,7 +7313,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2373 }, @@ -5980,7 +7324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2374 }, @@ -5989,7 +7335,9 @@ "token": "/* comment with ) */", "value": "/* comment with ) */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2375 }, @@ -5998,7 +7346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2395 }, @@ -6007,7 +7357,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 2396 }, @@ -6016,7 +7368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2397 }, @@ -6025,7 +7379,9 @@ "token": "/* comment with , keyword */", "value": "/* comment with , keyword */", "keyword": null, - "type": 4, + "type": { + "@type": "@255" + }, "flags": 2, "position": 2398 }, @@ -6034,7 +7390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2426 }, @@ -6043,27 +7401,29 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2427 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 672, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexOperatorStarIsWildcard.out b/tests/data/lexer/lexOperatorStarIsWildcard.out index 68bb6bfaa..37bd31303 100644 --- a/tests/data/lexer/lexOperatorStarIsWildcard.out +++ b/tests/data/lexer/lexOperatorStarIsWildcard.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM\nSELECT *FROM\nSELECT a.* FROM\nSELECT a.*,b.* FROM\nSELECT a.*, b.* FROM\nSELECT a.*, /* with a comment */ b.* FROM\nSELECT a.*,/* with a comment */b.* FROM\nSELECT a.* /* comment */ FROM\nSELECT a.*/* comment */ FROM\nSELECT DISTINCT * FROM\nSELECT DISTINCT *FROM\nSELECT DISTINCT a.* FROM\nSELECT DISTINCT a.*,b.* FROM\nSELECT DISTINCT a.*, b.* FROM\nSELECT DISTINCT a.*, /* with a comment */ b.* FROM\nSELECT DISTINCT a.*,/* with a comment */b.* FROM\nSELECT DISTINCT a.* /* comment */ FROM\nSELECT DISTINCT a.*/* comment */ FROM\nSELECT `*` FROM table_name\nSELECT `*`.* FROM table_name AS `*`\nSELECT COUNT(*) FROM table_name\nSELECT COUNT( * ) FROM table_name\nSELECT COUNT( * /* comment with *,USING,FROM */) FROM table_name\nSELECT COUNT(`*`) FROM table_name\nSELECT 1 FROM table_name WHERE LABEL LIKE '%*%'\nDELETE a.* USING\nDELETE a.*, b.* USING\nDELETE a.* ,b.* USING\nDELETE a.* , b.* USING\nDELETE a.* /* comment */ USING\nDELETE a.* /* comment */, b.* /*comment*/ USING\nDELETE a.* /* comment */ ,b.* /*comment*/ USING\nDELETE a.* /* comment */ , b.* /*comment*/ USING\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM\nSELECT *FROM\nSELECT a.* FROM\nSELECT a.*,b.* FROM\nSELECT a.*, b.* FROM\nSELECT a.*, /* with a comment */ b.* FROM\nSELECT a.*,/* with a comment */b.* FROM\nSELECT a.* /* comment */ FROM\nSELECT a.*/* comment */ FROM\nSELECT DISTINCT * FROM\nSELECT DISTINCT *FROM\nSELECT DISTINCT a.* FROM\nSELECT DISTINCT a.*,b.* FROM\nSELECT DISTINCT a.*, b.* FROM\nSELECT DISTINCT a.*, /* with a comment */ b.* FROM\nSELECT DISTINCT a.*,/* with a comment */b.* FROM\nSELECT DISTINCT a.* /* comment */ FROM\nSELECT DISTINCT a.*/* comment */ FROM\nSELECT `*` FROM table_name\nSELECT `*`.* FROM table_name AS `*`\nSELECT COUNT(*) FROM table_name\nSELECT COUNT( * ) FROM table_name\nSELECT COUNT( * /* comment with *,USING,FROM */) FROM table_name\nSELECT COUNT(`*`) FROM table_name\nSELECT 1 FROM table_name WHERE LABEL LIKE '%*%'\nDELETE a.* USING\nDELETE a.*, b.* USING\nDELETE a.* ,b.* USING\nDELETE a.* , b.* USING\nDELETE a.* /* comment */ USING\nDELETE a.* /* comment */, b.* /*comment*/ USING\nDELETE a.* /* comment */ ,b.* /*comment*/ USING\nDELETE a.* /* comment */ , b.* /*comment*/ USING\n\n", "len": 1068, "last": 1068, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 398, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +111,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 21 }, @@ -94,7 +122,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -103,7 +133,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -112,7 +144,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -121,7 +155,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -130,7 +166,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 34 }, @@ -139,7 +179,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 35 }, @@ -148,7 +190,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 36 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -166,7 +212,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -175,7 +223,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -184,7 +234,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -202,7 +256,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 50 }, @@ -211,7 +267,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 51 }, @@ -220,7 +278,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 52 }, @@ -229,7 +289,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 53 }, @@ -238,7 +300,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 54 }, @@ -247,7 +311,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 55 }, @@ -256,7 +322,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 56 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -274,7 +344,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 58 }, @@ -283,7 +355,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -292,7 +366,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -310,7 +388,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 70 }, @@ -319,7 +399,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -328,7 +410,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 72 }, @@ -337,7 +421,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 73 }, @@ -346,7 +432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -355,7 +443,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 75 }, @@ -364,7 +454,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 76 }, @@ -373,7 +465,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 77 }, @@ -382,7 +476,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -391,7 +487,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 79 }, @@ -400,7 +498,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -409,7 +509,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 84 }, @@ -418,7 +520,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -427,7 +531,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 91 }, @@ -436,7 +542,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 92 }, @@ -445,7 +553,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 93 }, @@ -454,7 +564,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 94 }, @@ -463,7 +575,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -472,7 +586,11 @@ "token": "/* with a comment */", "value": "/* with a comment */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 96 }, @@ -481,7 +599,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -490,7 +610,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 117 }, @@ -499,7 +621,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 118 }, @@ -508,7 +632,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 119 }, @@ -517,7 +643,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -526,7 +654,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 121 }, @@ -535,7 +665,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -544,7 +676,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 126 }, @@ -553,7 +687,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -562,7 +698,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 133 }, @@ -571,7 +709,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 134 }, @@ -580,7 +720,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 135 }, @@ -589,7 +731,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 136 }, @@ -598,7 +742,9 @@ "token": "/* with a comment */", "value": "/* with a comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 137 }, @@ -607,7 +753,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 157 }, @@ -616,7 +764,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 158 }, @@ -625,7 +775,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 159 }, @@ -634,7 +786,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -643,7 +797,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 161 }, @@ -652,7 +808,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 165 }, @@ -661,7 +819,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 166 }, @@ -670,7 +830,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 172 }, @@ -679,7 +841,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 173 }, @@ -688,7 +852,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 174 }, @@ -697,7 +863,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 175 }, @@ -706,7 +874,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -715,7 +885,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 177 }, @@ -724,7 +896,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 190 }, @@ -733,7 +907,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 191 }, @@ -742,7 +918,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 195 }, @@ -751,7 +929,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 196 }, @@ -760,7 +940,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 202 }, @@ -769,7 +951,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 203 }, @@ -778,7 +962,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 204 }, @@ -787,7 +973,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 205 }, @@ -796,7 +984,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 206 }, @@ -805,7 +995,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 219 }, @@ -814,7 +1006,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 220 }, @@ -823,7 +1017,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 224 }, @@ -832,7 +1028,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 225 }, @@ -841,7 +1039,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 231 }, @@ -850,7 +1050,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 232 }, @@ -859,7 +1061,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 240 }, @@ -868,7 +1072,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 241 }, @@ -877,7 +1083,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 242 }, @@ -886,7 +1094,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 243 }, @@ -895,7 +1105,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 247 }, @@ -904,7 +1116,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 248 }, @@ -913,7 +1127,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 254 }, @@ -922,7 +1138,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 255 }, @@ -931,7 +1149,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -940,7 +1160,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 264 }, @@ -949,7 +1171,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 265 }, @@ -958,7 +1182,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 269 }, @@ -967,7 +1193,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 270 }, @@ -976,7 +1204,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 276 }, @@ -985,7 +1215,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 277 }, @@ -994,7 +1226,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -1003,7 +1237,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 286 }, @@ -1012,7 +1248,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 287 }, @@ -1021,7 +1259,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 288 }, @@ -1030,7 +1270,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 289 }, @@ -1039,7 +1281,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 290 }, @@ -1048,7 +1292,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 294 }, @@ -1057,7 +1303,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 295 }, @@ -1066,7 +1314,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 301 }, @@ -1075,7 +1325,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 302 }, @@ -1084,7 +1336,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 310 }, @@ -1093,7 +1347,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 311 }, @@ -1102,7 +1358,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 312 }, @@ -1111,7 +1369,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 313 }, @@ -1120,7 +1380,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 314 }, @@ -1129,7 +1391,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 315 }, @@ -1138,7 +1402,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 316 }, @@ -1147,7 +1413,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 317 }, @@ -1156,7 +1424,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 318 }, @@ -1165,7 +1435,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 319 }, @@ -1174,7 +1446,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 323 }, @@ -1183,7 +1457,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 324 }, @@ -1192,7 +1468,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 330 }, @@ -1201,7 +1479,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 331 }, @@ -1210,7 +1490,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 339 }, @@ -1219,7 +1501,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 340 }, @@ -1228,7 +1512,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 341 }, @@ -1237,7 +1523,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 342 }, @@ -1246,7 +1534,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 343 }, @@ -1255,7 +1545,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 344 }, @@ -1264,7 +1556,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 345 }, @@ -1273,7 +1567,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 346 }, @@ -1282,7 +1578,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 347 }, @@ -1291,7 +1589,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 348 }, @@ -1300,7 +1600,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 349 }, @@ -1309,7 +1611,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 353 }, @@ -1318,7 +1622,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 354 }, @@ -1327,7 +1633,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 360 }, @@ -1336,7 +1644,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 361 }, @@ -1345,7 +1655,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 369 }, @@ -1354,7 +1666,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 370 }, @@ -1363,7 +1677,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 371 }, @@ -1372,7 +1688,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 372 }, @@ -1381,7 +1699,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 373 }, @@ -1390,7 +1710,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 374 }, @@ -1399,7 +1721,9 @@ "token": "/* with a comment */", "value": "/* with a comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 375 }, @@ -1408,7 +1732,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 395 }, @@ -1417,7 +1743,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 396 }, @@ -1426,7 +1754,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 397 }, @@ -1435,7 +1765,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 398 }, @@ -1444,7 +1776,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 399 }, @@ -1453,7 +1787,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 400 }, @@ -1462,7 +1798,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 404 }, @@ -1471,7 +1809,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 405 }, @@ -1480,7 +1820,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 411 }, @@ -1489,7 +1831,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 412 }, @@ -1498,7 +1842,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 420 }, @@ -1507,7 +1853,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 421 }, @@ -1516,7 +1864,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 422 }, @@ -1525,7 +1875,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 423 }, @@ -1534,7 +1886,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 424 }, @@ -1543,7 +1897,9 @@ "token": "/* with a comment */", "value": "/* with a comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 425 }, @@ -1552,7 +1908,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 445 }, @@ -1561,7 +1919,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 446 }, @@ -1570,7 +1930,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 447 }, @@ -1579,7 +1941,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 448 }, @@ -1588,7 +1952,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 449 }, @@ -1597,7 +1963,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 453 }, @@ -1606,7 +1974,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 454 }, @@ -1615,7 +1985,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 460 }, @@ -1624,7 +1996,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 461 }, @@ -1633,7 +2007,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 469 }, @@ -1642,7 +2018,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 470 }, @@ -1651,7 +2029,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 471 }, @@ -1660,7 +2040,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 472 }, @@ -1669,7 +2051,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 473 }, @@ -1678,7 +2062,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 474 }, @@ -1687,7 +2073,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 487 }, @@ -1696,7 +2084,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 488 }, @@ -1705,7 +2095,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 492 }, @@ -1714,7 +2106,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 493 }, @@ -1723,7 +2117,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 499 }, @@ -1732,7 +2128,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 500 }, @@ -1741,7 +2139,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 508 }, @@ -1750,7 +2150,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 509 }, @@ -1759,7 +2161,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 510 }, @@ -1768,7 +2172,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 511 }, @@ -1777,7 +2183,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 512 }, @@ -1786,7 +2194,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 525 }, @@ -1795,7 +2205,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 526 }, @@ -1804,7 +2216,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 530 }, @@ -1813,7 +2227,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 531 }, @@ -1822,7 +2238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 537 }, @@ -1831,7 +2249,11 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 538 }, @@ -1840,7 +2262,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 541 }, @@ -1849,7 +2273,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 542 }, @@ -1858,7 +2284,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 546 }, @@ -1867,7 +2295,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 547 }, @@ -1876,7 +2306,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 557 }, @@ -1885,7 +2317,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 558 }, @@ -1894,7 +2328,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 564 }, @@ -1903,7 +2339,9 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "@210" + }, "flags": 2, "position": 565 }, @@ -1912,7 +2350,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 568 }, @@ -1921,7 +2361,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 569 }, @@ -1930,7 +2372,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 570 }, @@ -1939,7 +2383,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 571 }, @@ -1948,7 +2394,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 575 }, @@ -1957,7 +2405,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 576 }, @@ -1966,7 +2416,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 586 }, @@ -1975,7 +2427,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 587 }, @@ -1984,7 +2438,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 589 }, @@ -1993,7 +2449,9 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "@210" + }, "flags": 2, "position": 590 }, @@ -2002,7 +2460,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 593 }, @@ -2011,7 +2471,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 594 }, @@ -2020,7 +2482,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 600 }, @@ -2029,7 +2493,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 601 }, @@ -2038,7 +2504,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 606 }, @@ -2047,7 +2515,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 607 }, @@ -2056,7 +2526,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 608 }, @@ -2065,7 +2537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 609 }, @@ -2074,7 +2548,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 610 }, @@ -2083,7 +2559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 614 }, @@ -2092,7 +2570,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 615 }, @@ -2101,7 +2581,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 625 }, @@ -2110,7 +2592,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 626 }, @@ -2119,7 +2603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 632 }, @@ -2128,7 +2614,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 633 }, @@ -2137,7 +2625,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 638 }, @@ -2146,7 +2636,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 639 }, @@ -2155,7 +2647,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 640 }, @@ -2164,7 +2658,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 641 }, @@ -2173,7 +2669,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 642 }, @@ -2182,7 +2680,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 643 }, @@ -2191,7 +2691,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 644 }, @@ -2200,7 +2702,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 648 }, @@ -2209,7 +2713,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 649 }, @@ -2218,7 +2724,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 659 }, @@ -2227,7 +2735,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 660 }, @@ -2236,7 +2746,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 666 }, @@ -2245,7 +2757,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 667 }, @@ -2254,7 +2768,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 672 }, @@ -2263,7 +2779,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 673 }, @@ -2272,7 +2790,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 674 }, @@ -2281,7 +2801,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 675 }, @@ -2290,7 +2812,9 @@ "token": "/* comment with *,USING,FROM */", "value": "/* comment with *,USING,FROM */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 676 }, @@ -2299,7 +2823,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 707 }, @@ -2308,7 +2834,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 708 }, @@ -2317,7 +2845,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 709 }, @@ -2326,7 +2856,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 713 }, @@ -2335,7 +2867,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 714 }, @@ -2344,7 +2878,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 724 }, @@ -2353,7 +2889,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 725 }, @@ -2362,7 +2900,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 731 }, @@ -2371,7 +2911,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 732 }, @@ -2380,7 +2922,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 737 }, @@ -2389,7 +2933,9 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "@210" + }, "flags": 2, "position": 738 }, @@ -2398,7 +2944,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 741 }, @@ -2407,7 +2955,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 742 }, @@ -2416,7 +2966,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 743 }, @@ -2425,7 +2977,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 747 }, @@ -2434,7 +2988,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 748 }, @@ -2443,7 +2999,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 758 }, @@ -2452,7 +3010,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 759 }, @@ -2461,7 +3021,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 765 }, @@ -2470,7 +3032,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 766 }, @@ -2479,7 +3045,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 767 }, @@ -2488,7 +3056,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 768 }, @@ -2497,7 +3067,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 772 }, @@ -2506,7 +3078,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 773 }, @@ -2515,7 +3089,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 783 }, @@ -2524,7 +3100,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 784 }, @@ -2533,7 +3111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 789 }, @@ -2542,7 +3122,9 @@ "token": "LABEL", "value": "LABEL", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 790 }, @@ -2551,7 +3133,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 795 }, @@ -2560,7 +3144,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 796 }, @@ -2569,7 +3155,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 800 }, @@ -2578,7 +3166,11 @@ "token": "'%*%'", "value": "%*%", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 801 }, @@ -2587,7 +3179,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 806 }, @@ -2596,7 +3190,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 807 }, @@ -2605,7 +3201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 813 }, @@ -2614,7 +3212,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 814 }, @@ -2623,7 +3223,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 815 }, @@ -2632,7 +3234,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 816 }, @@ -2641,7 +3245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 817 }, @@ -2650,7 +3256,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 818 }, @@ -2659,7 +3267,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 823 }, @@ -2668,7 +3278,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 824 }, @@ -2677,7 +3289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 830 }, @@ -2686,7 +3300,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 831 }, @@ -2695,7 +3311,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 832 }, @@ -2704,7 +3322,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 833 }, @@ -2713,7 +3333,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 834 }, @@ -2722,7 +3344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 835 }, @@ -2731,7 +3355,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 836 }, @@ -2740,7 +3366,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 837 }, @@ -2749,7 +3377,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 838 }, @@ -2758,7 +3388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 839 }, @@ -2767,7 +3399,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 840 }, @@ -2776,7 +3410,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 845 }, @@ -2785,7 +3421,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 846 }, @@ -2794,7 +3432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 852 }, @@ -2803,7 +3443,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 853 }, @@ -2812,7 +3454,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 854 }, @@ -2821,7 +3465,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 855 }, @@ -2830,7 +3476,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 856 }, @@ -2839,7 +3487,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 857 }, @@ -2848,7 +3498,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 858 }, @@ -2857,7 +3509,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 859 }, @@ -2866,7 +3520,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 860 }, @@ -2875,7 +3531,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 861 }, @@ -2884,7 +3542,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 862 }, @@ -2893,7 +3553,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 867 }, @@ -2902,7 +3564,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 868 }, @@ -2911,7 +3575,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 874 }, @@ -2920,7 +3586,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 875 }, @@ -2929,7 +3597,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 876 }, @@ -2938,7 +3608,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 877 }, @@ -2947,7 +3619,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 878 }, @@ -2956,7 +3630,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 879 }, @@ -2965,7 +3641,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 880 }, @@ -2974,7 +3652,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 881 }, @@ -2983,7 +3663,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 882 }, @@ -2992,7 +3674,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 883 }, @@ -3001,7 +3685,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 884 }, @@ -3010,7 +3696,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 885 }, @@ -3019,7 +3707,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 890 }, @@ -3028,7 +3718,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 891 }, @@ -3037,7 +3729,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 897 }, @@ -3046,7 +3740,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 898 }, @@ -3055,7 +3751,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 899 }, @@ -3064,7 +3762,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 900 }, @@ -3073,7 +3773,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 901 }, @@ -3082,7 +3784,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 902 }, @@ -3091,7 +3795,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 915 }, @@ -3100,7 +3806,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 916 }, @@ -3109,7 +3817,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 921 }, @@ -3118,7 +3828,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 922 }, @@ -3127,7 +3839,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 928 }, @@ -3136,7 +3850,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 929 }, @@ -3145,7 +3861,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 930 }, @@ -3154,7 +3872,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 931 }, @@ -3163,7 +3883,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 932 }, @@ -3172,7 +3894,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 933 }, @@ -3181,7 +3905,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 946 }, @@ -3190,7 +3916,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 947 }, @@ -3199,7 +3927,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 948 }, @@ -3208,7 +3938,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 949 }, @@ -3217,7 +3949,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 950 }, @@ -3226,7 +3960,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 951 }, @@ -3235,7 +3971,9 @@ "token": "/*comment*/", "value": "/*comment*/", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 952 }, @@ -3244,7 +3982,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 963 }, @@ -3253,7 +3993,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 964 }, @@ -3262,7 +4004,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 969 }, @@ -3271,7 +4015,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 970 }, @@ -3280,7 +4026,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 976 }, @@ -3289,7 +4037,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 977 }, @@ -3298,7 +4048,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 978 }, @@ -3307,7 +4059,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 979 }, @@ -3316,7 +4070,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 980 }, @@ -3325,7 +4081,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 981 }, @@ -3334,7 +4092,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 994 }, @@ -3343,7 +4103,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 995 }, @@ -3352,7 +4114,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 996 }, @@ -3361,7 +4125,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 997 }, @@ -3370,7 +4136,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 998 }, @@ -3379,7 +4147,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 999 }, @@ -3388,7 +4158,9 @@ "token": "/*comment*/", "value": "/*comment*/", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 1000 }, @@ -3397,7 +4169,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1011 }, @@ -3406,7 +4180,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1012 }, @@ -3415,7 +4191,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1017 }, @@ -3424,7 +4202,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1018 }, @@ -3433,7 +4213,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1024 }, @@ -3442,7 +4224,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1025 }, @@ -3451,7 +4235,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 1026 }, @@ -3460,7 +4246,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 1027 }, @@ -3469,7 +4257,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1028 }, @@ -3478,7 +4268,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 1029 }, @@ -3487,7 +4279,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1042 }, @@ -3496,7 +4290,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 1043 }, @@ -3505,7 +4301,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1044 }, @@ -3514,7 +4312,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1045 }, @@ -3523,7 +4323,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 1046 }, @@ -3532,7 +4334,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 1047 }, @@ -3541,7 +4345,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1048 }, @@ -3550,7 +4356,9 @@ "token": "/*comment*/", "value": "/*comment*/", "keyword": null, - "type": 4, + "type": { + "@type": "@58" + }, "flags": 2, "position": 1049 }, @@ -3559,7 +4367,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1060 }, @@ -3568,7 +4378,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1061 }, @@ -3577,27 +4389,29 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1066 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 398, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexString.out b/tests/data/lexer/lexString.out index 5b697f6cd..6358d1cc3 100644 --- a/tests/data/lexer/lexString.out +++ b/tests/data/lexer/lexString.out @@ -2,18 +2,26 @@ "query": "SELECT 'foo', \"bar\", \"foo\\\\ bar\"", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 'foo', \"bar\", \"foo\\\\ bar\"", "len": 32, "last": 32, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "'foo'", "value": "foo", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 12 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -58,7 +80,9 @@ "token": "\"bar\"", "value": "bar", "keyword": null, - "type": 7, + "type": { + "@type": "@7" + }, "flags": 2, "position": 14 }, @@ -67,7 +91,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 19 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,27 +113,29 @@ "token": "\"foo\\\\ bar\"", "value": "foo\\ bar", "keyword": null, - "type": 7, + "type": { + "@type": "@7" + }, "flags": 2, "position": 21 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexStringErr1.out b/tests/data/lexer/lexStringErr1.out index e462fd012..52fd1d2a1 100644 --- a/tests/data/lexer/lexStringErr1.out +++ b/tests/data/lexer/lexStringErr1.out @@ -2,18 +2,26 @@ "query": "SELECT 'foo', \"bar\", \"foo\\\\ bar", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 'foo', \"bar\", \"foo\\\\ bar", "len": 31, "last": 32, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "'foo'", "value": "foo", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 12 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -58,7 +80,9 @@ "token": "\"bar\"", "value": "bar", "keyword": null, - "type": 7, + "type": { + "@type": "@7" + }, "flags": 2, "position": 14 }, @@ -67,7 +91,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 19 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,27 +113,29 @@ "token": "\"foo\\\\ bar", "value": "foo\\ ba", "keyword": null, - "type": 7, + "type": { + "@type": "@7" + }, "flags": 2, "position": 21 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbol.out b/tests/data/lexer/lexSymbol.out index e2b04eb96..08b65d864 100644 --- a/tests/data/lexer/lexSymbol.out +++ b/tests/data/lexer/lexSymbol.out @@ -2,18 +2,26 @@ "query": "SET @idx := 1;\nSELECT @idx, @`idx`, @'idx', @@hostname", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET @idx := 1;\nSELECT @idx, @`idx`, @'idx', @@hostname", "len": 54, "last": 54, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 22, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,11 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 4 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": ":=", "value": ":=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 8, "position": 9 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 12 }, @@ -76,7 +104,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 13 }, @@ -85,7 +117,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -94,7 +128,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -103,7 +139,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -112,7 +150,9 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 22 }, @@ -121,7 +161,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 26 }, @@ -130,7 +172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +183,9 @@ "token": "@`idx`", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 28 }, @@ -148,7 +194,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 34 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -166,7 +216,9 @@ "token": "@'idx'", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 36 }, @@ -175,7 +227,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 42 }, @@ -184,7 +238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -193,27 +249,27 @@ "token": "@@hostname", "value": "hostname", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 9, "position": 44 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 22, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolErr1.out b/tests/data/lexer/lexSymbolErr1.out index a7bb19aab..37a852d5c 100644 --- a/tests/data/lexer/lexSymbolErr1.out +++ b/tests/data/lexer/lexSymbolErr1.out @@ -2,18 +2,26 @@ "query": "SET @idx := 1;\nSELECT @idx, @`idx`, @'idx", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET @idx := 1;\nSELECT @idx, @`idx`, @'idx", "len": 41, "last": 42, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,11 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 4 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": ":=", "value": ":=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 8, "position": 9 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 12 }, @@ -76,7 +104,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 13 }, @@ -85,7 +117,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -94,7 +128,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -103,7 +139,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -112,7 +150,9 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 22 }, @@ -121,7 +161,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 26 }, @@ -130,7 +172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +183,9 @@ "token": "@`idx`", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 28 }, @@ -148,7 +194,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 34 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -166,27 +216,27 @@ "token": "@'idx", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 36 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 19, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolErr2.out b/tests/data/lexer/lexSymbolErr2.out index 769a5b0a3..84dd47bcd 100644 --- a/tests/data/lexer/lexSymbolErr2.out +++ b/tests/data/lexer/lexSymbolErr2.out @@ -2,18 +2,26 @@ "query": "SET @idx := 1;\nSELECT @idx, @`idx`, @ ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET @idx := 1;\nSELECT @idx, @`idx`, @ ", "len": 38, "last": 38, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,11 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 4 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": ":=", "value": ":=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 8, "position": 9 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 12 }, @@ -76,7 +104,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 13 }, @@ -85,7 +117,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -94,7 +128,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -103,7 +139,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -112,7 +150,9 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 22 }, @@ -121,7 +161,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 26 }, @@ -130,7 +172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +183,9 @@ "token": "@`idx`", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 28 }, @@ -148,7 +194,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 34 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -166,27 +216,27 @@ "token": "@", "value": "", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 1, "position": 36 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 19, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolErr3.out b/tests/data/lexer/lexSymbolErr3.out index 92f597229..d7bf41786 100644 --- a/tests/data/lexer/lexSymbolErr3.out +++ b/tests/data/lexer/lexSymbolErr3.out @@ -2,18 +2,26 @@ "query": "SELECT `idx", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT `idx", "len": 11, "last": 12, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,27 +43,31 @@ "token": "`idx", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 7 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolUser1.out b/tests/data/lexer/lexSymbolUser1.out index 7bf28fd1e..27c643d8c 100644 --- a/tests/data/lexer/lexSymbolUser1.out +++ b/tests/data/lexer/lexSymbolUser1.out @@ -2,18 +2,26 @@ "query": "CREATE USER 'user'@'hostname' IDENTIFIED BY 'password';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE USER 'user'@'hostname' IDENTIFIED BY 'password';", "len": 55, "last": 55, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "'user'@'hostname'", "value": "user@hostname", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED", "value": "IDENTIFIED", "keyword": "IDENTIFIED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 30 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -85,7 +111,9 @@ "token": "BY", "value": "BY", "keyword": "BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 41 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +133,11 @@ "token": "'password'", "value": "password", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 44 }, @@ -112,27 +146,29 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 54 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolUser2.out b/tests/data/lexer/lexSymbolUser2.out index 9556fa7fb..1f1e7518f 100644 --- a/tests/data/lexer/lexSymbolUser2.out +++ b/tests/data/lexer/lexSymbolUser2.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user'@'hostname' IDENTIFIED WITH mysql_native_password BY 'password';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user'@'hostname' IDENTIFIED WITH mysql_native_password BY 'password';", "len": 81, "last": 81, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'@'hostname'", "value": "user@hostname", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED WITH", "value": "IDENTIFIED WITH", "keyword": "IDENTIFIED WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 29 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -85,7 +111,11 @@ "token": "mysql_native_password", "value": "mysql_native_password", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 45 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -103,7 +135,9 @@ "token": "BY", "value": "BY", "keyword": "BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -121,7 +157,11 @@ "token": "'password'", "value": "password", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 70 }, @@ -130,27 +170,29 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 80 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolUser3.out b/tests/data/lexer/lexSymbolUser3.out index a56ada694..bfe497f7b 100644 --- a/tests/data/lexer/lexSymbolUser3.out +++ b/tests/data/lexer/lexSymbolUser3.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user'@'hostname' WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user'@'hostname' WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;", "len": 84, "last": 84, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'@'hostname'", "value": "user@hostname", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -67,7 +89,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,9 @@ "token": "MAX_QUERIES_PER_HOUR", "value": "MAX_QUERIES_PER_HOUR", "keyword": "MAX_QUERIES_PER_HOUR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 34 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -103,7 +133,11 @@ "token": "500", "value": 500, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 55 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -121,7 +157,9 @@ "token": "MAX_UPDATES_PER_HOUR", "value": "MAX_UPDATES_PER_HOUR", "keyword": "MAX_UPDATES_PER_HOUR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 59 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -139,7 +179,9 @@ "token": "100", "value": 100, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 80 }, @@ -148,27 +190,29 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 83 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolUser4_mariadb_100400.out b/tests/data/lexer/lexSymbolUser4_mariadb_100400.out index 347f2eb1f..9edfdc2d2 100644 --- a/tests/data/lexer/lexSymbolUser4_mariadb_100400.out +++ b/tests/data/lexer/lexSymbolUser4_mariadb_100400.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user'@'hostname' IDENTIFIED VIA mysql_native_password BY 'password';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user'@'hostname' IDENTIFIED VIA mysql_native_password BY 'password';", "len": 80, "last": 80, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'@'hostname'", "value": "user@hostname", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED VIA", "value": "IDENTIFIED VIA", "keyword": "IDENTIFIED VIA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 29 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -85,7 +111,11 @@ "token": "mysql_native_password", "value": "mysql_native_password", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 44 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -103,7 +135,9 @@ "token": "BY", "value": "BY", "keyword": "BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 66 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -121,7 +157,11 @@ "token": "'password'", "value": "password", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 69 }, @@ -130,27 +170,29 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 79 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexSymbolUser5_mariadb_100400.out b/tests/data/lexer/lexSymbolUser5_mariadb_100400.out index 7cc7c32c7..c2c4ba9d2 100644 --- a/tests/data/lexer/lexSymbolUser5_mariadb_100400.out +++ b/tests/data/lexer/lexSymbolUser5_mariadb_100400.out @@ -2,18 +2,26 @@ "query": "CREATE USER 'user'@'hostname' IDENTIFIED VIA mysql_native_password BY 'password';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE USER 'user'@'hostname' IDENTIFIED VIA mysql_native_password BY 'password';", "len": 81, "last": 81, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "'user'@'hostname'", "value": "user@hostname", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED VIA", "value": "IDENTIFIED VIA", "keyword": "IDENTIFIED VIA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 30 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -85,7 +111,11 @@ "token": "mysql_native_password", "value": "mysql_native_password", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 45 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -103,7 +135,9 @@ "token": "BY", "value": "BY", "keyword": "BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -121,7 +157,11 @@ "token": "'password'", "value": "password", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 70 }, @@ -130,27 +170,29 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 80 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexUtf8.out b/tests/data/lexer/lexUtf8.out index e449ffe6f..3c50e4693 100644 --- a/tests/data/lexer/lexUtf8.out +++ b/tests/data/lexer/lexUtf8.out @@ -2,25 +2,29 @@ "query": "select * from école", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": { "@type": "PhpMyAdmin\\SqlParser\\UtfString", - "str": "select * from école", - "byteIdx": 19, - "charIdx": 18, - "byteLen": 20, - "charLen": 19 + "str": "select * from école" }, "len": 19, "last": 19, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -29,7 +33,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -38,7 +46,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -47,7 +59,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 8 }, @@ -56,7 +70,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@4" + }, "flags": 3, "position": 9 }, @@ -65,7 +81,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 13 }, @@ -74,27 +92,31 @@ "token": "école", "value": "école", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexWhitespace.out b/tests/data/lexer/lexWhitespace.out index c56eaeff2..11ca65a25 100644 --- a/tests/data/lexer/lexWhitespace.out +++ b/tests/data/lexer/lexWhitespace.out @@ -2,18 +2,26 @@ "query": "\n\n\nSELECT \n\t\t'w h i t e\t\ts p a c e'\n\n\t\t\n\t\t\t\n \n ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "\n\n\nSELECT \n\t\t'w h i t e\t\ts p a c e'\n\n\t\t\n\t\t\t\n \n ", "len": 79, "last": 79, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "\n\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 3 }, @@ -31,7 +43,9 @@ "token": " \n\t\t", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@3" + }, "flags": 0, "position": 9 }, @@ -40,7 +54,11 @@ "token": "'w h i t e\t\ts p a c e'", "value": "w h i t e\t\ts p a c e", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 18 }, @@ -49,27 +67,29 @@ "token": "\n\n\t\t\n\t\t\t\n \n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@3" + }, "flags": 0, "position": 40 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/lexer/lexWildcardThenComment.out b/tests/data/lexer/lexWildcardThenComment.out index 444df99a7..022bde98f 100644 --- a/tests/data/lexer/lexWildcardThenComment.out +++ b/tests/data/lexer/lexWildcardThenComment.out @@ -2,18 +2,26 @@ "query": "SELECT */* comment */\n\nSELECT /* comment */*\n\nSELECT 2*/* comment */3\n\nSELECT 2/* comment */*3\n\nSELECT */*\ncomment\non\nmultiple\nlines\n*/FROM\n\nDELETE foo.*/* foo */ USING\n\nDELETE foo.*/* foo */,bar.*/*bar*/ USING\n\nSELECT `*`/*with comment*/ AS star_field\n\nSELECT `*`,*/*with comment*/\n\nDELETE a.*/*multi\nline /* with C open tag\ncomment inside */ USING\n\nSELECT 2*/* operator */3 + 3/* operator */*2,/* start wildcard */*/* end wildcard */\n\nSELECT `*`/*a*/*/*b*/`*`\n\n-- invalid queries\n/* SELECT */*", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT */* comment */\n\nSELECT /* comment */*\n\nSELECT 2*/* comment */3\n\nSELECT 2/* comment */*3\n\nSELECT */*\ncomment\non\nmultiple\nlines\n*/FROM\n\nDELETE foo.*/* foo */ USING\n\nDELETE foo.*/* foo */,bar.*/*bar*/ USING\n\nSELECT `*`/*with comment*/ AS star_field\n\nSELECT `*`,*/*with comment*/\n\nDELETE a.*/*multi\nline /* with C open tag\ncomment inside */ USING\n\nSELECT 2*/* operator */3 + 3/* operator */*2,/* start wildcard */*/* end wildcard */\n\nSELECT `*`/*a*/*/*b*/`*`\n\n-- invalid queries\n/* SELECT */*", "len": 495, "last": 495, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 109, + "idx": 0, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 7 }, @@ -40,7 +56,11 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 8 }, @@ -49,7 +69,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -58,7 +80,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -76,7 +102,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 30 }, @@ -85,7 +113,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 43 }, @@ -94,7 +124,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +135,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +157,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 53 }, @@ -130,7 +170,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 54 }, @@ -139,7 +181,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 55 }, @@ -148,7 +192,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 68 }, @@ -157,7 +203,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -166,7 +214,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -184,7 +236,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 78 }, @@ -193,7 +247,9 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 79 }, @@ -202,7 +258,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 92 }, @@ -211,7 +269,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 93 }, @@ -220,7 +280,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -247,7 +313,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 103 }, @@ -256,7 +324,9 @@ "token": "/*\ncomment\non\nmultiple\nlines\n*/", "value": "/*\ncomment\non\nmultiple\nlines\n*/", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 104 }, @@ -265,7 +335,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 135 }, @@ -274,7 +346,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -283,7 +357,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 141 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, @@ -301,7 +379,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 148 }, @@ -310,7 +392,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 151 }, @@ -319,7 +403,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 152 }, @@ -328,7 +414,9 @@ "token": "/* foo */", "value": "/* foo */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 153 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -346,7 +436,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 163 }, @@ -355,7 +447,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 168 }, @@ -364,7 +458,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 170 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -382,7 +480,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 177 }, @@ -391,7 +491,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 180 }, @@ -400,7 +502,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 181 }, @@ -409,7 +513,9 @@ "token": "/* foo */", "value": "/* foo */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 182 }, @@ -418,7 +524,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 191 }, @@ -427,7 +535,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 192 }, @@ -436,7 +546,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 195 }, @@ -445,7 +557,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 196 }, @@ -454,7 +568,9 @@ "token": "/*bar*/", "value": "/*bar*/", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 197 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 204 }, @@ -472,7 +590,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 205 }, @@ -481,7 +601,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 210 }, @@ -490,7 +612,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 212 }, @@ -499,7 +623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 218 }, @@ -508,7 +634,11 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 219 }, @@ -517,7 +647,9 @@ "token": "/*with comment*/", "value": "/*with comment*/", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 222 }, @@ -526,7 +658,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 238 }, @@ -535,7 +669,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 239 }, @@ -544,7 +680,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 241 }, @@ -553,7 +691,9 @@ "token": "star_field", "value": "star_field", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 242 }, @@ -562,7 +702,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 252 }, @@ -571,7 +713,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 254 }, @@ -580,7 +724,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 260 }, @@ -589,7 +735,9 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "@64" + }, "flags": 2, "position": 261 }, @@ -598,7 +746,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 264 }, @@ -607,7 +757,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 265 }, @@ -616,7 +768,9 @@ "token": "/*with comment*/", "value": "/*with comment*/", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 266 }, @@ -625,7 +779,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 282 }, @@ -634,7 +790,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 284 }, @@ -643,7 +801,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 290 }, @@ -652,7 +812,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 291 }, @@ -661,7 +823,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 292 }, @@ -670,7 +834,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 293 }, @@ -679,7 +845,9 @@ "token": "/*multi\nline /* with C open tag\ncomment inside */", "value": "/*multi\nline /* with C open tag\ncomment inside */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 294 }, @@ -688,7 +856,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 343 }, @@ -697,7 +867,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 344 }, @@ -706,7 +878,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 349 }, @@ -715,7 +889,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 351 }, @@ -724,7 +900,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 357 }, @@ -733,7 +911,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 358 }, @@ -742,7 +922,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 359 }, @@ -751,7 +933,9 @@ "token": "/* operator */", "value": "/* operator */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 360 }, @@ -760,7 +944,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 374 }, @@ -769,7 +955,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 375 }, @@ -778,7 +966,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 376 }, @@ -787,7 +977,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 377 }, @@ -796,7 +988,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 378 }, @@ -805,7 +999,9 @@ "token": "/* operator */", "value": "/* operator */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 379 }, @@ -814,7 +1010,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 393 }, @@ -823,7 +1021,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 394 }, @@ -832,7 +1032,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 395 }, @@ -841,7 +1043,9 @@ "token": "/* start wildcard */", "value": "/* start wildcard */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 396 }, @@ -850,7 +1054,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 416 }, @@ -859,7 +1065,9 @@ "token": "/* end wildcard */", "value": "/* end wildcard */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 417 }, @@ -868,7 +1076,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 435 }, @@ -877,7 +1087,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 437 }, @@ -886,7 +1098,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 443 }, @@ -895,7 +1109,9 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "@64" + }, "flags": 2, "position": 444 }, @@ -904,7 +1120,9 @@ "token": "/*a*/", "value": "/*a*/", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 447 }, @@ -913,7 +1131,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 452 }, @@ -922,7 +1142,9 @@ "token": "/*b*/", "value": "/*b*/", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 453 }, @@ -931,7 +1153,9 @@ "token": "`*`", "value": "*", "keyword": null, - "type": 8, + "type": { + "@type": "@64" + }, "flags": 2, "position": 458 }, @@ -940,7 +1164,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 461 }, @@ -949,7 +1175,9 @@ "token": "-- invalid queries", "value": "-- invalid queries", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 4, "position": 463 }, @@ -958,7 +1186,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 481 }, @@ -967,7 +1197,9 @@ "token": "/* SELECT */", "value": "/* SELECT */", "keyword": null, - "type": 4, + "type": { + "@type": "@9" + }, "flags": 2, "position": 482 }, @@ -976,27 +1208,29 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 494 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 109, - "idx": 0 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": null, "errors": { diff --git a/tests/data/misc/parseParameter.out b/tests/data/misc/parseParameter.out index 3c2ac0704..f384dae51 100644 --- a/tests/data/misc/parseParameter.out +++ b/tests/data/misc/parseParameter.out @@ -2,18 +2,26 @@ "query": "INSERT INTO `person` (`firstname`, `lastname`, `email`) VALUES (:firstname, :lastname, :email);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO `person` (`firstname`, `lastname`, `email`) VALUES (:firstname, :lastname, :email);", "len": 95, "last": 95, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 29, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`person`", "value": "person", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": "`firstname`", "value": "firstname", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 22 }, @@ -85,7 +113,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 33 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +135,9 @@ "token": "`lastname`", "value": "lastname", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 35 }, @@ -112,7 +146,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 45 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -130,7 +168,9 @@ "token": "`email`", "value": "email", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 47 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 54 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -157,7 +201,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 56 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 63 }, @@ -184,7 +234,9 @@ "token": ":firstname", "value": "firstname", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 16, "position": 64 }, @@ -193,7 +245,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 74 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -211,7 +267,9 @@ "token": ":lastname", "value": "lastname", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 16, "position": 76 }, @@ -220,7 +278,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 85 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -238,7 +300,9 @@ "token": ":email", "value": "email", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 16, "position": 87 }, @@ -247,7 +311,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 93 }, @@ -256,30 +322,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 94 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@34" + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 29 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -305,9 +375,9 @@ "email" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -336,9 +406,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/misc/parseParameter2.out b/tests/data/misc/parseParameter2.out index eaf30993a..e0e7e382d 100644 --- a/tests/data/misc/parseParameter2.out +++ b/tests/data/misc/parseParameter2.out @@ -2,18 +2,26 @@ "query": "INSERT INTO `person` (`firstname`, `lastname`, `email`) VALUES (?, ?, ?);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO `person` (`firstname`, `lastname`, `email`) VALUES (?, ?, ?);", "len": 73, "last": 73, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 29, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`person`", "value": "person", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": "`firstname`", "value": "firstname", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 22 }, @@ -85,7 +113,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 33 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +135,9 @@ "token": "`lastname`", "value": "lastname", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 35 }, @@ -112,7 +146,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 45 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -130,7 +168,9 @@ "token": "`email`", "value": "email", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 47 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 54 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -157,7 +201,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 56 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 63 }, @@ -184,7 +234,9 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 16, "position": 64 }, @@ -193,7 +245,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 65 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -211,7 +267,9 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 16, "position": 67 }, @@ -220,7 +278,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 68 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -238,7 +300,9 @@ "token": "?", "value": "?", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 16, "position": 70 }, @@ -247,7 +311,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 71 }, @@ -256,30 +322,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 72 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@34" + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 29 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -305,9 +375,9 @@ "email" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -336,9 +406,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parse.out b/tests/data/parser/parse.out index efc53b0ef..b31e35c83 100644 --- a/tests/data/parser/parse.out +++ b/tests/data/parser/parse.out @@ -2,18 +2,26 @@ "query": "SELECT 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 1;", "len": 9, "last": 9, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, @@ -40,30 +56,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 8 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@9" + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -83,11 +103,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -95,7 +115,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -104,9 +124,7 @@ "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parse2.out b/tests/data/parser/parse2.out index 7ea339be8..62ef4b942 100644 --- a/tests/data/parser/parse2.out +++ b/tests/data/parser/parse2.out @@ -2,18 +2,26 @@ "query": "(SELECT 1);((SELECT 2));", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "(SELECT 1);((SELECT 2));", "len": 24, "last": 24, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 0 }, @@ -22,7 +30,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 1 }, @@ -31,7 +43,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 8 }, @@ -49,7 +69,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 9 }, @@ -58,7 +80,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -67,7 +93,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 11 }, @@ -76,7 +104,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 12 }, @@ -85,7 +115,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 13 }, @@ -94,7 +126,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 19 }, @@ -103,7 +137,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@9" + }, "flags": 0, "position": 20 }, @@ -112,7 +148,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 21 }, @@ -121,7 +159,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 22 }, @@ -130,30 +170,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": 23 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -173,11 +215,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -185,7 +227,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -208,11 +250,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -220,7 +262,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -229,9 +271,7 @@ "last": 12 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter.out b/tests/data/parser/parseAlter.out index eb62eb84c..b8bb36e37 100644 --- a/tests/data/parser/parseAlter.out +++ b/tests/data/parser/parseAlter.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `actor`\n ADD PRIMARY KEY (`actor_id`),\n ADD KEY `idx_actor_last_name` (`last_name`);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `actor`\n ADD PRIMARY KEY (`actor_id`),\n ADD KEY `idx_actor_last_name` (`last_name`);", "len": 102, "last": 102, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 26, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`actor`", "value": "actor", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +111,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 28 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 40 }, @@ -112,7 +146,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 41 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 51 }, @@ -130,7 +168,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 52 }, @@ -139,7 +179,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -148,7 +190,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 58 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -166,7 +212,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 62 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -184,7 +234,9 @@ "token": "`idx_actor_last_name`", "value": "idx_actor_last_name", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 66 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -202,7 +256,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 88 }, @@ -211,7 +267,9 @@ "token": "`last_name`", "value": "last_name", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 89 }, @@ -220,7 +278,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 100 }, @@ -229,30 +289,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 101 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 26 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -272,20 +336,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -297,32 +347,18 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -339,13 +375,13 @@ "partitions": null, "unknown": [ { - "@type": "@23" + "@type": "@27" }, { - "@type": "@24" + "@type": "@28" }, { - "@type": "@25" + "@type": "@29" } ] } @@ -360,9 +396,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter10.out b/tests/data/parser/parseAlter10.out index a86ec2c26..ae6e03608 100644 --- a/tests/data/parser/parseAlter10.out +++ b/tests/data/parser/parseAlter10.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `database`.`table` MODIFY `field` INT(11) AUTO_INCREMENT PRIMARY KEY;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `database`.`table` MODIFY `field` INT(11) AUTO_INCREMENT PRIMARY KEY;", "len": 81, "last": 81, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 22, + "idx": 22, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`database`", "value": "database", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 22 }, @@ -67,7 +91,9 @@ "token": "`table`", "value": "table", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 23 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,7 +113,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 31 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +135,9 @@ "token": "`field`", "value": "field", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 38 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -121,7 +157,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 46 }, @@ -130,7 +168,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 49 }, @@ -139,7 +179,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 50 }, @@ -148,7 +192,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 52 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -166,7 +214,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 54 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -184,7 +236,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 69 }, @@ -193,30 +247,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 80 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": null } - ], - "count": 22, - "idx": 22 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -236,20 +294,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -269,28 +313,28 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" } ] } @@ -305,9 +349,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter11.out b/tests/data/parser/parseAlter11.out index 360060543..bee239ec7 100644 --- a/tests/data/parser/parseAlter11.out +++ b/tests/data/parser/parseAlter11.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `actor` ADD `last_update2` SET ('value1','value2','value3') NOT NULL AFTER last_update", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `actor` ADD `last_update2` SET ('value1','value2','value3') NOT NULL AFTER last_update", "len": 98, "last": 98, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 26, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`actor`", "value": "actor", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "`last_update2`", "value": "last_update2", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 24 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -103,7 +133,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 39 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +155,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 43 }, @@ -130,7 +168,11 @@ "token": "'value1'", "value": "value1", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 44 }, @@ -139,7 +181,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 52 }, @@ -148,7 +192,9 @@ "token": "'value2'", "value": "value2", "keyword": null, - "type": 7, + "type": { + "@type": "@20" + }, "flags": 1, "position": 53 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 61 }, @@ -166,7 +214,9 @@ "token": "'value3'", "value": "value3", "keyword": null, - "type": 7, + "type": { + "@type": "@20" + }, "flags": 1, "position": 62 }, @@ -175,7 +225,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 70 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -193,7 +247,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 72 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -211,7 +269,9 @@ "token": "AFTER", "value": "AFTER", "keyword": "AFTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 81 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -229,30 +291,36 @@ "token": "last_update", "value": "last_update", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 87 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 26 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -272,20 +340,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -305,22 +359,22 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@22" + "@type": "@27" }, { - "@type": "@23" + "@type": "@28" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" } ] } @@ -335,9 +389,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter12.out b/tests/data/parser/parseAlter12.out index f7490ac9e..5211f83a7 100644 --- a/tests/data/parser/parseAlter12.out +++ b/tests/data/parser/parseAlter12.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE actor ALTER last_update2 SET DEFAULT 'value1';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE actor ALTER last_update2 SET DEFAULT 'value1';", "len": 58, "last": 58, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "actor", "value": "actor", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "last_update2", "value": "last_update2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -103,7 +133,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 37 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -121,7 +155,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 41 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -139,7 +177,11 @@ "token": "'value1'", "value": "value1", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 49 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 57 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +237,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -224,7 +256,7 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" } ] } @@ -239,9 +271,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter13.out b/tests/data/parser/parseAlter13.out index c61d2f9eb..91b8d4423 100644 --- a/tests/data/parser/parseAlter13.out +++ b/tests/data/parser/parseAlter13.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `actor` ADD `last_update2` SET ('value1','value2','value3')", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `actor` ADD `last_update2` SET ('value1','value2','value3')", "len": 71, "last": 71, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`actor`", "value": "actor", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "`last_update2`", "value": "last_update2", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 24 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -103,7 +133,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 39 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +155,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 43 }, @@ -130,7 +168,11 @@ "token": "'value1'", "value": "value1", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 44 }, @@ -139,7 +181,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 52 }, @@ -148,7 +192,9 @@ "token": "'value2'", "value": "value2", "keyword": null, - "type": 7, + "type": { + "@type": "@20" + }, "flags": 1, "position": 53 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 61 }, @@ -166,7 +214,9 @@ "token": "'value3'", "value": "value3", "keyword": null, - "type": 7, + "type": { + "@type": "@20" + }, "flags": 1, "position": 62 }, @@ -175,30 +225,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 70 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -218,20 +272,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -251,7 +291,7 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" } ] } @@ -266,9 +306,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter14.out b/tests/data/parser/parseAlter14.out index a8eb11499..f767bb14c 100644 --- a/tests/data/parser/parseAlter14.out +++ b/tests/data/parser/parseAlter14.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `table` ADD UNIQUE KEY `functional_index` (`field1`,`field2`, (IFNULL(`field3`,0)));\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `table` ADD UNIQUE KEY `functional_index` (`field1`,`field2`, (IFNULL(`field3`,0)));\n", "len": 97, "last": 97, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 30, + "idx": 30, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`table`", "value": "table", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "UNIQUE KEY", "value": "UNIQUE KEY", "keyword": "UNIQUE KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 24 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +133,9 @@ "token": "`functional_index`", "value": "functional_index", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 35 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -121,7 +155,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 54 }, @@ -130,7 +168,9 @@ "token": "`field1`", "value": "field1", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 55 }, @@ -139,7 +179,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 63 }, @@ -148,7 +190,9 @@ "token": "`field2`", "value": "field2", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 64 }, @@ -157,7 +201,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 72 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 74 }, @@ -184,7 +234,9 @@ "token": "IFNULL", "value": "IFNULL", "keyword": "IFNULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 75 }, @@ -193,7 +245,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 81 }, @@ -202,7 +256,9 @@ "token": "`field3`", "value": "field3", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 82 }, @@ -211,7 +267,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 90 }, @@ -220,7 +278,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 91 }, @@ -229,7 +291,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 92 }, @@ -238,7 +302,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 93 }, @@ -247,7 +313,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 94 }, @@ -256,7 +324,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 95 }, @@ -265,30 +337,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@35" + }, "flags": 0, "position": null } - ], - "count": 30, - "idx": 30 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -308,56 +382,28 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { - "1": "ADD" + "1": "ADD", + "2": "UNIQUE KEY" } }, - "field": null, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "functional_index", + "expr": "`functional_index`", + "alias": null, + "function": null, + "subquery": null + }, "partitions": null, "unknown": [ - { - "@type": "@10" - }, - { - "@type": "@11" - }, - { - "@type": "@12" - }, - { - "@type": "@13" - }, - { - "@type": "@14" - }, - { - "@type": "@15" - }, - { - "@type": "@16" - }, { "@type": "@17" }, - { - "@type": "@18" - }, { "@type": "@19" }, @@ -387,6 +433,18 @@ }, { "@type": "@28" + }, + { + "@type": "@29" + }, + { + "@type": "@31" + }, + { + "@type": "@32" + }, + { + "@type": "@33" } ] } @@ -401,9 +459,7 @@ "last": 27 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter2.out b/tests/data/parser/parseAlter2.out index c640d6b64..1bb1a91ad 100644 --- a/tests/data/parser/parseAlter2.out +++ b/tests/data/parser/parseAlter2.out @@ -2,18 +2,26 @@ "query": "ALTER /* */ TABLE /* */ table\nCONVERT /* */ TO /* */ CHARACTER /* */ SET /* */ utf8;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER /* */ TABLE /* */ table\nCONVERT /* */ TO /* */ CHARACTER /* */ SET /* */ utf8;", "len": 84, "last": 84, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 29, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 6 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "table", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -94,7 +122,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -103,7 +133,9 @@ "token": "CONVERT", "value": "CONVERT", "keyword": "CONVERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 30 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -121,7 +155,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 38 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -139,7 +177,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -148,7 +188,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -157,7 +199,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 47 }, @@ -166,7 +210,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -175,7 +221,9 @@ "token": "CHARACTER", "value": "CHARACTER", "keyword": "CHARACTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 53 }, @@ -184,7 +232,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -193,7 +243,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 63 }, @@ -202,7 +254,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -211,7 +265,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 69 }, @@ -220,7 +276,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -229,7 +287,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@7" + }, "flags": 2, "position": 73 }, @@ -238,7 +298,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -247,7 +309,11 @@ "token": "utf8", "value": "utf8", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 79 }, @@ -256,30 +322,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 83 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@34" + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 29 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -290,20 +360,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -331,9 +387,7 @@ "last": 27 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -341,14 +395,14 @@ [ "This option conflicts with \"TABLE\".", { - "@type": "@10" + "@type": "@13" }, 0 ], [ "A new statement was found, but no delimiter between it and the previous one.", { - "@type": "@24" + "@type": "@27" }, 0 ] diff --git a/tests/data/parser/parseAlter3.out b/tests/data/parser/parseAlter3.out index e7bf7ed7a..cc3d0a10a 100644 --- a/tests/data/parser/parseAlter3.out +++ b/tests/data/parser/parseAlter3.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `tbl` CHANGE `uid` `uid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT\n\nALTER TABLE `tbl` CHANGE `field_1` `field_2` INT( 10 ) UNSIGNED NOT NULL", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `tbl` CHANGE `uid` `uid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT\n\nALTER TABLE `tbl` CHANGE `field_1` `field_2` INT( 10 ) UNSIGNED NOT NULL", "len": 153, "last": 153, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 48, + "idx": 48, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`tbl`", "value": "tbl", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 31 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -121,7 +155,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 37 }, @@ -130,7 +166,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 40 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 42 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 45 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -184,7 +236,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +258,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 56 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -220,7 +280,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 65 }, @@ -229,7 +291,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -238,7 +302,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 81 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -256,7 +324,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -274,7 +346,9 @@ "token": "`tbl`", "value": "tbl", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 93 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -292,7 +368,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 99 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 105 }, @@ -310,7 +390,9 @@ "token": "`field_1`", "value": "field_1", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 106 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -328,7 +412,9 @@ "token": "`field_2`", "value": "field_2", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 116 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -346,7 +434,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 126 }, @@ -355,7 +445,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 129 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -373,7 +467,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@22" + }, "flags": 0, "position": 131 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -391,7 +489,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 134 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -409,7 +511,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 136 }, @@ -418,7 +522,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -427,30 +533,34 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 145 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 48, - "idx": 48 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -470,20 +580,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -502,15 +598,6 @@ }, "partitions": null, "unknown": [ - { - "@type": "@12" - }, - { - "@type": "@13" - }, - { - "@type": "@14" - }, { "@type": "@15" }, @@ -523,18 +610,12 @@ { "@type": "@18" }, - { - "@type": "@19" - }, { "@type": "@20" }, { "@type": "@21" }, - { - "@type": "@22" - }, { "@type": "@23" }, @@ -546,6 +627,21 @@ }, { "@type": "@26" + }, + { + "@type": "@27" + }, + { + "@type": "@28" + }, + { + "@type": "@29" + }, + { + "@type": "@30" + }, + { + "@type": "@31" } ] } @@ -560,9 +656,7 @@ "last": 47 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -570,7 +664,7 @@ [ "A new statement was found, but no delimiter between it and the previous one.", { - "@type": "@27" + "@type": "@32" }, 0 ] diff --git a/tests/data/parser/parseAlter4.out b/tests/data/parser/parseAlter4.out index 03d7b3611..7630a5f83 100644 --- a/tests/data/parser/parseAlter4.out +++ b/tests/data/parser/parseAlter4.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE my_table COMMENT='Comment of table';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE my_table COMMENT='Comment of table';", "len": 48, "last": 48, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_table", "value": "my_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 21 }, @@ -76,7 +100,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 28 }, @@ -85,7 +113,11 @@ "token": "'Comment of table'", "value": "Comment of table", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 29 }, @@ -94,30 +126,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 47 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@17" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -137,20 +173,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -177,9 +199,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter5.out b/tests/data/parser/parseAlter5.out index c72384a02..6edcc7e77 100644 --- a/tests/data/parser/parseAlter5.out +++ b/tests/data/parser/parseAlter5.out @@ -2,18 +2,26 @@ "query": "ALTER DATABASE `abc` CHARACTER SET = 'utf8'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER DATABASE `abc` CHARACTER SET = 'utf8'", "len": 43, "last": 43, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "DATABASE", "value": "DATABASE", "keyword": "DATABASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "`abc`", "value": "abc", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -85,7 +111,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 35 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -103,30 +135,36 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 37 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -146,20 +184,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -186,9 +210,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter6.out b/tests/data/parser/parseAlter6.out index 2be7476d1..8400dd63d 100644 --- a/tests/data/parser/parseAlter6.out +++ b/tests/data/parser/parseAlter6.out @@ -2,18 +2,26 @@ "query": "ALTER VIEW `abc` AS SELECT `a` FROM `b`", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER VIEW `abc` AS SELECT `a` FROM `b`", "len": 39, "last": 39, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "`abc`", "value": "abc", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +111,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +133,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -121,7 +155,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 31 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -139,30 +177,34 @@ "token": "`b`", "value": "b", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 36 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +224,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -206,28 +234,28 @@ "partitions": null, "unknown": [ { - "@type": "@9" + "@type": "@12" }, { - "@type": "@10" + "@type": "@13" }, { - "@type": "@11" + "@type": "@14" }, { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@16" }, { - "@type": "@14" + "@type": "@17" }, { - "@type": "@15" + "@type": "@18" }, { - "@type": "@16" + "@type": "@19" } ] } @@ -242,9 +270,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter7.out b/tests/data/parser/parseAlter7.out index ad93c32c6..fa7308a60 100644 --- a/tests/data/parser/parseAlter7.out +++ b/tests/data/parser/parseAlter7.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `tbl` CHANGE `uid` `uid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT, CHANGE `field_1` `field_2` INT( 10 ) UNSIGNED NOT NULL", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `tbl` CHANGE `uid` `uid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT, CHANGE `field_1` `field_2` INT( 10 ) UNSIGNED NOT NULL", "len": 135, "last": 135, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 43, + "idx": 43, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`tbl`", "value": "tbl", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 31 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -121,7 +155,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 37 }, @@ -130,7 +166,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 40 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 42 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 45 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -184,7 +236,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +258,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 56 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -220,7 +280,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 65 }, @@ -229,7 +291,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 79 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -247,7 +313,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 81 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -265,7 +335,9 @@ "token": "`field_1`", "value": "field_1", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 88 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -283,7 +357,9 @@ "token": "`field_2`", "value": "field_2", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 98 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -301,7 +379,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 108 }, @@ -310,7 +390,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 111 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -328,7 +412,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@22" + }, "flags": 0, "position": 113 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -346,7 +434,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 116 }, @@ -355,7 +445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 117 }, @@ -364,7 +456,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 118 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -382,30 +478,34 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 127 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 43, - "idx": 43 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -425,20 +525,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -458,65 +544,51 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@16" }, { - "@type": "@14" + "@type": "@17" }, { - "@type": "@15" + "@type": "@18" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@21" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" }, { - "@type": "@22" + "@type": "@27" }, { - "@type": "@23" + "@type": "@28" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -536,40 +608,40 @@ "partitions": null, "unknown": [ { - "@type": "@32" + "@type": "@37" }, { - "@type": "@33" + "@type": "@38" }, { - "@type": "@34" + "@type": "@39" }, { - "@type": "@35" + "@type": "@40" }, { - "@type": "@36" + "@type": "@41" }, { - "@type": "@37" + "@type": "@42" }, { - "@type": "@38" + "@type": "@43" }, { - "@type": "@39" + "@type": "@44" }, { - "@type": "@40" + "@type": "@45" }, { - "@type": "@41" + "@type": "@46" }, { - "@type": "@42" + "@type": "@47" }, { - "@type": "@43" + "@type": "@48" } ] } @@ -584,9 +656,7 @@ "last": 42 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter8.out b/tests/data/parser/parseAlter8.out index fe1257aa5..beec8503c 100644 --- a/tests/data/parser/parseAlter8.out +++ b/tests/data/parser/parseAlter8.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `api_tab_user` CHANGE `rank_id` `rank_id` INT(4) NOT NULL DEFAULT '4';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `api_tab_user` CHANGE `rank_id` `rank_id` INT(4) NOT NULL DEFAULT '4';", "len": 82, "last": 82, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`api_tab_user`", "value": "api_tab_user", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +89,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,9 @@ "token": "`rank_id`", "value": "rank_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 34 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +133,9 @@ "token": "`rank_id`", "value": "rank_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 44 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -121,7 +155,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 54 }, @@ -130,7 +166,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 57 }, @@ -139,7 +179,11 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 58 }, @@ -148,7 +192,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 59 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -166,7 +214,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 61 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +236,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 70 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -202,7 +258,11 @@ "token": "'4'", "value": "4", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 78 }, @@ -211,30 +271,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 81 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -254,20 +318,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -287,40 +337,40 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@16" }, { - "@type": "@14" + "@type": "@17" }, { - "@type": "@15" + "@type": "@18" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" }, { - "@type": "@22" + "@type": "@27" }, { - "@type": "@23" + "@type": "@28" } ] } @@ -335,9 +385,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlter9.out b/tests/data/parser/parseAlter9.out index 5dff87aea..8b463cc5e 100644 --- a/tests/data/parser/parseAlter9.out +++ b/tests/data/parser/parseAlter9.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE place CHANGE COLUMN plc_location_type gplc_location_type ENUM('LOCATION') CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE place CHANGE COLUMN plc_location_type gplc_location_type ENUM('LOCATION') CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL;", "len": 142, "last": 142, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 30, + "idx": 30, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "place", "value": "place", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +133,9 @@ "token": "plc_location_type", "value": "plc_location_type", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 32 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -121,7 +155,9 @@ "token": "gplc_location_type", "value": "gplc_location_type", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 50 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -139,7 +177,9 @@ "token": "ENUM", "value": "ENUM", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 69 }, @@ -148,7 +188,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 73 }, @@ -157,7 +201,11 @@ "token": "'LOCATION'", "value": "LOCATION", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 74 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 84 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -184,7 +236,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 86 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -202,7 +258,9 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "@23" + }, "flags": 1, "position": 100 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -220,7 +280,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 107 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -238,7 +302,9 @@ "token": "'utf8_unicode_ci'", "value": "utf8_unicode_ci", "keyword": null, - "type": 7, + "type": { + "@type": "@23" + }, "flags": 1, "position": 115 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -256,7 +324,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 133 }, @@ -265,30 +335,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 141 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@36" + }, "flags": 0, "position": null } - ], - "count": 30, - "idx": 30 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -308,20 +382,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -341,15 +401,6 @@ }, "partitions": null, "unknown": [ - { - "@type": "@14" - }, - { - "@type": "@15" - }, - { - "@type": "@16" - }, { "@type": "@17" }, @@ -362,15 +413,9 @@ { "@type": "@20" }, - { - "@type": "@21" - }, { "@type": "@22" }, - { - "@type": "@23" - }, { "@type": "@24" }, @@ -388,6 +433,21 @@ }, { "@type": "@29" + }, + { + "@type": "@30" + }, + { + "@type": "@31" + }, + { + "@type": "@32" + }, + { + "@type": "@33" + }, + { + "@type": "@34" } ] } @@ -402,9 +462,7 @@ "last": 28 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterErr.out b/tests/data/parser/parseAlterErr.out index c381a6282..924143736 100644 --- a/tests/data/parser/parseAlterErr.out +++ b/tests/data/parser/parseAlterErr.out @@ -2,18 +2,26 @@ "query": "-- missing comma between alter operations\nALTER TABLE `tbl` CHANGE `uid` `uid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT CHANGE `field_1` `field_2` INT( 10 ) UNSIGNED NOT NULL", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- missing comma between alter operations\nALTER TABLE `tbl` CHANGE `uid` `uid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT CHANGE `field_1` `field_2` INT( 10 ) UNSIGNED NOT NULL", "len": 176, "last": 176, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 44, + "idx": 44, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- missing comma between alter operations", "value": "-- missing comma between alter operations", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 41 }, @@ -31,7 +43,11 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 42 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 48 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -67,7 +89,11 @@ "token": "`tbl`", "value": "tbl", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 54 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -85,7 +113,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 60 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -103,7 +135,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 67 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -121,7 +157,9 @@ "token": "`uid`", "value": "uid", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 73 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -139,7 +179,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 11, "position": 79 }, @@ -148,7 +190,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 82 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -166,7 +214,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 84 }, @@ -175,7 +227,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -184,7 +238,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@22" + }, "flags": 16, "position": 87 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -202,7 +260,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 89 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -220,7 +282,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 7, "position": 98 }, @@ -229,7 +293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -238,7 +304,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 107 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -256,7 +326,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 122 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 128 }, @@ -274,7 +348,9 @@ "token": "`field_1`", "value": "field_1", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 129 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -292,7 +370,9 @@ "token": "`field_2`", "value": "field_2", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 139 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -310,7 +392,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 11, "position": 149 }, @@ -319,7 +403,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@22" + }, "flags": 16, "position": 152 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 153 }, @@ -337,7 +425,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@25" + }, "flags": 0, "position": 154 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -355,7 +447,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@22" + }, "flags": 16, "position": 157 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -373,7 +469,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 159 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 167 }, @@ -391,30 +491,34 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 7, "position": 168 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 44, - "idx": 44 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -434,20 +538,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -467,49 +557,49 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@21" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@26" }, { - "@type": "@21" + "@type": "@27" }, { - "@type": "@22" + "@type": "@28" }, { - "@type": "@23" + "@type": "@29" }, { - "@type": "@24" + "@type": "@30" }, { - "@type": "@25" + "@type": "@31" }, { - "@type": "@26" + "@type": "@32" }, { - "@type": "@27" + "@type": "@33" }, { - "@type": "@28" + "@type": "@34" } ] } @@ -524,9 +614,7 @@ "last": 43 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -534,7 +622,7 @@ [ "Missing comma before start of a new alter operation.", { - "@type": "@29" + "@type": "@35" }, 0 ] diff --git a/tests/data/parser/parseAlterErr2.out b/tests/data/parser/parseAlterErr2.out index e2e6c0d14..5300c5cb7 100644 --- a/tests/data/parser/parseAlterErr2.out +++ b/tests/data/parser/parseAlterErr2.out @@ -2,18 +2,26 @@ "query": "-- missing comma between alter operations\nALTER TABLE tb_foo CHANGE inmsg inmsg date NULL AFTER outmsg2 CHANGE inmsg2 inmsg2 time NULL AFTER inmsg;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- missing comma between alter operations\nALTER TABLE tb_foo CHANGE inmsg inmsg date NULL AFTER outmsg2 CHANGE inmsg2 inmsg2 time NULL AFTER inmsg;\n", "len": 148, "last": 148, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 38, + "idx": 38, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- missing comma between alter operations", "value": "-- missing comma between alter operations", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 41 }, @@ -31,7 +43,11 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 42 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 48 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -67,7 +89,11 @@ "token": "tb_foo", "value": "tb_foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 54 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -85,7 +113,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 61 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -103,7 +135,9 @@ "token": "inmsg", "value": "inmsg", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 68 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -121,7 +157,9 @@ "token": "inmsg", "value": "inmsg", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 74 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -139,7 +179,9 @@ "token": "date", "value": "date", "keyword": "DATE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 41, "position": 80 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -157,7 +201,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 85 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -175,7 +223,9 @@ "token": "AFTER", "value": "AFTER", "keyword": "AFTER", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 90 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -193,7 +245,9 @@ "token": "outmsg2", "value": "outmsg2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 96 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -211,7 +267,9 @@ "token": "CHANGE", "value": "CHANGE", "keyword": "CHANGE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 104 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -229,7 +289,9 @@ "token": "inmsg2", "value": "inmsg2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 111 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 117 }, @@ -247,7 +311,9 @@ "token": "inmsg2", "value": "inmsg2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 118 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -265,7 +333,9 @@ "token": "time", "value": "time", "keyword": "TIME", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 41, "position": 125 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -283,7 +355,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 130 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 134 }, @@ -301,7 +377,9 @@ "token": "AFTER", "value": "AFTER", "keyword": "AFTER", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 135 }, @@ -310,7 +388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -319,7 +399,9 @@ "token": "inmsg", "value": "inmsg", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 141 }, @@ -328,7 +410,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 146 }, @@ -337,30 +423,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@42" + }, "flags": 0, "position": null } - ], - "count": 38, - "idx": 38 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -380,20 +468,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -413,34 +487,34 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@21" }, { - "@type": "@18" + "@type": "@22" }, { - "@type": "@19" + "@type": "@23" }, { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@27" } ] } @@ -455,9 +529,7 @@ "last": 35 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -465,7 +537,7 @@ [ "Missing comma before start of a new alter operation.", { - "@type": "@24" + "@type": "@28" }, 0 ] diff --git a/tests/data/parser/parseAlterErr3.out b/tests/data/parser/parseAlterErr3.out index 62b303c01..fbbb20d41 100644 --- a/tests/data/parser/parseAlterErr3.out +++ b/tests/data/parser/parseAlterErr3.out @@ -2,18 +2,26 @@ "query": "-- missing comma between alter operations\nALTER TABLE `database`.`table` MODIFY `field` INT(11) AUTO_INCREMENT PRIMARY KEY;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- missing comma between alter operations\nALTER TABLE `database`.`table` MODIFY `field` INT(11) AUTO_INCREMENT PRIMARY KEY;\n", "len": 124, "last": 124, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- missing comma between alter operations", "value": "-- missing comma between alter operations", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 41 }, @@ -31,7 +43,11 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 42 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 48 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -67,7 +89,11 @@ "token": "`database`", "value": "database", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 54 }, @@ -76,7 +102,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 64 }, @@ -85,7 +115,9 @@ "token": "`table`", "value": "table", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 65 }, @@ -94,7 +126,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -103,7 +137,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 73 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -121,7 +159,9 @@ "token": "`field`", "value": "field", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 80 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -139,7 +181,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 11, "position": 88 }, @@ -148,7 +192,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 91 }, @@ -157,7 +203,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 92 }, @@ -166,7 +216,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 94 }, @@ -175,7 +227,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -184,7 +238,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 96 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -202,7 +260,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 23, "position": 111 }, @@ -211,7 +271,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 122 }, @@ -220,30 +284,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -263,20 +329,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -296,28 +348,28 @@ "partitions": null, "unknown": [ { - "@type": "@16" + "@type": "@21" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@25" }, { - "@type": "@20" + "@type": "@26" }, { - "@type": "@21" + "@type": "@27" }, { - "@type": "@22" + "@type": "@28" }, { - "@type": "@23" + "@type": "@29" } ] } @@ -332,9 +384,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterErr4.out b/tests/data/parser/parseAlterErr4.out index 0c27169e3..b22ae8c01 100644 --- a/tests/data/parser/parseAlterErr4.out +++ b/tests/data/parser/parseAlterErr4.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE actor ALTER last_update2 SET DEFAULT value1';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE actor ALTER last_update2 SET DEFAULT value1';", "len": 57, "last": 58, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "actor", "value": "actor", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "last_update2", "value": "last_update2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -103,7 +133,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 37 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -121,7 +155,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 41 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -139,7 +177,9 @@ "token": "value1", "value": "value1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 49 }, @@ -148,30 +188,36 @@ "token": "';", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 55 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +237,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -224,10 +256,10 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@17" + "@type": "@20" } ] } @@ -242,9 +274,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [ diff --git a/tests/data/parser/parseAlterEvent.out b/tests/data/parser/parseAlterEvent.out index 81b5b0ca6..94f5fa127 100644 --- a/tests/data/parser/parseAlterEvent.out +++ b/tests/data/parser/parseAlterEvent.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ENABLE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ENABLE;\n", "len": 29, "last": 29, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ENABLE", "value": "ENABLE", "keyword": "ENABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 21 }, @@ -76,7 +100,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 27 }, @@ -85,30 +113,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -163,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent2.out b/tests/data/parser/parseAlterEvent2.out index 9e65ef51d..032dca61a 100644 --- a/tests/data/parser/parseAlterEvent2.out +++ b/tests/data/parser/parseAlterEvent2.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event DISABLE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event DISABLE;\n", "len": 30, "last": 30, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "DISABLE", "value": "DISABLE", "keyword": "DISABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 21 }, @@ -76,7 +100,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 28 }, @@ -85,30 +113,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -163,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent3.out b/tests/data/parser/parseAlterEvent3.out index f24055ad4..e7ebd5b72 100644 --- a/tests/data/parser/parseAlterEvent3.out +++ b/tests/data/parser/parseAlterEvent3.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event DISABLE ON SLAVE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event DISABLE ON SLAVE;\n", "len": 39, "last": 39, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "DISABLE ON SLAVE", "value": "DISABLE ON SLAVE", "keyword": "DISABLE ON SLAVE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 37 }, @@ -85,30 +113,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -163,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent4.out b/tests/data/parser/parseAlterEvent4.out index b25e9a527..3e4dd5f00 100644 --- a/tests/data/parser/parseAlterEvent4.out +++ b/tests/data/parser/parseAlterEvent4.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON COMPLETION PRESERVE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON COMPLETION PRESERVE;\n", "len": 45, "last": 45, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON COMPLETION PRESERVE", "value": "ON COMPLETION PRESERVE", "keyword": "ON COMPLETION PRESERVE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 43 }, @@ -85,30 +113,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -163,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent5.out b/tests/data/parser/parseAlterEvent5.out index d7e08d086..0d29b27b3 100644 --- a/tests/data/parser/parseAlterEvent5.out +++ b/tests/data/parser/parseAlterEvent5.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON COMPLETION NOT PRESERVE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON COMPLETION NOT PRESERVE;\n", "len": 49, "last": 49, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON COMPLETION NOT PRESERVE", "value": "ON COMPLETION NOT PRESERVE", "keyword": "ON COMPLETION NOT PRESERVE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 47 }, @@ -85,30 +113,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -163,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent6.out b/tests/data/parser/parseAlterEvent6.out index 573e7c92a..103fac175 100644 --- a/tests/data/parser/parseAlterEvent6.out +++ b/tests/data/parser/parseAlterEvent6.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event RENAME TO my_new_event;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event RENAME TO my_new_event;\n", "len": 45, "last": 45, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +111,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 28 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,9 @@ "token": "my_new_event", "value": "my_new_event", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 31 }, @@ -112,7 +144,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 43 }, @@ -121,30 +157,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@17" + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -164,20 +202,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -214,9 +238,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent7.out b/tests/data/parser/parseAlterEvent7.out index c62421b08..d74581a21 100644 --- a/tests/data/parser/parseAlterEvent7.out +++ b/tests/data/parser/parseAlterEvent7.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event COMMENT 'This is an event';\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event COMMENT 'This is an event';\n", "len": 49, "last": 49, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +111,11 @@ "token": "'This is an event'", "value": "This is an event", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 29 }, @@ -94,7 +124,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 47 }, @@ -103,30 +137,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -146,20 +182,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -186,9 +208,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent8.out b/tests/data/parser/parseAlterEvent8.out index e0407e292..cc450ee82 100644 --- a/tests/data/parser/parseAlterEvent8.out +++ b/tests/data/parser/parseAlterEvent8.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event DO\n SELECT * FROM my_table;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event DO\n SELECT * FROM my_table;\n", "len": 50, "last": 50, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "DO", "value": "DO", "keyword": "DO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 35 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": "my_table", "value": "my_table", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 40 }, @@ -148,7 +190,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 48 }, @@ -157,30 +203,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -200,20 +248,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -224,28 +258,28 @@ "partitions": null, "unknown": [ { - "@type": "@9" + "@type": "@12" }, { - "@type": "@10" + "@type": "@13" }, { - "@type": "@11" + "@type": "@14" }, { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" } ] } @@ -260,9 +294,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEvent9.out b/tests/data/parser/parseAlterEvent9.out index 82d66cf47..3e23554c9 100644 --- a/tests/data/parser/parseAlterEvent9.out +++ b/tests/data/parser/parseAlterEvent9.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT old_db.old_event RENAME TO new_db.new_event;\nALTER EVENT `old_db`.`old_event` RENAME TO `new_db`.`new_event`;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT old_db.old_event RENAME TO new_db.new_event;\nALTER EVENT `old_db`.`old_event` RENAME TO `new_db`.`new_event`;\n", "len": 122, "last": 122, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 35, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "old_db", "value": "old_db", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -67,7 +91,9 @@ "token": "old_event", "value": "old_event", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 19 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +113,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +135,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 36 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -121,7 +157,9 @@ "token": "new_db", "value": "new_db", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 39 }, @@ -130,7 +168,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 45 }, @@ -139,7 +179,9 @@ "token": "new_event", "value": "new_event", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 46 }, @@ -148,7 +190,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 55 }, @@ -157,7 +203,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -166,7 +214,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 57 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -184,7 +236,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 63 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -202,7 +258,11 @@ "token": "`old_db`", "value": "old_db", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 69 }, @@ -211,7 +271,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 77 }, @@ -220,7 +282,9 @@ "token": "`old_event`", "value": "old_event", "keyword": null, - "type": 8, + "type": { + "@type": "@29" + }, "flags": 2, "position": 78 }, @@ -229,7 +293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -238,7 +304,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 90 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -256,7 +326,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 97 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -274,7 +348,9 @@ "token": "`new_db`", "value": "new_db", "keyword": null, - "type": 8, + "type": { + "@type": "@29" + }, "flags": 2, "position": 100 }, @@ -283,7 +359,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 108 }, @@ -292,7 +370,9 @@ "token": "`new_event`", "value": "new_event", "keyword": null, - "type": 8, + "type": { + "@type": "@29" + }, "flags": 2, "position": 109 }, @@ -301,7 +381,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": 120 }, @@ -310,30 +392,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 35, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -353,20 +437,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -417,20 +487,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -467,9 +523,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventComplete.out b/tests/data/parser/parseAlterEventComplete.out index d32c38f20..b35e3ec13 100644 --- a/tests/data/parser/parseAlterEventComplete.out +++ b/tests/data/parser/parseAlterEventComplete.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event\n ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP + INTERVAL 4 WEEK\n ENDS '2099-12-30 23:12:01' + INTERVAL 1 DAY\n ON COMPLETION NOT PRESERVE\n RENAME TO my_complete_event\n DISABLE\n COMMENT 'String as a comment'\n DO\n SELECT * FROM my_table;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event\n ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP + INTERVAL 4 WEEK\n ENDS '2099-12-30 23:12:01' + INTERVAL 1 DAY\n ON COMPLETION NOT PRESERVE\n RENAME TO my_complete_event\n DISABLE\n COMMENT 'String as a comment'\n DO\n SELECT * FROM my_table;\n", "len": 303, "last": 303, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 64, + "idx": 64, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 25 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -85,7 +111,9 @@ "token": "EVERY", "value": "EVERY", "keyword": "EVERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 43 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -103,7 +133,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 49 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -121,7 +157,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 51 }, @@ -130,7 +168,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -139,7 +179,9 @@ "token": "STARTS", "value": "STARTS", "keyword": "STARTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 62 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -157,7 +201,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 69 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -175,7 +223,11 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 87 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -193,7 +247,9 @@ "token": "INTERVAL", "value": "INTERVAL", "keyword": "INTERVAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 89 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -211,7 +269,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 98 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -229,7 +291,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 100 }, @@ -238,7 +302,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -247,7 +313,9 @@ "token": "ENDS", "value": "ENDS", "keyword": "ENDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 111 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -265,7 +335,11 @@ "token": "'2099-12-30 23:12:01'", "value": "2099-12-30 23:12:01", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 116 }, @@ -274,7 +348,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 137 }, @@ -283,7 +359,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@25" + }, "flags": 1, "position": 138 }, @@ -292,7 +370,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -301,7 +381,9 @@ "token": "INTERVAL", "value": "INTERVAL", "keyword": "INTERVAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 140 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -319,7 +403,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 149 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 150 }, @@ -337,7 +425,9 @@ "token": "DAY", "value": "DAY", "keyword": "DAY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 151 }, @@ -346,7 +436,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 154 }, @@ -355,7 +447,9 @@ "token": "ON COMPLETION NOT PRESERVE", "value": "ON COMPLETION NOT PRESERVE", "keyword": "ON COMPLETION NOT PRESERVE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 159 }, @@ -364,7 +458,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -373,7 +469,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 190 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 196 }, @@ -391,7 +491,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 197 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -409,7 +513,9 @@ "token": "my_complete_event", "value": "my_complete_event", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 200 }, @@ -418,7 +524,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 217 }, @@ -427,7 +535,9 @@ "token": "DISABLE", "value": "DISABLE", "keyword": "DISABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 222 }, @@ -436,7 +546,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 229 }, @@ -445,7 +557,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 234 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 241 }, @@ -463,7 +579,9 @@ "token": "'String as a comment'", "value": "String as a comment", "keyword": null, - "type": 7, + "type": { + "@type": "@36" + }, "flags": 1, "position": 242 }, @@ -472,7 +590,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -481,7 +601,9 @@ "token": "DO", "value": "DO", "keyword": "DO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 268 }, @@ -490,7 +612,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 270 }, @@ -499,7 +623,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 279 }, @@ -508,7 +634,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -517,7 +645,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@25" + }, "flags": 16, "position": 286 }, @@ -526,7 +656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 287 }, @@ -535,7 +667,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 288 }, @@ -544,7 +678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 292 }, @@ -553,7 +689,9 @@ "token": "my_table", "value": "my_table", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 293 }, @@ -562,7 +700,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 301 }, @@ -571,30 +713,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 302 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@70" + }, "flags": 0, "position": null } - ], - "count": 64, - "idx": 64 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -614,20 +758,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -708,28 +838,28 @@ "partitions": null, "unknown": [ { - "@type": "@55" + "@type": "@61" }, { - "@type": "@56" + "@type": "@62" }, { - "@type": "@57" + "@type": "@63" }, { - "@type": "@58" + "@type": "@64" }, { - "@type": "@59" + "@type": "@65" }, { - "@type": "@60" + "@type": "@66" }, { - "@type": "@61" + "@type": "@67" }, { - "@type": "@62" + "@type": "@68" } ] } @@ -744,9 +874,7 @@ "last": 61 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventErr.out b/tests/data/parser/parseAlterEventErr.out index 217302115..b87dadae7 100644 --- a/tests/data/parser/parseAlterEventErr.out +++ b/tests/data/parser/parseAlterEventErr.out @@ -2,18 +2,26 @@ "query": "-- No option in ALTER EVENT.\nALTER EVENT my_event;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- No option in ALTER EVENT.\nALTER EVENT my_event;\n", "len": 51, "last": 51, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- No option in ALTER EVENT.", "value": "-- No option in ALTER EVENT.", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 28 }, @@ -31,7 +43,11 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 29 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -49,7 +67,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 35 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -67,7 +89,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 41 }, @@ -76,7 +102,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 49 }, @@ -85,30 +115,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@14" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -136,9 +168,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleAt.out b/tests/data/parser/parseAlterEventOnScheduleAt.out index 09d519a4d..d498109d8 100644 --- a/tests/data/parser/parseAlterEventOnScheduleAt.out +++ b/tests/data/parser/parseAlterEventOnScheduleAt.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n AT '2023-01-01 01:23:45';\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n AT '2023-01-01 01:23:45';\n", "len": 61, "last": 61, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "AT", "value": "AT", "keyword": "AT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +133,11 @@ "token": "'2023-01-01 01:23:45'", "value": "2023-01-01 01:23:45", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 38 }, @@ -112,7 +146,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 59 }, @@ -121,30 +159,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -164,20 +204,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -214,9 +240,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleAt2.out b/tests/data/parser/parseAlterEventOnScheduleAt2.out index a98a1f384..ec21f2b45 100644 --- a/tests/data/parser/parseAlterEventOnScheduleAt2.out +++ b/tests/data/parser/parseAlterEventOnScheduleAt2.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n AT '2023-01-01 01:23:45' + INTERVAL 1 DAY;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n AT '2023-01-01 01:23:45' + INTERVAL 1 DAY;\n", "len": 78, "last": 78, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 22, + "idx": 22, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "AT", "value": "AT", "keyword": "AT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +133,11 @@ "token": "'2023-01-01 01:23:45'", "value": "2023-01-01 01:23:45", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 38 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -121,7 +157,11 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 60 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -139,7 +181,9 @@ "token": "INTERVAL", "value": "INTERVAL", "keyword": "INTERVAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 62 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -157,7 +203,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 71 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -175,7 +227,9 @@ "token": "DAY", "value": "DAY", "keyword": "DAY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 73 }, @@ -184,7 +238,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 76 }, @@ -193,30 +251,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": null } - ], - "count": 22, - "idx": 22 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -236,20 +296,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -286,9 +332,7 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleEvery.out b/tests/data/parser/parseAlterEventOnScheduleEvery.out index b9f8720a4..086594bf7 100644 --- a/tests/data/parser/parseAlterEventOnScheduleEvery.out +++ b/tests/data/parser/parseAlterEventOnScheduleEvery.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK;\n", "len": 49, "last": 49, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "EVERY", "value": "EVERY", "keyword": "EVERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +133,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 43 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 47 }, @@ -139,30 +181,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -232,9 +262,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleEvery2.out b/tests/data/parser/parseAlterEventOnScheduleEvery2.out index a329d3174..c96c9a9f3 100644 --- a/tests/data/parser/parseAlterEventOnScheduleEvery2.out +++ b/tests/data/parser/parseAlterEventOnScheduleEvery2.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK + INTERVAL 4 HOUR;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK + INTERVAL 4 HOUR;\n", "len": 67, "last": 67, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "EVERY", "value": "EVERY", "keyword": "EVERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +133,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 43 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,7 +179,11 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 48 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -157,7 +203,9 @@ "token": "INTERVAL", "value": "INTERVAL", "keyword": "INTERVAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 50 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -175,7 +225,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 59 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -193,7 +247,9 @@ "token": "HOUR", "value": "HOUR", "keyword": "HOUR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 61 }, @@ -202,7 +258,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 65 }, @@ -211,30 +271,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@29" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -254,20 +316,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -304,9 +352,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleEvery3.out b/tests/data/parser/parseAlterEventOnScheduleEvery3.out index 9615edf0d..e03bc1a8d 100644 --- a/tests/data/parser/parseAlterEventOnScheduleEvery3.out +++ b/tests/data/parser/parseAlterEventOnScheduleEvery3.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP;\n", "len": 76, "last": 76, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "EVERY", "value": "EVERY", "keyword": "EVERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +133,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 43 }, @@ -130,7 +168,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,7 +179,9 @@ "token": "STARTS", "value": "STARTS", "keyword": "STARTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -157,7 +201,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 57 }, @@ -166,7 +212,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 74 }, @@ -175,30 +225,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@24" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -218,20 +270,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -283,9 +321,7 @@ "last": 17 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleEvery4.out b/tests/data/parser/parseAlterEventOnScheduleEvery4.out index 3b82a378a..d1d3bf42e 100644 --- a/tests/data/parser/parseAlterEventOnScheduleEvery4.out +++ b/tests/data/parser/parseAlterEventOnScheduleEvery4.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP + INTERVAL 4 HOUR;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP + INTERVAL 4 HOUR;\n", "len": 94, "last": 94, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 28, + "idx": 28, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "EVERY", "value": "EVERY", "keyword": "EVERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +133,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 43 }, @@ -130,7 +168,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,7 +179,9 @@ "token": "STARTS", "value": "STARTS", "keyword": "STARTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -157,7 +201,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 57 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -175,7 +223,11 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 75 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -193,7 +247,9 @@ "token": "INTERVAL", "value": "INTERVAL", "keyword": "INTERVAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 77 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -211,7 +269,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 86 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -229,7 +291,9 @@ "token": "HOUR", "value": "HOUR", "keyword": "HOUR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 88 }, @@ -238,7 +302,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 92 }, @@ -247,30 +315,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": null } - ], - "count": 28, - "idx": 28 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -290,20 +360,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -355,9 +411,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleEvery5.out b/tests/data/parser/parseAlterEventOnScheduleEvery5.out index c6c1575a6..5ed5f1c34 100644 --- a/tests/data/parser/parseAlterEventOnScheduleEvery5.out +++ b/tests/data/parser/parseAlterEventOnScheduleEvery5.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP\n ENDS '2099-12-30 23:12:01';\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP\n ENDS '2099-12-30 23:12:01';\n", "len": 105, "last": 105, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "EVERY", "value": "EVERY", "keyword": "EVERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +133,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 43 }, @@ -130,7 +168,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,7 +179,9 @@ "token": "STARTS", "value": "STARTS", "keyword": "STARTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -157,7 +201,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 57 }, @@ -166,7 +212,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -175,7 +223,9 @@ "token": "ENDS", "value": "ENDS", "keyword": "ENDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 77 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -193,7 +245,11 @@ "token": "'2099-12-30 23:12:01'", "value": "2099-12-30 23:12:01", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 82 }, @@ -202,7 +258,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 103 }, @@ -211,30 +271,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@29" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -254,20 +316,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -334,9 +382,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventOnScheduleEvery6.out b/tests/data/parser/parseAlterEventOnScheduleEvery6.out index fdf2af7ae..40bba927f 100644 --- a/tests/data/parser/parseAlterEventOnScheduleEvery6.out +++ b/tests/data/parser/parseAlterEventOnScheduleEvery6.out @@ -2,18 +2,26 @@ "query": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP\n ENDS '2099-12-30 23:12:01' + INTERVAL 1 DAY;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER EVENT my_event ON SCHEDULE\n EVERY 2 WEEK\n STARTS CURRENT_TIMESTAMP\n ENDS '2099-12-30 23:12:01' + INTERVAL 1 DAY;\n", "len": 122, "last": 122, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 32, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "ON SCHEDULE", "value": "ON SCHEDULE", "keyword": "ON SCHEDULE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "EVERY", "value": "EVERY", "keyword": "EVERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +133,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "WEEK", "value": "WEEK", "keyword": "WEEK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 43 }, @@ -130,7 +168,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,7 +179,9 @@ "token": "STARTS", "value": "STARTS", "keyword": "STARTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -157,7 +201,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 57 }, @@ -166,7 +212,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -175,7 +223,9 @@ "token": "ENDS", "value": "ENDS", "keyword": "ENDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 77 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -193,7 +245,11 @@ "token": "'2099-12-30 23:12:01'", "value": "2099-12-30 23:12:01", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 82 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -211,7 +269,11 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 104 }, @@ -220,7 +282,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 105 }, @@ -229,7 +293,9 @@ "token": "INTERVAL", "value": "INTERVAL", "keyword": "INTERVAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 106 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -247,7 +315,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 115 }, @@ -256,7 +326,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -265,7 +337,9 @@ "token": "DAY", "value": "DAY", "keyword": "DAY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 117 }, @@ -274,7 +348,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 120 }, @@ -283,30 +361,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@38" + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 32 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -326,20 +406,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -406,9 +472,7 @@ "last": 29 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventWithDefiner.out b/tests/data/parser/parseAlterEventWithDefiner.out index 5045820c8..5bf10747e 100644 --- a/tests/data/parser/parseAlterEventWithDefiner.out +++ b/tests/data/parser/parseAlterEventWithDefiner.out @@ -2,18 +2,26 @@ "query": "ALTER DEFINER = user EVENT my_event ENABLE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER DEFINER = user EVENT my_event ENABLE;\n", "len": 44, "last": 44, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 14 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "user", "value": "user", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +111,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 21 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +133,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -121,7 +157,9 @@ "token": "ENABLE", "value": "ENABLE", "keyword": "ENABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 36 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 42 }, @@ -139,30 +181,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -232,9 +262,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterEventWithOtherDefiners.out b/tests/data/parser/parseAlterEventWithOtherDefiners.out index bfb52198e..c7bf9b4e0 100644 --- a/tests/data/parser/parseAlterEventWithOtherDefiners.out +++ b/tests/data/parser/parseAlterEventWithOtherDefiners.out @@ -2,18 +2,26 @@ "query": "ALTER DEFINER = 'user' EVENT my_event ENABLE;\nALTER DEFINER = `user` EVENT my_event ENABLE;\nALTER DEFINER = user@host EVENT my_event ENABLE;\nALTER DEFINER = 'user'@'host' EVENT my_event ENABLE;\nALTER DEFINER = `user`@`host` EVENT my_event ENABLE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER DEFINER = 'user' EVENT my_event ENABLE;\nALTER DEFINER = `user` EVENT my_event ENABLE;\nALTER DEFINER = user@host EVENT my_event ENABLE;\nALTER DEFINER = 'user'@'host' EVENT my_event ENABLE;\nALTER DEFINER = `user`@`host` EVENT my_event ENABLE;\n", "len": 247, "last": 247, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 77, + "idx": 77, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 14 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,11 @@ "token": "'user'", "value": "user", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 16 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +113,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 23 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +135,11 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 29 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -121,7 +159,9 @@ "token": "ENABLE", "value": "ENABLE", "keyword": "ENABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 38 }, @@ -130,7 +170,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 44 }, @@ -139,7 +183,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -148,7 +194,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -166,7 +216,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 52 }, @@ -175,7 +227,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -184,7 +238,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 60 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -202,7 +260,11 @@ "token": "`user`", "value": "user", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 62 }, @@ -211,7 +273,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -220,7 +284,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 69 }, @@ -229,7 +295,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -238,7 +306,9 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 75 }, @@ -247,7 +317,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -256,7 +328,9 @@ "token": "ENABLE", "value": "ENABLE", "keyword": "ENABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 84 }, @@ -265,7 +339,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": 90 }, @@ -274,7 +350,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -283,7 +361,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 92 }, @@ -292,7 +372,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -301,7 +383,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 98 }, @@ -310,7 +394,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 105 }, @@ -319,7 +405,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 106 }, @@ -328,7 +416,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -337,7 +427,9 @@ "token": "user", "value": "user", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 108 }, @@ -346,7 +438,9 @@ "token": "@host", "value": "host", "keyword": null, - "type": 8, + "type": { + "@type": "@30" + }, "flags": 1, "position": 112 }, @@ -355,7 +449,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 117 }, @@ -364,7 +460,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 118 }, @@ -373,7 +471,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -382,7 +482,9 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 124 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -400,7 +504,9 @@ "token": "ENABLE", "value": "ENABLE", "keyword": "ENABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 133 }, @@ -409,7 +515,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": 139 }, @@ -418,7 +526,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -427,7 +537,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 141 }, @@ -436,7 +548,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 146 }, @@ -445,7 +559,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 147 }, @@ -454,7 +570,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 154 }, @@ -463,7 +581,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 155 }, @@ -472,7 +592,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -481,7 +603,9 @@ "token": "'user'@'host'", "value": "user@host", "keyword": null, - "type": 8, + "type": { + "@type": "@30" + }, "flags": 4, "position": 157 }, @@ -490,7 +614,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 170 }, @@ -499,7 +625,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 171 }, @@ -508,7 +636,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -517,7 +647,9 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 177 }, @@ -526,7 +658,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -535,7 +669,9 @@ "token": "ENABLE", "value": "ENABLE", "keyword": "ENABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 186 }, @@ -544,7 +680,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": 192 }, @@ -553,7 +691,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 193 }, @@ -562,7 +702,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 194 }, @@ -571,7 +713,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -580,7 +724,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 200 }, @@ -589,7 +735,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 207 }, @@ -598,7 +746,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 208 }, @@ -607,7 +757,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 209 }, @@ -616,7 +768,9 @@ "token": "`user`@`host`", "value": "user@host", "keyword": null, - "type": 8, + "type": { + "@type": "@30" + }, "flags": 4, "position": 210 }, @@ -625,7 +779,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 223 }, @@ -634,7 +790,9 @@ "token": "EVENT", "value": "EVENT", "keyword": "EVENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 224 }, @@ -643,7 +801,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 229 }, @@ -652,7 +812,9 @@ "token": "my_event", "value": "my_event", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 230 }, @@ -661,7 +823,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 238 }, @@ -670,7 +834,9 @@ "token": "ENABLE", "value": "ENABLE", "keyword": "ENABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 239 }, @@ -679,7 +845,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": 245 }, @@ -688,30 +856,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 246 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": null } - ], - "count": 77, - "idx": 77 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -731,20 +901,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -795,20 +951,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -859,20 +1001,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -923,20 +1051,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -987,20 +1101,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -1037,9 +1137,7 @@ "last": 74 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterFunction1.out b/tests/data/parser/parseAlterFunction1.out index 73b98858f..618a8a095 100644 --- a/tests/data/parser/parseAlterFunction1.out +++ b/tests/data/parser/parseAlterFunction1.out @@ -2,18 +2,26 @@ "query": "ALTER FUNCTION func_name COMMENT \"test\";\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER FUNCTION func_name COMMENT \"test\";\n", "len": 41, "last": 41, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "func_name", "value": "func_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 33 }, @@ -94,7 +124,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 39 }, @@ -103,30 +137,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -146,20 +182,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -186,9 +208,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterFunction2.out b/tests/data/parser/parseAlterFunction2.out index ae8675e2e..82c93c9b2 100644 --- a/tests/data/parser/parseAlterFunction2.out +++ b/tests/data/parser/parseAlterFunction2.out @@ -2,18 +2,26 @@ "query": "ALTER FUNCTION func_name LANGUAGE SQL;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER FUNCTION func_name LANGUAGE SQL;\n", "len": 39, "last": 39, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "func_name", "value": "func_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +89,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 25 }, @@ -76,7 +100,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 37 }, @@ -85,30 +113,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -163,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterFunction3.out b/tests/data/parser/parseAlterFunction3.out index e7b3c27cc..5780f3729 100644 --- a/tests/data/parser/parseAlterFunction3.out +++ b/tests/data/parser/parseAlterFunction3.out @@ -2,18 +2,26 @@ "query": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL CONTAINS SQL SQL SECURITY DEFINER;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL CONTAINS SQL SQL SECURITY DEFINER;\n", "len": 88, "last": 88, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "func_name", "value": "func_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 33 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 40 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +157,9 @@ "token": "CONTAINS SQL", "value": "CONTAINS SQL", "keyword": "CONTAINS SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 53 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -139,7 +179,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 66 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -157,7 +201,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 79 }, @@ -166,7 +212,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 86 }, @@ -175,30 +225,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@24" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -218,20 +270,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -262,9 +300,7 @@ "last": 17 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterFunction4.out b/tests/data/parser/parseAlterFunction4.out index e6debf311..05b50d66d 100644 --- a/tests/data/parser/parseAlterFunction4.out +++ b/tests/data/parser/parseAlterFunction4.out @@ -2,18 +2,26 @@ "query": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL NO SQL SQL SECURITY INVOKER;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL NO SQL SQL SECURITY INVOKER;\n", "len": 82, "last": 82, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "func_name", "value": "func_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 33 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 40 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +157,9 @@ "token": "NO SQL", "value": "NO SQL", "keyword": "NO SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 53 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -139,7 +179,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 60 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -157,7 +201,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 73 }, @@ -166,7 +212,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 80 }, @@ -175,30 +225,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@24" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -218,20 +270,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -262,9 +300,7 @@ "last": 17 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterFunction5.out b/tests/data/parser/parseAlterFunction5.out index 4020c4f28..27363a810 100644 --- a/tests/data/parser/parseAlterFunction5.out +++ b/tests/data/parser/parseAlterFunction5.out @@ -2,18 +2,26 @@ "query": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL READS SQL DATA;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL READS SQL DATA;\n", "len": 69, "last": 69, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "func_name", "value": "func_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 33 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 40 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +157,9 @@ "token": "READS SQL DATA", "value": "READS SQL DATA", "keyword": "READS SQL DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 53 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 67 }, @@ -139,30 +181,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -224,9 +254,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterFunction6.out b/tests/data/parser/parseAlterFunction6.out index c38b3d9c6..5633dba66 100644 --- a/tests/data/parser/parseAlterFunction6.out +++ b/tests/data/parser/parseAlterFunction6.out @@ -2,18 +2,26 @@ "query": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL MODIFIES SQL DATA;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER FUNCTION func_name COMMENT \"test\" LANGUAGE SQL MODIFIES SQL DATA;\n", "len": 72, "last": 72, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "func_name", "value": "func_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 33 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 40 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +157,9 @@ "token": "MODIFIES SQL DATA", "value": "MODIFIES SQL DATA", "keyword": "MODIFIES SQL DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 53 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 70 }, @@ -139,30 +181,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -224,9 +254,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterProcedure1.out b/tests/data/parser/parseAlterProcedure1.out index ecc35499d..9e3ddc522 100644 --- a/tests/data/parser/parseAlterProcedure1.out +++ b/tests/data/parser/parseAlterProcedure1.out @@ -2,18 +2,26 @@ "query": "ALTER PROCEDURE proc_name COMMENT \"test\";\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER PROCEDURE proc_name COMMENT \"test\";\n", "len": 42, "last": 42, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "proc_name", "value": "proc_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 40 }, @@ -103,30 +137,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -146,20 +182,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -186,9 +208,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterProcedure2.out b/tests/data/parser/parseAlterProcedure2.out index 388133af2..fa344b1af 100644 --- a/tests/data/parser/parseAlterProcedure2.out +++ b/tests/data/parser/parseAlterProcedure2.out @@ -2,18 +2,26 @@ "query": "ALTER PROCEDURE proc_name LANGUAGE SQL;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER PROCEDURE proc_name LANGUAGE SQL;\n", "len": 40, "last": 40, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "proc_name", "value": "proc_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 26 }, @@ -76,7 +100,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 38 }, @@ -85,30 +113,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -163,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterProcedure3.out b/tests/data/parser/parseAlterProcedure3.out index 7d84f00a3..15cedfb77 100644 --- a/tests/data/parser/parseAlterProcedure3.out +++ b/tests/data/parser/parseAlterProcedure3.out @@ -2,18 +2,26 @@ "query": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL CONTAINS SQL SQL SECURITY DEFINER;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL CONTAINS SQL SQL SECURITY DEFINER;\n", "len": 89, "last": 89, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "proc_name", "value": "proc_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -121,7 +157,9 @@ "token": "CONTAINS SQL", "value": "CONTAINS SQL", "keyword": "CONTAINS SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -139,7 +179,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 67 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -157,7 +201,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 80 }, @@ -166,7 +212,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 87 }, @@ -175,30 +225,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@24" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -218,20 +270,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -262,9 +300,7 @@ "last": 17 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterProcedure4.out b/tests/data/parser/parseAlterProcedure4.out index 4d735a51f..dac4e196e 100644 --- a/tests/data/parser/parseAlterProcedure4.out +++ b/tests/data/parser/parseAlterProcedure4.out @@ -2,18 +2,26 @@ "query": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL NO SQL SQL SECURITY INVOKER;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL NO SQL SQL SECURITY INVOKER;\n", "len": 83, "last": 83, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "proc_name", "value": "proc_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -121,7 +157,9 @@ "token": "NO SQL", "value": "NO SQL", "keyword": "NO SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -139,7 +179,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 61 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -157,7 +201,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 74 }, @@ -166,7 +212,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 81 }, @@ -175,30 +225,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@24" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -218,20 +270,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -262,9 +300,7 @@ "last": 17 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterProcedure5.out b/tests/data/parser/parseAlterProcedure5.out index d0aee9a4c..7fede89e6 100644 --- a/tests/data/parser/parseAlterProcedure5.out +++ b/tests/data/parser/parseAlterProcedure5.out @@ -2,18 +2,26 @@ "query": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL READS SQL DATA;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL READS SQL DATA;\n", "len": 70, "last": 70, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "proc_name", "value": "proc_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -121,7 +157,9 @@ "token": "READS SQL DATA", "value": "READS SQL DATA", "keyword": "READS SQL DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 68 }, @@ -139,30 +181,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -224,9 +254,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterProcedure6.out b/tests/data/parser/parseAlterProcedure6.out index 4fa177fb5..5483b3b7a 100644 --- a/tests/data/parser/parseAlterProcedure6.out +++ b/tests/data/parser/parseAlterProcedure6.out @@ -2,18 +2,26 @@ "query": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL MODIFIES SQL DATA;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER PROCEDURE proc_name COMMENT \"test\" LANGUAGE SQL MODIFIES SQL DATA;\n", "len": 73, "last": 73, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "proc_name", "value": "proc_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "\"test\"", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +135,9 @@ "token": "LANGUAGE SQL", "value": "LANGUAGE SQL", "keyword": "LANGUAGE SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 41 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -121,7 +157,9 @@ "token": "MODIFIES SQL DATA", "value": "MODIFIES SQL DATA", "keyword": "MODIFIES SQL DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 71 }, @@ -139,30 +181,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -224,9 +254,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterRenameColumn.out b/tests/data/parser/parseAlterRenameColumn.out index 2286807d9..78e506655 100644 --- a/tests/data/parser/parseAlterRenameColumn.out +++ b/tests/data/parser/parseAlterRenameColumn.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE myTable RENAME COLUMN foo TO bar;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE myTable RENAME COLUMN foo TO bar;\n", "len": 46, "last": 46, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "myTable", "value": "myTable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +133,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 34 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -121,7 +155,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -139,7 +177,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 41 }, @@ -148,7 +188,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 44 }, @@ -157,30 +201,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -200,20 +246,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [ @@ -251,9 +283,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterRenameColumns.out b/tests/data/parser/parseAlterRenameColumns.out index 7ad0662d0..be1d07414 100644 --- a/tests/data/parser/parseAlterRenameColumns.out +++ b/tests/data/parser/parseAlterRenameColumns.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE myTable RENAME COLUMN a TO b,\n RENAME COLUMN b TO c,\n RENAME COLUMN c TO d,\n RENAME COLUMN d TO a;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE myTable RENAME COLUMN a TO b,\n RENAME COLUMN b TO c,\n RENAME COLUMN c TO d,\n RENAME COLUMN d TO a;\n", "len": 168, "last": 168, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 51, + "idx": 51, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "myTable", "value": "myTable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +133,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 34 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -121,7 +155,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 36 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -139,7 +177,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 39 }, @@ -148,7 +188,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 40 }, @@ -157,7 +201,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -166,7 +212,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 62 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -184,7 +234,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 69 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -202,7 +256,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 76 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -220,7 +278,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 78 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -238,7 +300,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 81 }, @@ -247,7 +311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 82 }, @@ -256,7 +322,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -265,7 +333,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 104 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -283,7 +355,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 111 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 117 }, @@ -301,7 +377,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 118 }, @@ -310,7 +388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -319,7 +399,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 120 }, @@ -328,7 +410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -337,7 +421,9 @@ "token": "d", "value": "d", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 123 }, @@ -346,7 +432,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 124 }, @@ -355,7 +443,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -364,7 +454,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 146 }, @@ -373,7 +465,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -382,7 +476,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 153 }, @@ -391,7 +487,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 159 }, @@ -400,7 +498,9 @@ "token": "d", "value": "d", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 160 }, @@ -409,7 +509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 161 }, @@ -418,7 +520,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 162 }, @@ -427,7 +531,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 164 }, @@ -436,7 +542,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 165 }, @@ -445,7 +553,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 166 }, @@ -454,30 +566,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 167 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@55" + }, "flags": 0, "position": null } - ], - "count": 51, - "idx": 51 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -497,20 +611,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [ @@ -539,20 +639,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [ @@ -581,20 +667,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [ @@ -623,20 +695,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [ @@ -674,9 +732,7 @@ "last": 48 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableAddColumnWithCheck.out b/tests/data/parser/parseAlterTableAddColumnWithCheck.out index ea3f1061a..505d3d44b 100644 --- a/tests/data/parser/parseAlterTableAddColumnWithCheck.out +++ b/tests/data/parser/parseAlterTableAddColumnWithCheck.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `xx` ADD `json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`json`));", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `xx` ADD `json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`json`));", "len": 115, "last": 115, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 32, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`xx`", "value": "xx", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +111,9 @@ "token": "`json`", "value": "json", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 21 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +133,9 @@ "token": "longtext", "value": "LONGTEXT", "keyword": "LONGTEXT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 28 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -121,7 +155,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 37 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -139,7 +177,11 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 51 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -157,7 +201,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 59 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -175,7 +223,9 @@ "token": "utf8mb4_bin", "value": "utf8mb4_bin", "keyword": null, - "type": 0, + "type": { + "@type": "@20" + }, "flags": 0, "position": 67 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -193,7 +245,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 79 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -211,7 +267,9 @@ "token": "CHECK", "value": "CHECK", "keyword": "CHECK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 88 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -229,7 +289,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 94 }, @@ -238,7 +302,9 @@ "token": "json_valid", "value": "json_valid", "keyword": "JSON_VALID", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 95 }, @@ -247,7 +313,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@31" + }, "flags": 16, "position": 105 }, @@ -256,7 +324,9 @@ "token": "`json`", "value": "json", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 106 }, @@ -265,7 +335,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@31" + }, "flags": 16, "position": 112 }, @@ -274,7 +346,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@31" + }, "flags": 16, "position": 113 }, @@ -283,30 +357,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 114 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@38" + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 32 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -326,20 +404,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -358,15 +422,6 @@ }, "partitions": null, "unknown": [ - { - "@type": "@12" - }, - { - "@type": "@13" - }, - { - "@type": "@14" - }, { "@type": "@15" }, @@ -382,9 +437,6 @@ { "@type": "@19" }, - { - "@type": "@20" - }, { "@type": "@21" }, @@ -405,18 +457,6 @@ }, { "@type": "@27" - }, - { - "@type": "@28" - }, - { - "@type": "@29" - }, - { - "@type": "@30" - }, - { - "@type": "@31" } ] } @@ -431,12 +471,18 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], - "parser": [] + "parser": [ + [ + "A new statement was found, but no delimiter between it and the previous one.", + { + "@type": "@28" + }, + 0 + ] + ] } } \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddSpatialIndex1.out b/tests/data/parser/parseAlterTableAddSpatialIndex1.out index f6d7c4493..3d33446a1 100644 --- a/tests/data/parser/parseAlterTableAddSpatialIndex1.out +++ b/tests/data/parser/parseAlterTableAddSpatialIndex1.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE testtable ADD SPATIAL INDEX(`mypoint`), ALGORITHM=INPLACE, LOCK=SHARED;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE testtable ADD SPATIAL INDEX(`mypoint`), ALGORITHM=INPLACE, LOCK=SHARED;", "len": 83, "last": 83, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "testtable", "value": "testtable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -85,7 +111,9 @@ "token": "SPATIAL INDEX", "value": "SPATIAL INDEX", "keyword": "SPATIAL INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 26 }, @@ -94,7 +122,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 39 }, @@ -103,7 +135,11 @@ "token": "`mypoint`", "value": "mypoint", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 40 }, @@ -112,7 +148,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 49 }, @@ -121,7 +159,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 50 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -139,7 +181,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 52 }, @@ -148,7 +192,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 61 }, @@ -157,7 +203,9 @@ "token": "INPLACE", "value": "INPLACE", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 62 }, @@ -166,7 +214,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 69 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -184,7 +236,9 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -193,7 +247,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 75 }, @@ -202,7 +258,9 @@ "token": "SHARED", "value": "SHARED", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 76 }, @@ -211,30 +269,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 82 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@30" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -254,20 +316,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -278,35 +326,21 @@ "partitions": null, "unknown": [ { - "@type": "@10" + "@type": "@13" }, { - "@type": "@11" + "@type": "@14" }, { - "@type": "@12" + "@type": "@16" }, { - "@type": "@13" + "@type": "@18" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -324,20 +358,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -364,9 +384,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableAddUniqueKey1.in b/tests/data/parser/parseAlterTableAddUniqueKey1.in new file mode 100644 index 000000000..15baa47a3 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKey1.in @@ -0,0 +1 @@ +ALTER TABLE testtable ADD UNIQUE KEY name_of_the_unique_constraint (`UNIQUE_COLUMN`); diff --git a/tests/data/parser/parseAlterTableAddUniqueKey1.out b/tests/data/parser/parseAlterTableAddUniqueKey1.out new file mode 100644 index 000000000..0a770acf4 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKey1.out @@ -0,0 +1,300 @@ +{ + "query": "ALTER TABLE testtable ADD UNIQUE KEY name_of_the_unique_constraint (`UNIQUE_COLUMN`);\n", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE testtable ADD UNIQUE KEY name_of_the_unique_constraint (`UNIQUE_COLUMN`);\n", + "len": 86, + "last": 86, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "testtable", + "value": "testtable", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, + "flags": 0, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 21 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 22 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 25 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 26 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 36 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "name_of_the_unique_constraint", + "value": "name_of_the_unique_constraint", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 0, + "position": 37 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 66 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 67 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`UNIQUE_COLUMN`", + "value": "UNIQUE_COLUMN", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 68 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 83 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 84 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "\n", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 85 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@23" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "testtable", + "column": null, + "expr": "testtable", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "name_of_the_unique_constraint", + "expr": "name_of_the_unique_constraint", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@21" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 15 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKey2.in b/tests/data/parser/parseAlterTableAddUniqueKey2.in new file mode 100644 index 000000000..aedc20122 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKey2.in @@ -0,0 +1 @@ +ALTER TABLE testtable ADD UNIQUE name_of_the_unique_constraint (`UNIQUE_COLUMN`); diff --git a/tests/data/parser/parseAlterTableAddUniqueKey2.out b/tests/data/parser/parseAlterTableAddUniqueKey2.out new file mode 100644 index 000000000..87e0d82d1 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKey2.out @@ -0,0 +1,300 @@ +{ + "query": "ALTER TABLE testtable ADD UNIQUE name_of_the_unique_constraint (`UNIQUE_COLUMN`);\n", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE testtable ADD UNIQUE name_of_the_unique_constraint (`UNIQUE_COLUMN`);\n", + "len": 82, + "last": 82, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "testtable", + "value": "testtable", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, + "flags": 0, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 21 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 22 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 25 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE", + "value": "UNIQUE", + "keyword": "UNIQUE", + "type": { + "@type": "@3" + }, + "flags": 19, + "position": 26 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 32 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "name_of_the_unique_constraint", + "value": "name_of_the_unique_constraint", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 0, + "position": 33 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 62 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 63 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`UNIQUE_COLUMN`", + "value": "UNIQUE_COLUMN", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 64 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 79 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 80 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "\n", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 81 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@23" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "testtable", + "column": null, + "expr": "testtable", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "name_of_the_unique_constraint", + "expr": "name_of_the_unique_constraint", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@21" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 15 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyAsc.in b/tests/data/parser/parseAlterTableAddUniqueKeyAsc.in new file mode 100644 index 000000000..5b37d2b9b --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyAsc.in @@ -0,0 +1 @@ +ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`, `column2` ASC); \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyAsc.out b/tests/data/parser/parseAlterTableAddUniqueKeyAsc.out new file mode 100644 index 000000000..afee84f86 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyAsc.out @@ -0,0 +1,357 @@ +{ + "query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`, `column2` ASC);", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`, `column2` ASC);", + "len": 83, + "last": 83, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 22, + "idx": 22, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`bad_table_is_bad`", + "value": "bad_table_is_bad", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 30 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 31 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 34 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 35 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 45 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 46 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 55 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 56 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 57 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ",", + "value": ",", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 66 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 67 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column2`", + "value": "column2", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 68 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 77 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ASC", + "value": "ASC", + "keyword": "ASC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 78 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 81 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 82 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@27" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "bad_table_is_bad", + "column": null, + "expr": "`bad_table_is_bad`", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "column1", + "expr": "`column1`", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@20" + }, + { + "@type": "@21" + }, + { + "@type": "@22" + }, + { + "@type": "@23" + }, + { + "@type": "@24" + }, + { + "@type": "@25" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 20 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyAscDesc.in b/tests/data/parser/parseAlterTableAddUniqueKeyAscDesc.in new file mode 100644 index 000000000..ed94fc6ef --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyAscDesc.in @@ -0,0 +1 @@ +ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `asc_desc_key` (`column1` ASC, `column2` DESC); \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyAscDesc.out b/tests/data/parser/parseAlterTableAddUniqueKeyAscDesc.out new file mode 100644 index 000000000..ecada6eea --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyAscDesc.out @@ -0,0 +1,385 @@ +{ + "query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `asc_desc_key` (`column1` ASC, `column2` DESC);", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `asc_desc_key` (`column1` ASC, `column2` DESC);", + "len": 93, + "last": 93, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`bad_table_is_bad`", + "value": "bad_table_is_bad", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 30 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 31 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 34 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 35 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 45 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`asc_desc_key`", + "value": "asc_desc_key", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 46 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 60 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 61 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 62 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 71 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ASC", + "value": "ASC", + "keyword": "ASC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 72 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ",", + "value": ",", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 75 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 76 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column2`", + "value": "column2", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 77 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 86 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "DESC", + "value": "DESC", + "keyword": "DESC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 87 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 91 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 92 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@29" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "bad_table_is_bad", + "column": null, + "expr": "`bad_table_is_bad`", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "asc_desc_key", + "expr": "`asc_desc_key`", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@20" + }, + { + "@type": "@21" + }, + { + "@type": "@22" + }, + { + "@type": "@23" + }, + { + "@type": "@24" + }, + { + "@type": "@25" + }, + { + "@type": "@26" + }, + { + "@type": "@27" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 22 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyAscLower.in b/tests/data/parser/parseAlterTableAddUniqueKeyAscLower.in new file mode 100644 index 000000000..4fba5de6a --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyAscLower.in @@ -0,0 +1 @@ +ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `lower_asc_key` (`column1` asc, `column2` asc); \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyAscLower.out b/tests/data/parser/parseAlterTableAddUniqueKeyAscLower.out new file mode 100644 index 000000000..97a19946c --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyAscLower.out @@ -0,0 +1,385 @@ +{ + "query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `lower_asc_key` (`column1` asc, `column2` asc);", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `lower_asc_key` (`column1` asc, `column2` asc);", + "len": 93, + "last": 93, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`bad_table_is_bad`", + "value": "bad_table_is_bad", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 30 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 31 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 34 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 35 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 45 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`lower_asc_key`", + "value": "lower_asc_key", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 46 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 61 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 62 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 63 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 72 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "asc", + "value": "ASC", + "keyword": "ASC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 73 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ",", + "value": ",", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 76 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 77 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column2`", + "value": "column2", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 78 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 87 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "asc", + "value": "ASC", + "keyword": "ASC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 88 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 91 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 92 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@29" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "bad_table_is_bad", + "column": null, + "expr": "`bad_table_is_bad`", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "lower_asc_key", + "expr": "`lower_asc_key`", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@20" + }, + { + "@type": "@21" + }, + { + "@type": "@22" + }, + { + "@type": "@23" + }, + { + "@type": "@24" + }, + { + "@type": "@25" + }, + { + "@type": "@26" + }, + { + "@type": "@27" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 22 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyDesc.in b/tests/data/parser/parseAlterTableAddUniqueKeyDesc.in new file mode 100644 index 000000000..1e50f8c52 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyDesc.in @@ -0,0 +1 @@ +ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`,`column2` DESC); \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyDesc.out b/tests/data/parser/parseAlterTableAddUniqueKeyDesc.out new file mode 100644 index 000000000..5dab65071 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyDesc.out @@ -0,0 +1,343 @@ +{ + "query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`,`column2` DESC);", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `column1` (`column1`,`column2` DESC);", + "len": 83, + "last": 83, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`bad_table_is_bad`", + "value": "bad_table_is_bad", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 30 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 31 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 34 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 35 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 45 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 46 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 55 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 56 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 57 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ",", + "value": ",", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 66 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column2`", + "value": "column2", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 67 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 76 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "DESC", + "value": "DESC", + "keyword": "DESC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 77 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 81 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 82 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@26" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "bad_table_is_bad", + "column": null, + "expr": "`bad_table_is_bad`", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "column1", + "expr": "`column1`", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@20" + }, + { + "@type": "@21" + }, + { + "@type": "@22" + }, + { + "@type": "@23" + }, + { + "@type": "@24" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 19 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyDescAsc.in b/tests/data/parser/parseAlterTableAddUniqueKeyDescAsc.in new file mode 100644 index 000000000..e1878ba68 --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyDescAsc.in @@ -0,0 +1 @@ +ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `desc_asc_key` (`column1` DESC, `column2` ASC); \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyDescAsc.out b/tests/data/parser/parseAlterTableAddUniqueKeyDescAsc.out new file mode 100644 index 000000000..6c70ae26b --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyDescAsc.out @@ -0,0 +1,385 @@ +{ + "query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `desc_asc_key` (`column1` DESC, `column2` ASC);", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `desc_asc_key` (`column1` DESC, `column2` ASC);", + "len": 93, + "last": 93, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`bad_table_is_bad`", + "value": "bad_table_is_bad", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 30 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 31 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 34 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 35 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 45 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`desc_asc_key`", + "value": "desc_asc_key", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 46 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 60 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 61 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 62 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 71 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "DESC", + "value": "DESC", + "keyword": "DESC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 72 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ",", + "value": ",", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 76 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 77 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column2`", + "value": "column2", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 78 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 87 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ASC", + "value": "ASC", + "keyword": "ASC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 88 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 91 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 92 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@29" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "bad_table_is_bad", + "column": null, + "expr": "`bad_table_is_bad`", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "desc_asc_key", + "expr": "`desc_asc_key`", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@20" + }, + { + "@type": "@21" + }, + { + "@type": "@22" + }, + { + "@type": "@23" + }, + { + "@type": "@24" + }, + { + "@type": "@25" + }, + { + "@type": "@26" + }, + { + "@type": "@27" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 22 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyDescLower.in b/tests/data/parser/parseAlterTableAddUniqueKeyDescLower.in new file mode 100644 index 000000000..4abb6f2db --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyDescLower.in @@ -0,0 +1 @@ +ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `lower_desc_key` (`column1` desc, `column2` desc); \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyDescLower.out b/tests/data/parser/parseAlterTableAddUniqueKeyDescLower.out new file mode 100644 index 000000000..cb1cbdb2c --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyDescLower.out @@ -0,0 +1,385 @@ +{ + "query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `lower_desc_key` (`column1` desc, `column2` desc);", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `lower_desc_key` (`column1` desc, `column2` desc);", + "len": 96, + "last": 96, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`bad_table_is_bad`", + "value": "bad_table_is_bad", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 30 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 31 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 34 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 35 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 45 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`lower_desc_key`", + "value": "lower_desc_key", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 46 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 62 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 63 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 64 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 73 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "desc", + "value": "DESC", + "keyword": "DESC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 74 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ",", + "value": ",", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 78 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 79 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column2`", + "value": "column2", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 80 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 89 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "desc", + "value": "DESC", + "keyword": "DESC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 90 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 94 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 95 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@29" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "bad_table_is_bad", + "column": null, + "expr": "`bad_table_is_bad`", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "lower_desc_key", + "expr": "`lower_desc_key`", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@20" + }, + { + "@type": "@21" + }, + { + "@type": "@22" + }, + { + "@type": "@23" + }, + { + "@type": "@24" + }, + { + "@type": "@25" + }, + { + "@type": "@26" + }, + { + "@type": "@27" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 22 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyTwoDesc.in b/tests/data/parser/parseAlterTableAddUniqueKeyTwoDesc.in new file mode 100644 index 000000000..74a42bd2b --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyTwoDesc.in @@ -0,0 +1 @@ +ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `two_desc_key` (`column1` DESC, `column2` DESC); \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableAddUniqueKeyTwoDesc.out b/tests/data/parser/parseAlterTableAddUniqueKeyTwoDesc.out new file mode 100644 index 000000000..c70e89cad --- /dev/null +++ b/tests/data/parser/parseAlterTableAddUniqueKeyTwoDesc.out @@ -0,0 +1,385 @@ +{ + "query": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `two_desc_key` (`column1` DESC, `column2` DESC);", + "lexer": { + "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], + "str": "ALTER TABLE `bad_table_is_bad` ADD UNIQUE KEY `two_desc_key` (`column1` DESC, `column2` DESC);", + "len": 94, + "last": 94, + "list": { + "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, + "tokens": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ALTER", + "value": "ALTER", + "keyword": "ALTER", + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, + "flags": 3, + "position": 0 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, + "flags": 0, + "position": 5 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "TABLE", + "value": "TABLE", + "keyword": "TABLE", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 6 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 11 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`bad_table_is_bad`", + "value": "bad_table_is_bad", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, + "flags": 2, + "position": 12 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 30 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "ADD", + "value": "ADD", + "keyword": "ADD", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 31 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 34 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "UNIQUE KEY", + "value": "UNIQUE KEY", + "keyword": "UNIQUE KEY", + "type": { + "@type": "@3" + }, + "flags": 23, + "position": 35 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 45 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`two_desc_key`", + "value": "two_desc_key", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 46 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 60 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "(", + "value": "(", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, + "flags": 16, + "position": 61 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column1`", + "value": "column1", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 62 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 71 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "DESC", + "value": "DESC", + "keyword": "DESC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 72 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ",", + "value": ",", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 76 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 77 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "`column2`", + "value": "column2", + "keyword": null, + "type": { + "@type": "@9" + }, + "flags": 2, + "position": 78 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": " ", + "value": " ", + "keyword": null, + "type": { + "@type": "@5" + }, + "flags": 0, + "position": 87 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "DESC", + "value": "DESC", + "keyword": "DESC", + "type": { + "@type": "@3" + }, + "flags": 3, + "position": 88 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ")", + "value": ")", + "keyword": null, + "type": { + "@type": "@18" + }, + "flags": 16, + "position": 92 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": ";", + "value": ";", + "keyword": null, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, + "flags": 0, + "position": 93 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Token", + "token": "", + "value": "", + "keyword": null, + "type": { + "@type": "@29" + }, + "flags": 0, + "position": null + } + ] + }, + "delimiter": ";", + "delimiterLen": 1 + }, + "parser": { + "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], + "list": { + "@type": "@1" + }, + "statements": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Statements\\AlterStatement", + "table": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": "bad_table_is_bad", + "column": null, + "expr": "`bad_table_is_bad`", + "alias": null, + "function": null, + "subquery": null + }, + "altered": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "1": "ADD", + "2": "UNIQUE KEY" + } + }, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "two_desc_key", + "expr": "`two_desc_key`", + "alias": null, + "function": null, + "subquery": null + }, + "partitions": null, + "unknown": [ + { + "@type": "@17" + }, + { + "@type": "@19" + }, + { + "@type": "@20" + }, + { + "@type": "@21" + }, + { + "@type": "@22" + }, + { + "@type": "@23" + }, + { + "@type": "@24" + }, + { + "@type": "@25" + }, + { + "@type": "@26" + }, + { + "@type": "@27" + } + ] + } + ], + "options": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", + "options": { + "3": "TABLE" + } + }, + "first": 0, + "last": 22 + } + ], + "brackets": 0 + }, + "errors": { + "lexer": [], + "parser": [] + } +} \ No newline at end of file diff --git a/tests/data/parser/parseAlterTableCharacterSet1.out b/tests/data/parser/parseAlterTableCharacterSet1.out index 81fc20122..03818f25a 100644 --- a/tests/data/parser/parseAlterTableCharacterSet1.out +++ b/tests/data/parser/parseAlterTableCharacterSet1.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `d` DEFAULT CHARSET=hp8 COLLATE hp8_english_ci;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `d` DEFAULT CHARSET=hp8 COLLATE hp8_english_ci;\n", "len": 60, "last": 60, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`d`", "value": "d", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 16 }, @@ -76,7 +100,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 31 }, @@ -85,7 +113,11 @@ "token": "hp8", "value": "hp8", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 32 }, @@ -94,7 +126,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +137,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 36 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -121,7 +159,9 @@ "token": "hp8_english_ci", "value": "hp8_english_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 44 }, @@ -130,7 +170,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 58 }, @@ -139,30 +183,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@21" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +228,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -206,22 +238,22 @@ "partitions": null, "unknown": [ { - "@type": "@9" + "@type": "@12" }, { - "@type": "@10" + "@type": "@14" }, { - "@type": "@11" + "@type": "@16" }, { - "@type": "@12" + "@type": "@17" }, { - "@type": "@13" + "@type": "@18" }, { - "@type": "@14" + "@type": "@19" } ] } @@ -236,9 +268,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableCharacterSet2.out b/tests/data/parser/parseAlterTableCharacterSet2.out index 72202685a..6ea8072ab 100644 --- a/tests/data/parser/parseAlterTableCharacterSet2.out +++ b/tests/data/parser/parseAlterTableCharacterSet2.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `d` CHARSET=hp8\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `d` CHARSET=hp8\n\n", "len": 29, "last": 29, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`d`", "value": "d", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "CHARSET", "value": "CHARSET", "keyword": "CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 16 }, @@ -76,7 +100,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 23 }, @@ -85,7 +113,11 @@ "token": "hp8", "value": "hp8", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 24 }, @@ -94,30 +126,34 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -137,20 +173,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -161,13 +183,13 @@ "partitions": null, "unknown": [ { - "@type": "@9" + "@type": "@12" }, { - "@type": "@10" + "@type": "@14" }, { - "@type": "@11" + "@type": "@16" } ] } @@ -182,9 +204,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableCharacterSet3.out b/tests/data/parser/parseAlterTableCharacterSet3.out index ee4f6fe92..17847fa0b 100644 --- a/tests/data/parser/parseAlterTableCharacterSet3.out +++ b/tests/data/parser/parseAlterTableCharacterSet3.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `d` CHARSET=hp8;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `d` CHARSET=hp8;\n", "len": 29, "last": 29, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`d`", "value": "d", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "CHARSET", "value": "CHARSET", "keyword": "CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 16 }, @@ -76,7 +100,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 23 }, @@ -85,7 +113,11 @@ "token": "hp8", "value": "hp8", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 24 }, @@ -94,7 +126,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 27 }, @@ -103,30 +139,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@17" + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -146,20 +184,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -170,10 +194,10 @@ "partitions": null, "unknown": [ { - "@type": "@9" + "@type": "@12" }, { - "@type": "@10" + "@type": "@14" } ] } @@ -188,9 +212,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableCharacterSet4.out b/tests/data/parser/parseAlterTableCharacterSet4.out index d3f21c890..f4c101e8d 100644 --- a/tests/data/parser/parseAlterTableCharacterSet4.out +++ b/tests/data/parser/parseAlterTableCharacterSet4.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;\n\n", "len": 61, "last": 61, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "tbl_name", "value": "tbl_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "CONVERT", "value": "CONVERT", "keyword": "CONVERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +111,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +133,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 32 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -121,7 +155,9 @@ "token": "charset_name", "value": "charset_name", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 46 }, @@ -130,7 +166,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 58 }, @@ -139,30 +179,32 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@19" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +224,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -232,9 +260,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableCharacterSet5.out b/tests/data/parser/parseAlterTableCharacterSet5.out index 782264919..3e23c9901 100644 --- a/tests/data/parser/parseAlterTableCharacterSet5.out +++ b/tests/data/parser/parseAlterTableCharacterSet5.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `d` CHARACTER SET utf8;\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `d` CHARACTER SET utf8;\n\n", "len": 37, "last": 37, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`d`", "value": "d", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +111,11 @@ "token": "utf8", "value": "utf8", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 30 }, @@ -94,7 +124,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 34 }, @@ -103,30 +137,32 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -146,20 +182,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -190,9 +212,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableCharacterSet6.out b/tests/data/parser/parseAlterTableCharacterSet6.out index 701b70a79..a54c112a0 100644 --- a/tests/data/parser/parseAlterTableCharacterSet6.out +++ b/tests/data/parser/parseAlterTableCharacterSet6.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `d` CHARACTER SET utf8 COLLATE utf8_general_ci;\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `d` CHARACTER SET utf8 COLLATE utf8_general_ci;\n\n", "len": 61, "last": 61, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`d`", "value": "d", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +111,11 @@ "token": "utf8", "value": "utf8", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 30 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +135,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 35 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "utf8_general_ci", "value": "utf8_general_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 43 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 58 }, @@ -139,30 +181,32 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -215,13 +245,13 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@16" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" } ] } @@ -236,9 +266,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableCharacterSet7.out b/tests/data/parser/parseAlterTableCharacterSet7.out index 5cf321f61..27f791c84 100644 --- a/tests/data/parser/parseAlterTableCharacterSet7.out +++ b/tests/data/parser/parseAlterTableCharacterSet7.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `d` CHARACTER SET utf8 COLLATE utf8_general_ci;\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `d` CHARACTER SET utf8 COLLATE utf8_general_ci;\n\n", "len": 75, "last": 75, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`d`", "value": "d", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -85,7 +111,11 @@ "token": "utf8", "value": "utf8", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 44 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -103,7 +135,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 49 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -121,7 +157,9 @@ "token": "utf8_general_ci", "value": "utf8_general_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 57 }, @@ -130,7 +168,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 72 }, @@ -139,30 +181,32 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +226,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -215,13 +245,13 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@16" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" } ] } @@ -236,9 +266,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableCoalescePartition.out b/tests/data/parser/parseAlterTableCoalescePartition.out index 711f5627c..bec3281e3 100644 --- a/tests/data/parser/parseAlterTableCoalescePartition.out +++ b/tests/data/parser/parseAlterTableCoalescePartition.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `MY_TABLE` COALESCE PARTITION 2;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `MY_TABLE` COALESCE PARTITION 2;", "len": 44, "last": 44, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`MY_TABLE`", "value": "MY_TABLE", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,9 @@ "token": "COALESCE PARTITION", "value": "COALESCE PARTITION", "keyword": "COALESCE PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -85,7 +111,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 42 }, @@ -94,30 +124,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 43 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -137,20 +171,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -177,9 +197,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableDropAddIndex1.out b/tests/data/parser/parseAlterTableDropAddIndex1.out index 7d20103b9..cc73372c1 100644 --- a/tests/data/parser/parseAlterTableDropAddIndex1.out +++ b/tests/data/parser/parseAlterTableDropAddIndex1.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE testtable DROP INDEX my_index2, ADD INDEX my_index3(id, id3) USING BTREE, ALGORITHM=COPY;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE testtable DROP INDEX my_index2, ADD INDEX my_index3(id, id3) USING BTREE, ALGORITHM=COPY;\n", "len": 102, "last": 102, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 36, + "idx": 36, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "testtable", "value": "testtable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "DROP", "value": "DROP", "keyword": "DROP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 27 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,9 @@ "token": "my_index2", "value": "my_index2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 33 }, @@ -112,7 +144,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 42 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -130,7 +168,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -148,7 +190,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 48 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -166,7 +212,9 @@ "token": "my_index3", "value": "my_index3", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 54 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 63 }, @@ -184,7 +234,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 64 }, @@ -193,7 +245,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 66 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -211,7 +267,9 @@ "token": "id3", "value": "id3", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 68 }, @@ -220,7 +278,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 71 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -238,7 +300,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -256,7 +322,9 @@ "token": "BTREE", "value": "BTREE", "keyword": "BTREE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 79 }, @@ -265,7 +333,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 84 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -283,7 +355,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 86 }, @@ -292,7 +366,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 95 }, @@ -301,7 +377,9 @@ "token": "COPY", "value": "COPY", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 96 }, @@ -310,7 +388,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 100 }, @@ -319,30 +401,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@40" + }, "flags": 0, "position": null } - ], - "count": 36, - "idx": 36 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -362,20 +446,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -394,20 +464,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -424,53 +480,39 @@ "partitions": null, "unknown": [ { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@27" }, { - "@type": "@24" + "@type": "@28" }, { - "@type": "@25" + "@type": "@29" }, { - "@type": "@26" + "@type": "@30" }, { - "@type": "@27" + "@type": "@31" }, { - "@type": "@28" + "@type": "@32" }, { - "@type": "@29" + "@type": "@33" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -497,9 +539,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableDropColumn1.out b/tests/data/parser/parseAlterTableDropColumn1.out index 42905c9fd..0b847b140 100644 --- a/tests/data/parser/parseAlterTableDropColumn1.out +++ b/tests/data/parser/parseAlterTableDropColumn1.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `testtable` DROP COLUMN `id2`, ALGORITHM=INPLACE, LOCK=NONE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `testtable` DROP COLUMN `id2`, ALGORITHM=INPLACE, LOCK=NONE;", "len": 72, "last": 72, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`testtable`", "value": "testtable", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +89,9 @@ "token": "DROP", "value": "DROP", "keyword": "DROP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +111,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +133,9 @@ "token": "`id2`", "value": "id2", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 36 }, @@ -112,7 +144,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 41 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -130,7 +168,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 43 }, @@ -139,7 +179,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 52 }, @@ -148,7 +190,11 @@ "token": "INPLACE", "value": "INPLACE", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 53 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 60 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -175,7 +225,9 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 62 }, @@ -184,7 +236,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 66 }, @@ -193,7 +247,9 @@ "token": "NONE", "value": "NONE", "keyword": "NONE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 67 }, @@ -202,30 +258,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 71 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@29" + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -245,20 +305,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -281,20 +327,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -312,20 +344,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -352,9 +370,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableModifyColumn.out b/tests/data/parser/parseAlterTableModifyColumn.out index 6e60c20a2..9ceeca2a4 100644 --- a/tests/data/parser/parseAlterTableModifyColumn.out +++ b/tests/data/parser/parseAlterTableModifyColumn.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE testtable MODIFY COLUMN id INT(11) FIRST, ALGORITHM=INPLACE, LOCK=SHARED;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE testtable MODIFY COLUMN id INT(11) FIRST, ALGORITHM=INPLACE, LOCK=SHARED;", "len": 85, "last": 85, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 30, + "idx": 30, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "testtable", "value": "testtable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +111,9 @@ "token": "COLUMN", "value": "COLUMN", "keyword": "COLUMN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +133,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 36 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -121,7 +155,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 39 }, @@ -130,7 +166,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 42 }, @@ -139,7 +179,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 43 }, @@ -148,7 +192,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 45 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -166,7 +214,9 @@ "token": "FIRST", "value": "FIRST", "keyword": "FIRST", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 47 }, @@ -175,7 +225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 52 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -193,7 +247,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 54 }, @@ -202,7 +258,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 2, "position": 63 }, @@ -211,7 +269,9 @@ "token": "INPLACE", "value": "INPLACE", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 64 }, @@ -220,7 +280,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 71 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -238,7 +302,9 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -247,7 +313,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 2, "position": 77 }, @@ -256,7 +324,9 @@ "token": "SHARED", "value": "SHARED", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 78 }, @@ -265,30 +335,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 84 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@36" + }, "flags": 0, "position": null } - ], - "count": 30, - "idx": 30 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -308,20 +382,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -342,41 +402,27 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@17" }, { - "@type": "@15" + "@type": "@18" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -394,20 +440,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -434,9 +466,7 @@ "last": 28 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableModifyColumnEnum1.out b/tests/data/parser/parseAlterTableModifyColumnEnum1.out index c8063d327..0b308f888 100644 --- a/tests/data/parser/parseAlterTableModifyColumnEnum1.out +++ b/tests/data/parser/parseAlterTableModifyColumnEnum1.out @@ -2,18 +2,26 @@ "query": "-- ENUM with a string that is a database option.\nALTER TABLE `test_table` MODIFY `COL` ENUM(\"COLLATE\") NULL;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- ENUM with a string that is a database option.\nALTER TABLE `test_table` MODIFY `COL` ENUM(\"COLLATE\") NULL;\n", "len": 109, "last": 109, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- ENUM with a string that is a database option.", "value": "-- ENUM with a string that is a database option.", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 48 }, @@ -31,7 +43,11 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 49 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 55 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -67,7 +89,11 @@ "token": "`test_table`", "value": "test_table", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 61 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -85,7 +113,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 74 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -103,7 +135,9 @@ "token": "`COL`", "value": "COL", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 81 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -121,7 +157,9 @@ "token": "ENUM", "value": "ENUM", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 9, "position": 87 }, @@ -130,7 +168,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 91 }, @@ -139,7 +181,11 @@ "token": "\"COLLATE\"", "value": "COLLATE", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 92 }, @@ -148,7 +194,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@20" + }, "flags": 16, "position": 101 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -166,7 +216,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 103 }, @@ -175,7 +227,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 107 }, @@ -184,30 +240,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@27" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -227,20 +285,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -260,22 +304,22 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@21" }, { - "@type": "@17" + "@type": "@23" }, { - "@type": "@18" + "@type": "@24" }, { - "@type": "@19" + "@type": "@25" } ] } @@ -290,9 +334,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableModifyColumnEnum2.out b/tests/data/parser/parseAlterTableModifyColumnEnum2.out index df8fe096c..47dbfeebf 100644 --- a/tests/data/parser/parseAlterTableModifyColumnEnum2.out +++ b/tests/data/parser/parseAlterTableModifyColumnEnum2.out @@ -2,18 +2,26 @@ "query": "-- ENUM with a string that is a table option.\nALTER TABLE `test_table` MODIFY `COL` ENUM(\"LOCK\") NULL;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- ENUM with a string that is a table option.\nALTER TABLE `test_table` MODIFY `COL` ENUM(\"LOCK\") NULL;\n", "len": 103, "last": 103, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- ENUM with a string that is a table option.", "value": "-- ENUM with a string that is a table option.", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 45 }, @@ -31,7 +43,11 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 46 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 52 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -67,7 +89,11 @@ "token": "`test_table`", "value": "test_table", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 58 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -85,7 +113,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 71 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -103,7 +135,9 @@ "token": "`COL`", "value": "COL", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 78 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -121,7 +157,9 @@ "token": "ENUM", "value": "ENUM", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 9, "position": 84 }, @@ -130,7 +168,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 88 }, @@ -139,7 +181,11 @@ "token": "\"LOCK\"", "value": "LOCK", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 89 }, @@ -148,7 +194,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@20" + }, "flags": 16, "position": 95 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -166,7 +216,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 97 }, @@ -175,7 +227,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 101 }, @@ -184,30 +240,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@27" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -227,20 +285,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -260,22 +304,22 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@21" }, { - "@type": "@17" + "@type": "@23" }, { - "@type": "@18" + "@type": "@24" }, { - "@type": "@19" + "@type": "@25" } ] } @@ -290,9 +334,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableModifyColumnEnum3.out b/tests/data/parser/parseAlterTableModifyColumnEnum3.out index bfc42e1e5..02c9ae3f1 100644 --- a/tests/data/parser/parseAlterTableModifyColumnEnum3.out +++ b/tests/data/parser/parseAlterTableModifyColumnEnum3.out @@ -2,18 +2,26 @@ "query": "-- ENUM with a string that is a statement.\nALTER TABLE `test_table` MODIFY `COL` ENUM(\"INSERT\") NULL;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- ENUM with a string that is a statement.\nALTER TABLE `test_table` MODIFY `COL` ENUM(\"INSERT\") NULL;\n", "len": 102, "last": 102, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- ENUM with a string that is a statement.", "value": "-- ENUM with a string that is a statement.", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 42 }, @@ -31,7 +43,11 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 43 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 49 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -67,7 +89,11 @@ "token": "`test_table`", "value": "test_table", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 55 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -85,7 +113,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 68 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -103,7 +135,9 @@ "token": "`COL`", "value": "COL", "keyword": null, - "type": 8, + "type": { + "@type": "@12" + }, "flags": 2, "position": 75 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -121,7 +157,9 @@ "token": "ENUM", "value": "ENUM", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 9, "position": 81 }, @@ -130,7 +168,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 85 }, @@ -139,7 +181,11 @@ "token": "\"INSERT\"", "value": "INSERT", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 86 }, @@ -148,7 +194,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@20" + }, "flags": 16, "position": 94 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -166,7 +216,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 96 }, @@ -175,7 +227,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 100 }, @@ -184,30 +240,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@27" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -227,20 +285,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -260,22 +304,22 @@ "partitions": null, "unknown": [ { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@21" }, { - "@type": "@17" + "@type": "@23" }, { - "@type": "@18" + "@type": "@24" }, { - "@type": "@19" + "@type": "@25" } ] } @@ -290,9 +334,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTablePartitionByRange1.out b/tests/data/parser/parseAlterTablePartitionByRange1.out index 25d676b16..5f134877d 100644 --- a/tests/data/parser/parseAlterTablePartitionByRange1.out +++ b/tests/data/parser/parseAlterTablePartitionByRange1.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE trips PARTITION BY RANGE (MONTH(trip_date))\n(\n PARTITION p01 VALUES LESS THAN (02),\n PARTITION p02 VALUES LESS THAN (03),\n PARTITION p03 VALUES LESS THAN (04),\n PARTITION p04 VALUES LESS THAN (05),\n PARTITION p05 VALUES LESS THAN (06),\n PARTITION p06 VALUES LESS THAN (07),\n PARTITION p07 VALUES LESS THAN (08),\n PARTITION p08 VALUES LESS THAN (09),\n PARTITION p09 VALUES LESS THAN (10),\n PARTITION p10 VALUES LESS THAN (11),\n PARTITION p11 VALUES LESS THAN (12),\n PARTITION p12 VALUES LESS THAN (13),\n PARTITION pmaxval VALUES LESS THAN MAXVALUE\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE trips PARTITION BY RANGE (MONTH(trip_date))\n(\n PARTITION p01 VALUES LESS THAN (02),\n PARTITION p02 VALUES LESS THAN (03),\n PARTITION p03 VALUES LESS THAN (04),\n PARTITION p04 VALUES LESS THAN (05),\n PARTITION p05 VALUES LESS THAN (06),\n PARTITION p06 VALUES LESS THAN (07),\n PARTITION p07 VALUES LESS THAN (08),\n PARTITION p08 VALUES LESS THAN (09),\n PARTITION p09 VALUES LESS THAN (10),\n PARTITION p10 VALUES LESS THAN (11),\n PARTITION p11 VALUES LESS THAN (12),\n PARTITION p12 VALUES LESS THAN (13),\n PARTITION pmaxval VALUES LESS THAN MAXVALUE\n);", "len": 600, "last": 600, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 188, + "idx": 188, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "trips", "value": "trips", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,7 +111,9 @@ "token": "RANGE", "value": "RANGE", "keyword": "RANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 31 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 37 }, @@ -112,7 +146,9 @@ "token": "MONTH", "value": "MONTH", "keyword": "MONTH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 38 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 43 }, @@ -130,7 +168,9 @@ "token": "trip_date", "value": "trip_date", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 44 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 53 }, @@ -148,7 +190,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 54 }, @@ -157,7 +201,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -166,7 +212,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 56 }, @@ -175,7 +223,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -184,7 +234,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 62 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -202,7 +256,9 @@ "token": "p01", "value": "p01", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 72 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -220,7 +278,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 76 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -238,7 +300,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 83 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -256,7 +322,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 93 }, @@ -265,7 +333,11 @@ "token": "02", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 94 }, @@ -274,7 +346,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 96 }, @@ -283,7 +357,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 97 }, @@ -292,7 +368,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -301,7 +379,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 103 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -319,7 +401,9 @@ "token": "p02", "value": "p02", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 113 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -337,7 +423,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 117 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -355,7 +445,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 124 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -373,7 +467,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 134 }, @@ -382,7 +478,9 @@ "token": "03", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 135 }, @@ -391,7 +489,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 137 }, @@ -400,7 +500,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 138 }, @@ -409,7 +511,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -418,7 +522,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 144 }, @@ -427,7 +533,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 153 }, @@ -436,7 +544,9 @@ "token": "p03", "value": "p03", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 154 }, @@ -445,7 +555,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -454,7 +566,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 158 }, @@ -463,7 +577,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 164 }, @@ -472,7 +588,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 165 }, @@ -481,7 +599,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -490,7 +610,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 175 }, @@ -499,7 +621,9 @@ "token": "04", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 176 }, @@ -508,7 +632,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 178 }, @@ -517,7 +643,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 179 }, @@ -526,7 +654,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 180 }, @@ -535,7 +665,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 185 }, @@ -544,7 +676,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 194 }, @@ -553,7 +687,9 @@ "token": "p04", "value": "p04", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 195 }, @@ -562,7 +698,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 198 }, @@ -571,7 +709,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 199 }, @@ -580,7 +720,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 205 }, @@ -589,7 +731,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 206 }, @@ -598,7 +742,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 215 }, @@ -607,7 +753,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 216 }, @@ -616,7 +764,9 @@ "token": "05", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 217 }, @@ -625,7 +775,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 219 }, @@ -634,7 +786,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 220 }, @@ -643,7 +797,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 221 }, @@ -652,7 +808,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 226 }, @@ -661,7 +819,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 235 }, @@ -670,7 +830,9 @@ "token": "p05", "value": "p05", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 236 }, @@ -679,7 +841,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 239 }, @@ -688,7 +852,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 240 }, @@ -697,7 +863,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 246 }, @@ -706,7 +874,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 247 }, @@ -715,7 +885,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 256 }, @@ -724,7 +896,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 257 }, @@ -733,7 +907,9 @@ "token": "06", "value": 6, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 258 }, @@ -742,7 +918,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 260 }, @@ -751,7 +929,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 261 }, @@ -760,7 +940,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 262 }, @@ -769,7 +951,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 267 }, @@ -778,7 +962,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 276 }, @@ -787,7 +973,9 @@ "token": "p06", "value": "p06", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 277 }, @@ -796,7 +984,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 280 }, @@ -805,7 +995,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 281 }, @@ -814,7 +1006,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 287 }, @@ -823,7 +1017,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 288 }, @@ -832,7 +1028,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 297 }, @@ -841,7 +1039,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 298 }, @@ -850,7 +1050,9 @@ "token": "07", "value": 7, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 299 }, @@ -859,7 +1061,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 301 }, @@ -868,7 +1072,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 302 }, @@ -877,7 +1083,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 303 }, @@ -886,7 +1094,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 308 }, @@ -895,7 +1105,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 317 }, @@ -904,7 +1116,9 @@ "token": "p07", "value": "p07", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 318 }, @@ -913,7 +1127,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 321 }, @@ -922,7 +1138,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 322 }, @@ -931,7 +1149,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 328 }, @@ -940,7 +1160,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 329 }, @@ -949,7 +1171,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 338 }, @@ -958,7 +1182,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 339 }, @@ -967,7 +1193,9 @@ "token": "08", "value": 8, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 340 }, @@ -976,7 +1204,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 342 }, @@ -985,7 +1215,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 343 }, @@ -994,7 +1226,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 344 }, @@ -1003,7 +1237,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 349 }, @@ -1012,7 +1248,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 358 }, @@ -1021,7 +1259,9 @@ "token": "p08", "value": "p08", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 359 }, @@ -1030,7 +1270,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 362 }, @@ -1039,7 +1281,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 363 }, @@ -1048,7 +1292,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 369 }, @@ -1057,7 +1303,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 370 }, @@ -1066,7 +1314,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 379 }, @@ -1075,7 +1325,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 380 }, @@ -1084,7 +1336,9 @@ "token": "09", "value": 9, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 381 }, @@ -1093,7 +1347,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 383 }, @@ -1102,7 +1358,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 384 }, @@ -1111,7 +1369,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 385 }, @@ -1120,7 +1380,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 390 }, @@ -1129,7 +1391,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 399 }, @@ -1138,7 +1402,9 @@ "token": "p09", "value": "p09", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 400 }, @@ -1147,7 +1413,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 403 }, @@ -1156,7 +1424,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 404 }, @@ -1165,7 +1435,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 410 }, @@ -1174,7 +1446,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 411 }, @@ -1183,7 +1457,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 420 }, @@ -1192,7 +1468,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 421 }, @@ -1201,7 +1479,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 422 }, @@ -1210,7 +1490,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 424 }, @@ -1219,7 +1501,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 425 }, @@ -1228,7 +1512,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 426 }, @@ -1237,7 +1523,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 431 }, @@ -1246,7 +1534,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 440 }, @@ -1255,7 +1545,9 @@ "token": "p10", "value": "p10", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 441 }, @@ -1264,7 +1556,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 444 }, @@ -1273,7 +1567,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 445 }, @@ -1282,7 +1578,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 451 }, @@ -1291,7 +1589,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 452 }, @@ -1300,7 +1600,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 461 }, @@ -1309,7 +1611,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 462 }, @@ -1318,7 +1622,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 463 }, @@ -1327,7 +1633,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 465 }, @@ -1336,7 +1644,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 466 }, @@ -1345,7 +1655,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 467 }, @@ -1354,7 +1666,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 472 }, @@ -1363,7 +1677,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 481 }, @@ -1372,7 +1688,9 @@ "token": "p11", "value": "p11", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 482 }, @@ -1381,7 +1699,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 485 }, @@ -1390,7 +1710,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 486 }, @@ -1399,7 +1721,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 492 }, @@ -1408,7 +1732,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 493 }, @@ -1417,7 +1743,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 502 }, @@ -1426,7 +1754,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 503 }, @@ -1435,7 +1765,9 @@ "token": "12", "value": 12, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 504 }, @@ -1444,7 +1776,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 506 }, @@ -1453,7 +1787,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 507 }, @@ -1462,7 +1798,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 508 }, @@ -1471,7 +1809,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 513 }, @@ -1480,7 +1820,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 522 }, @@ -1489,7 +1831,9 @@ "token": "p12", "value": "p12", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 523 }, @@ -1498,7 +1842,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 526 }, @@ -1507,7 +1853,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 527 }, @@ -1516,7 +1864,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 533 }, @@ -1525,7 +1875,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 534 }, @@ -1534,7 +1886,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 543 }, @@ -1543,7 +1897,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 544 }, @@ -1552,7 +1908,9 @@ "token": "13", "value": 13, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 545 }, @@ -1561,7 +1919,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 547 }, @@ -1570,7 +1930,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 548 }, @@ -1579,7 +1941,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 549 }, @@ -1588,7 +1952,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 554 }, @@ -1597,7 +1963,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 563 }, @@ -1606,7 +1974,9 @@ "token": "pmaxval", "value": "pmaxval", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 564 }, @@ -1615,7 +1985,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 571 }, @@ -1624,7 +1996,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 572 }, @@ -1633,7 +2007,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 578 }, @@ -1642,7 +2018,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 579 }, @@ -1651,7 +2029,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 588 }, @@ -1660,7 +2040,9 @@ "token": "MAXVALUE", "value": "MAXVALUE", "keyword": "MAXVALUE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 589 }, @@ -1669,7 +2051,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 597 }, @@ -1678,7 +2062,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 598 }, @@ -1687,30 +2073,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 599 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@194" + }, "flags": 0, "position": null } - ], - "count": 188, - "idx": 188 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1730,20 +2120,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -1754,6 +2130,44 @@ "partitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p01", "type": "LESS THAN", @@ -1775,6 +2189,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p02", "type": "LESS THAN", @@ -1796,6 +2248,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p03", "type": "LESS THAN", @@ -1817,6 +2307,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p04", "type": "LESS THAN", @@ -1838,6 +2366,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p05", "type": "LESS THAN", @@ -1859,6 +2425,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p06", "type": "LESS THAN", @@ -1880,6 +2484,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p07", "type": "LESS THAN", @@ -1901,6 +2543,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p08", "type": "LESS THAN", @@ -1922,6 +2602,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p09", "type": "LESS THAN", @@ -1943,6 +2661,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p10", "type": "LESS THAN", @@ -1964,6 +2720,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p11", "type": "LESS THAN", @@ -1985,6 +2779,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p12", "type": "LESS THAN", @@ -2006,6 +2838,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "pmaxval", "type": "LESS THAN", @@ -2030,9 +2900,7 @@ "last": 186 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTablePartitionByRange2.out b/tests/data/parser/parseAlterTablePartitionByRange2.out index 858ecfd64..89f8dc27d 100644 --- a/tests/data/parser/parseAlterTablePartitionByRange2.out +++ b/tests/data/parser/parseAlterTablePartitionByRange2.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE d PARTITION BY RANGE (MONTH(departure_date))\n(\nPARTITION p01 VALUES LESS THAN (02) ,\nPARTITION pmaxval VALUES LESS THAN MAXVALUE\n);\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE d PARTITION BY RANGE (MONTH(departure_date))\n(\nPARTITION p01 VALUES LESS THAN (02) ,\nPARTITION pmaxval VALUES LESS THAN MAXVALUE\n);\n", "len": 144, "last": 144, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 47, + "idx": 47, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "d", "value": "d", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 14 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "RANGE", "value": "RANGE", "keyword": "RANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -112,7 +146,9 @@ "token": "MONTH", "value": "MONTH", "keyword": "MONTH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 34 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 39 }, @@ -130,7 +168,9 @@ "token": "departure_date", "value": "departure_date", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 40 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 54 }, @@ -148,7 +190,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 55 }, @@ -157,7 +201,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -166,7 +212,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 57 }, @@ -175,7 +223,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -184,7 +234,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 59 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -202,7 +256,9 @@ "token": "p01", "value": "p01", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 69 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -220,7 +278,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 73 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -238,7 +300,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 80 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -256,7 +322,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 90 }, @@ -265,7 +333,11 @@ "token": "02", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 91 }, @@ -274,7 +346,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 93 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -292,7 +368,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 95 }, @@ -301,7 +379,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -310,7 +390,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 97 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -328,7 +412,9 @@ "token": "pmaxval", "value": "pmaxval", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 107 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -346,7 +434,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 115 }, @@ -355,7 +445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -364,7 +456,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 122 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -382,7 +478,9 @@ "token": "MAXVALUE", "value": "MAXVALUE", "keyword": "MAXVALUE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 132 }, @@ -391,7 +489,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -400,7 +500,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 141 }, @@ -409,7 +511,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 142 }, @@ -418,30 +524,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@52" + }, "flags": 0, "position": null } - ], - "count": 47, - "idx": 47 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -461,20 +569,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -485,6 +579,44 @@ "partitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p01", "type": "LESS THAN", @@ -506,6 +638,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "pmaxval", "type": "LESS THAN", @@ -530,9 +700,7 @@ "last": 44 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableRenameIndex1.out b/tests/data/parser/parseAlterTableRenameIndex1.out index 5782ca894..f7165a142 100644 --- a/tests/data/parser/parseAlterTableRenameIndex1.out +++ b/tests/data/parser/parseAlterTableRenameIndex1.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `transactions` RENAME INDEX `fk_transactions_catalog_entries1_idx` TO `fk_transactions_catalog_entries2_idx`", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `transactions` RENAME INDEX `fk_transactions_catalog_entries1_idx` TO `fk_transactions_catalog_entries2_idx`", "len": 120, "last": 120, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`transactions`", "value": "transactions", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +89,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 34 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +133,9 @@ "token": "`fk_transactions_catalog_entries1_idx`", "value": "fk_transactions_catalog_entries1_idx", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 40 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -121,7 +155,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 79 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -139,30 +177,34 @@ "token": "`fk_transactions_catalog_entries2_idx`", "value": "fk_transactions_catalog_entries2_idx", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 82 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,20 +224,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -229,9 +257,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableRenameIndex2.out b/tests/data/parser/parseAlterTableRenameIndex2.out index ae2d9710b..207bac742 100644 --- a/tests/data/parser/parseAlterTableRenameIndex2.out +++ b/tests/data/parser/parseAlterTableRenameIndex2.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE testtable RENAME INDEX my_index TO my_index2, ALGORITHM=INPLACE, LOCK=NONE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE testtable RENAME INDEX my_index TO my_index2, ALGORITHM=INPLACE, LOCK=NONE;", "len": 87, "last": 87, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 27, + "idx": 27, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "testtable", "value": "testtable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +111,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +133,9 @@ "token": "my_index", "value": "my_index", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 35 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -121,7 +155,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -139,7 +177,9 @@ "token": "my_index2", "value": "my_index2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 47 }, @@ -148,7 +188,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 56 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -166,7 +212,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 58 }, @@ -175,7 +223,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 67 }, @@ -184,7 +234,9 @@ "token": "INPLACE", "value": "INPLACE", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 68 }, @@ -193,7 +245,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 75 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -211,7 +267,9 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -220,7 +278,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 81 }, @@ -229,7 +289,9 @@ "token": "NONE", "value": "NONE", "keyword": "NONE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 82 }, @@ -238,30 +300,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 86 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@32" + }, "flags": 0, "position": null } - ], - "count": 27, - "idx": 27 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -281,20 +347,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -319,20 +371,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -350,20 +388,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -390,9 +414,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableRenameKey1.out b/tests/data/parser/parseAlterTableRenameKey1.out index c178bfcf1..7aeb88d20 100644 --- a/tests/data/parser/parseAlterTableRenameKey1.out +++ b/tests/data/parser/parseAlterTableRenameKey1.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE `transactions` RENAME KEY `fk_transactions_catalog_entries1_idx` TO `fk_transactions_catalog_entries2_idx`\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE `transactions` RENAME KEY `fk_transactions_catalog_entries1_idx` TO `fk_transactions_catalog_entries2_idx`\n", "len": 119, "last": 119, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`transactions`", "value": "transactions", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +89,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 34 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +133,9 @@ "token": "`fk_transactions_catalog_entries1_idx`", "value": "fk_transactions_catalog_entries1_idx", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 38 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -121,7 +155,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -139,7 +177,9 @@ "token": "`fk_transactions_catalog_entries2_idx`", "value": "fk_transactions_catalog_entries2_idx", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 80 }, @@ -148,30 +188,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +235,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -238,9 +268,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableRenameKey2.out b/tests/data/parser/parseAlterTableRenameKey2.out index 934d39135..80acc0927 100644 --- a/tests/data/parser/parseAlterTableRenameKey2.out +++ b/tests/data/parser/parseAlterTableRenameKey2.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE testtable RENAME KEY my_index TO my_index2, ALGORITHM=INPLACE, LOCK=NONE;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE testtable RENAME KEY my_index TO my_index2, ALGORITHM=INPLACE, LOCK=NONE;\n", "len": 86, "last": 86, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 28, + "idx": 28, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "testtable", "value": "testtable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +111,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,9 @@ "token": "my_index", "value": "my_index", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 33 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -121,7 +155,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -139,7 +177,9 @@ "token": "my_index2", "value": "my_index2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 45 }, @@ -148,7 +188,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 54 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -166,7 +212,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 56 }, @@ -175,7 +223,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 65 }, @@ -184,7 +234,9 @@ "token": "INPLACE", "value": "INPLACE", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 66 }, @@ -193,7 +245,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 73 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -211,7 +267,9 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 75 }, @@ -220,7 +278,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 79 }, @@ -229,7 +289,9 @@ "token": "NONE", "value": "NONE", "keyword": "NONE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 80 }, @@ -238,7 +300,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 84 }, @@ -247,30 +313,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@32" + }, "flags": 0, "position": null } - ], - "count": 28, - "idx": 28 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -290,20 +358,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -328,20 +382,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -359,20 +399,6 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -399,9 +425,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterTableSetAutoIncrementError.out b/tests/data/parser/parseAlterTableSetAutoIncrementError.out index b68ed3d41..5925ed1ca 100644 --- a/tests/data/parser/parseAlterTableSetAutoIncrementError.out +++ b/tests/data/parser/parseAlterTableSetAutoIncrementError.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE t1 AUTO_INCREMENT\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE t1 AUTO_INCREMENT\n", "len": 30, "last": 30, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +89,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -76,30 +100,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -119,20 +147,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -159,9 +173,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -169,7 +181,7 @@ [ "Value/Expression for the option AUTO_INCREMENT was expected.", { - "@type": "@9" + "@type": "@12" }, 0 ] diff --git a/tests/data/parser/parseAlterUser.out b/tests/data/parser/parseAlterUser.out index 8215f41bd..9debb34c5 100644 --- a/tests/data/parser/parseAlterUser.out +++ b/tests/data/parser/parseAlterUser.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'jeffrey'@'localhost'\n IDENTIFIED BY 'new_password' PASSWORD EXPIRE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'jeffrey'@'localhost'\n IDENTIFIED BY 'new_password' PASSWORD EXPIRE;", "len": 80, "last": 80, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'jeffrey'@'localhost'", "value": "jeffrey@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 11 }, @@ -58,7 +78,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED", "value": "IDENTIFIED", "keyword": "IDENTIFIED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 35 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -85,7 +111,9 @@ "token": "BY", "value": "BY", "keyword": "BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -103,7 +133,11 @@ "token": "'new_password'", "value": "new_password", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 49 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -121,7 +157,9 @@ "token": "PASSWORD", "value": "PASSWORD", "keyword": "PASSWORD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 64 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -139,7 +179,9 @@ "token": "EXPIRE", "value": "EXPIRE", "keyword": "EXPIRE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 73 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 79 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +237,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -250,9 +282,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser1.out b/tests/data/parser/parseAlterUser1.out index d92613d0c..f27a1e735 100644 --- a/tests/data/parser/parseAlterUser1.out +++ b/tests/data/parser/parseAlterUser1.out @@ -2,18 +2,26 @@ "query": "ALTER USER trevor REQUIRE NONE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER trevor REQUIRE NONE;", "len": 31, "last": 31, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "trevor", "value": "trevor", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "REQUIRE", "value": "REQUIRE", "keyword": "REQUIRE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -85,7 +111,9 @@ "token": "NONE", "value": "NONE", "keyword": "NONE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 26 }, @@ -94,30 +122,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 30 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -137,20 +169,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -177,9 +195,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser10.out b/tests/data/parser/parseAlterUser10.out index 7f0d67912..29594d596 100644 --- a/tests/data/parser/parseAlterUser10.out +++ b/tests/data/parser/parseAlterUser10.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'bob'@'localhost' IDENTIFIED WITH mysql_native_password USING PASSWORD('vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u');\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'bob'@'localhost' IDENTIFIED WITH mysql_native_password USING PASSWORD('vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u');\n\n", "len": 120, "last": 120, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 19, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'bob'@'localhost'", "value": "bob@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED WITH", "value": "IDENTIFIED WITH", "keyword": "IDENTIFIED WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 29 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -85,7 +111,11 @@ "token": "mysql_native_password", "value": "mysql_native_password", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 45 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -103,7 +135,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -121,7 +157,9 @@ "token": "PASSWORD", "value": "PASSWORD", "keyword": "PASSWORD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 73 }, @@ -130,7 +168,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 81 }, @@ -139,7 +181,11 @@ "token": "'vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u'", "value": "vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 82 }, @@ -148,7 +194,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@20" + }, "flags": 16, "position": 116 }, @@ -157,7 +205,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 117 }, @@ -166,30 +218,32 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@25" + }, "flags": 0, "position": null } - ], - "count": 19, - "idx": 19 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -209,20 +263,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -238,22 +278,22 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@16" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@21" }, { - "@type": "@17" + "@type": "@23" } ] } @@ -268,9 +308,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser2.out b/tests/data/parser/parseAlterUser2.out index 60ffc29f8..051342a54 100644 --- a/tests/data/parser/parseAlterUser2.out +++ b/tests/data/parser/parseAlterUser2.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user'@'localhost' ACCOUNT LOCK;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user'@'localhost' ACCOUNT LOCK;", "len": 43, "last": 43, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'@'localhost'", "value": "user@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +89,9 @@ "token": "ACCOUNT", "value": "ACCOUNT", "keyword": "ACCOUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 30 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -85,7 +111,9 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -94,30 +122,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 42 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -137,20 +169,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -173,9 +191,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser3.out b/tests/data/parser/parseAlterUser3.out index a11488a8d..a5140a788 100644 --- a/tests/data/parser/parseAlterUser3.out +++ b/tests/data/parser/parseAlterUser3.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'testosama' REQUIRE SSL WITH MAX_CONNECTIONS_PER_HOUR 20;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'testosama' REQUIRE SSL WITH MAX_CONNECTIONS_PER_HOUR 20;", "len": 68, "last": 68, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'testosama'", "value": "testosama", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,9 @@ "token": "REQUIRE", "value": "REQUIRE", "keyword": "REQUIRE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,7 +111,9 @@ "token": "SSL", "value": "SSL", "keyword": "SSL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 31 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +133,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 35 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -121,7 +155,9 @@ "token": "MAX_CONNECTIONS_PER_HOUR", "value": "MAX_CONNECTIONS_PER_HOUR", "keyword": "MAX_CONNECTIONS_PER_HOUR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 40 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -139,7 +177,11 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 65 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 67 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +237,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -226,7 +258,7 @@ "partitions": null, "unknown": [ { - "@type": "@16" + "@type": "@19" } ] } @@ -241,9 +273,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser4.out b/tests/data/parser/parseAlterUser4.out index 724f57785..0f75011d6 100644 --- a/tests/data/parser/parseAlterUser4.out +++ b/tests/data/parser/parseAlterUser4.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user'\n WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user'\n WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;", "len": 75, "last": 75, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'", "value": "user", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 11 }, @@ -58,7 +78,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "MAX_QUERIES_PER_HOUR", "value": "MAX_QUERIES_PER_HOUR", "keyword": "MAX_QUERIES_PER_HOUR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -103,7 +133,11 @@ "token": "500", "value": 500, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 46 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -121,7 +157,9 @@ "token": "MAX_UPDATES_PER_HOUR", "value": "MAX_UPDATES_PER_HOUR", "keyword": "MAX_UPDATES_PER_HOUR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -139,7 +179,9 @@ "token": "100", "value": 100, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 71 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 74 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +237,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -220,19 +252,19 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" } ] } @@ -247,9 +279,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser5.out b/tests/data/parser/parseAlterUser5.out index d107d0612..cfc6e9523 100644 --- a/tests/data/parser/parseAlterUser5.out +++ b/tests/data/parser/parseAlterUser5.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user' PASSWORD EXPIRE NEVER", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user' PASSWORD EXPIRE NEVER", "len": 39, "last": 39, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'", "value": "user", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "PASSWORD", "value": "PASSWORD", "keyword": "PASSWORD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "EXPIRE", "value": "EXPIRE", "keyword": "EXPIRE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,30 +133,34 @@ "token": "NEVER", "value": "NEVER", "keyword": "NEVER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 34 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -146,20 +180,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -195,9 +215,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser6.out b/tests/data/parser/parseAlterUser6.out index 8cb639706..3d2914d3c 100644 --- a/tests/data/parser/parseAlterUser6.out +++ b/tests/data/parser/parseAlterUser6.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user' ATTRIBUTE '{\"baz\": \"faz\", \"foo\": \"moo\"}';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user' ATTRIBUTE '{\"baz\": \"faz\", \"foo\": \"moo\"}';", "len": 59, "last": 59, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'", "value": "user", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,11 @@ "token": "ATTRIBUTE", "value": "ATTRIBUTE", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +113,9 @@ "token": "'{\"baz\": \"faz\", \"foo\": \"moo\"}'", "value": "{\"baz\": \"faz\", \"foo\": \"moo\"}", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 28 }, @@ -94,30 +124,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 58 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -137,20 +171,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -177,9 +197,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser7.out b/tests/data/parser/parseAlterUser7.out index 7941a37da..649800085 100644 --- a/tests/data/parser/parseAlterUser7.out +++ b/tests/data/parser/parseAlterUser7.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user' PASSWORD EXPIRE INTERVAL 180 DAY;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user' PASSWORD EXPIRE INTERVAL 180 DAY;", "len": 51, "last": 51, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'", "value": "user", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "PASSWORD", "value": "PASSWORD", "keyword": "PASSWORD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "EXPIRE", "value": "EXPIRE", "keyword": "EXPIRE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +133,9 @@ "token": "INTERVAL", "value": "INTERVAL", "keyword": "INTERVAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 34 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +155,11 @@ "token": "180", "value": 180, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 43 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -139,7 +179,9 @@ "token": "DAY", "value": "DAY", "keyword": "DAY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 47 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,20 +237,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -220,19 +252,19 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@16" }, { - "@type": "@14" + "@type": "@17" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" } ] } @@ -247,9 +279,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser8.out b/tests/data/parser/parseAlterUser8.out index 5c4548e6f..ac71fee50 100644 --- a/tests/data/parser/parseAlterUser8.out +++ b/tests/data/parser/parseAlterUser8.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'user' COMMENT ''", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'user' COMMENT ''", "len": 28, "last": 28, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'user'", "value": "user", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -85,30 +111,34 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 26 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,20 +158,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -168,9 +184,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterUser9.out b/tests/data/parser/parseAlterUser9.out index beb8feaae..d07128cf2 100644 --- a/tests/data/parser/parseAlterUser9.out +++ b/tests/data/parser/parseAlterUser9.out @@ -2,18 +2,26 @@ "query": "ALTER USER 'bob'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u');\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER USER 'bob'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u');\n", "len": 118, "last": 118, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "'bob'@'localhost'", "value": "bob@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED", "value": "IDENTIFIED", "keyword": "IDENTIFIED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 29 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,11 @@ "token": "VIA", "value": "VIA", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 40 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +135,9 @@ "token": "mysql_native_password", "value": "mysql_native_password", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 44 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -121,7 +157,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 66 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -139,7 +179,9 @@ "token": "PASSWORD", "value": "PASSWORD", "keyword": "PASSWORD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 72 }, @@ -148,7 +190,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 80 }, @@ -157,7 +203,11 @@ "token": "'vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u'", "value": "vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 81 }, @@ -166,7 +216,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@22" + }, "flags": 16, "position": 115 }, @@ -175,7 +227,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 116 }, @@ -184,30 +240,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 117 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@27" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -227,20 +285,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -260,28 +304,28 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@16" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@21" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@25" } ] } @@ -296,9 +340,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAlterWithInvisible.out b/tests/data/parser/parseAlterWithInvisible.out index fe385a307..cf25cbf85 100644 --- a/tests/data/parser/parseAlterWithInvisible.out +++ b/tests/data/parser/parseAlterWithInvisible.out @@ -2,18 +2,26 @@ "query": "ALTER TABLE t MODIFY x INT INVISIBLE, MODIFY y INT, MODIFY z INT NOT NULL DEFAULT 4;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ALTER TABLE t MODIFY x INT INVISIBLE, MODIFY y INT, MODIFY z INT NOT NULL DEFAULT 4;\n", "len": 85, "last": 85, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 36, + "idx": 36, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +111,9 @@ "token": "x", "value": "x", "keyword": "X", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 21 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -103,7 +133,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 23 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -121,7 +155,9 @@ "token": "INVISIBLE", "value": "INVISIBLE", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 27 }, @@ -130,7 +166,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 36 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -148,7 +190,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 38 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": "y", "value": "y", "keyword": "Y", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 45 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -184,7 +234,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 47 }, @@ -193,7 +245,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 50 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -211,7 +267,9 @@ "token": "MODIFY", "value": "MODIFY", "keyword": "MODIFY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 52 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -229,7 +289,9 @@ "token": "z", "value": "z", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 59 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -247,7 +311,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 61 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -265,7 +333,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 65 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -283,7 +355,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 74 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -301,7 +377,11 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 82 }, @@ -310,7 +390,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 83 }, @@ -319,30 +403,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@41" + }, "flags": 0, "position": null } - ], - "count": 36, - "idx": 36 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -362,20 +448,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -395,32 +467,18 @@ "partitions": null, "unknown": [ { - "@type": "@12" + "@type": "@15" }, { - "@type": "@13" + "@type": "@16" }, { - "@type": "@14" + "@type": "@17" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -440,26 +498,12 @@ "partitions": null, "unknown": [ { - "@type": "@21" + "@type": "@25" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -479,25 +523,25 @@ "partitions": null, "unknown": [ { - "@type": "@28" + "@type": "@32" }, { - "@type": "@29" + "@type": "@33" }, { - "@type": "@30" + "@type": "@34" }, { - "@type": "@31" + "@type": "@35" }, { - "@type": "@32" + "@type": "@36" }, { - "@type": "@33" + "@type": "@37" }, { - "@type": "@34" + "@type": "@38" } ] } @@ -512,9 +556,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAnalyzeErr1.out b/tests/data/parser/parseAnalyzeErr1.out index e887467f2..e4ba350d0 100644 --- a/tests/data/parser/parseAnalyzeErr1.out +++ b/tests/data/parser/parseAnalyzeErr1.out @@ -2,18 +2,26 @@ "query": "ANALYZE NO_WRITE_TO_BINLOG", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ANALYZE NO_WRITE_TO_BINLOG", "len": 26, "last": 26, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,30 +43,34 @@ "token": "NO_WRITE_TO_BINLOG", "value": "NO_WRITE_TO_BINLOG", "keyword": "NO_WRITE_TO_BINLOG", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -75,9 +91,7 @@ "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -85,7 +99,7 @@ [ "Unexpected token.", { - "@type": "@4" + "@type": "@6" }, 0 ] diff --git a/tests/data/parser/parseAnalyzeErr2.out b/tests/data/parser/parseAnalyzeErr2.out index 2c56fd681..4de4984db 100644 --- a/tests/data/parser/parseAnalyzeErr2.out +++ b/tests/data/parser/parseAnalyzeErr2.out @@ -2,41 +2,51 @@ "query": "ANALYZE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ANALYZE", "len": 7, "last": 7, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 2, + "idx": 2, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 2, - "idx": 2 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -54,9 +64,7 @@ "last": 0 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAnalyzeTable.out b/tests/data/parser/parseAnalyzeTable.out index cc59e1aee..eaa0f723d 100644 --- a/tests/data/parser/parseAnalyzeTable.out +++ b/tests/data/parser/parseAnalyzeTable.out @@ -2,18 +2,26 @@ "query": "ANALYZE TABLE tbl", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ANALYZE TABLE tbl", "len": 17, "last": 17, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,30 +65,36 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -101,9 +123,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseAnalyzeTable1.out b/tests/data/parser/parseAnalyzeTable1.out index ad9b3d2fe..15324eedf 100644 --- a/tests/data/parser/parseAnalyzeTable1.out +++ b/tests/data/parser/parseAnalyzeTable1.out @@ -2,18 +2,26 @@ "query": "ANALYZE NO_WRITE_TO_BINLOG TABLE tbl", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ANALYZE NO_WRITE_TO_BINLOG TABLE tbl", "len": 36, "last": 36, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "NO_WRITE_TO_BINLOG", "value": "NO_WRITE_TO_BINLOG", "keyword": "NO_WRITE_TO_BINLOG", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -49,7 +65,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,30 +87,36 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 33 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -120,9 +146,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseArrayErr1.out b/tests/data/parser/parseArrayErr1.out index ca43c84db..6e36480db 100644 --- a/tests/data/parser/parseArrayErr1.out +++ b/tests/data/parser/parseArrayErr1.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM foo PARTITION bar, baz);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM foo PARTITION bar, baz);", "len": 38, "last": 38, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -85,7 +113,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 28 }, @@ -112,7 +146,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -130,7 +168,9 @@ "token": "baz", "value": "baz", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 33 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 36 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 37 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -202,7 +248,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", "raw": [], @@ -210,7 +256,7 @@ }, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -218,7 +264,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -227,9 +273,7 @@ "last": 14 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -237,28 +281,28 @@ [ "An opening bracket was expected.", { - "@type": "@12" + "@type": "@16" }, 0 ], [ "Unexpected token.", { - "@type": "@13" + "@type": "@17" }, 0 ], [ "Unexpected token.", { - "@type": "@15" + "@type": "@19" }, 0 ], [ "Unexpected token.", { - "@type": "@16" + "@type": "@20" }, 0 ] diff --git a/tests/data/parser/parseArrayErr3.out b/tests/data/parser/parseArrayErr3.out index 81a1c2928..cb91235ad 100644 --- a/tests/data/parser/parseArrayErr3.out +++ b/tests/data/parser/parseArrayErr3.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM foo PARTITION (bar, baz;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM foo PARTITION (bar, baz;", "len": 38, "last": 38, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -85,7 +113,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 28 }, @@ -112,7 +146,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 29 }, @@ -121,7 +157,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 32 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -139,7 +179,9 @@ "token": "baz", "value": "baz", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 34 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 37 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -202,7 +248,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", "raw": [ @@ -216,7 +262,7 @@ }, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -224,7 +270,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -233,9 +279,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -243,7 +287,7 @@ [ "A closing bracket was expected.", { - "@type": "@17" + "@type": "@21" }, 0 ] diff --git a/tests/data/parser/parseCall.out b/tests/data/parser/parseCall.out index f75526121..d2ac961e2 100644 --- a/tests/data/parser/parseCall.out +++ b/tests/data/parser/parseCall.out @@ -2,18 +2,26 @@ "query": "CALL foo();", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CALL foo();", "len": 11, "last": 11, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 7, + "idx": 7, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CALL", "value": "CALL", "keyword": "CALL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 9 }, @@ -58,30 +80,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": null } - ], - "count": 7, - "idx": 7 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -102,9 +128,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCall2.out b/tests/data/parser/parseCall2.out index 28bec4470..6a37b3af1 100644 --- a/tests/data/parser/parseCall2.out +++ b/tests/data/parser/parseCall2.out @@ -2,18 +2,26 @@ "query": "CALL foo(@bar, @baz);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CALL foo(@bar, @baz);", "len": 21, "last": 21, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CALL", "value": "CALL", "keyword": "CALL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,11 @@ "token": "@bar", "value": "bar", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 9 }, @@ -58,7 +82,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 13 }, @@ -67,7 +93,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -76,7 +104,9 @@ "token": "@baz", "value": "baz", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 1, "position": 15 }, @@ -85,7 +115,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 19 }, @@ -94,30 +126,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 20 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@17" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -144,9 +180,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCall3.out b/tests/data/parser/parseCall3.out index 9d893de1e..49bdf7ebb 100644 --- a/tests/data/parser/parseCall3.out +++ b/tests/data/parser/parseCall3.out @@ -2,18 +2,26 @@ "query": "CALL foo;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CALL foo;", "len": 9, "last": 9, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CALL", "value": "CALL", "keyword": "CALL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,30 +56,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 8 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@9" + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -80,9 +100,7 @@ "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCall4.out b/tests/data/parser/parseCall4.out index 299ed5056..51f9f7b31 100644 --- a/tests/data/parser/parseCall4.out +++ b/tests/data/parser/parseCall4.out @@ -2,18 +2,26 @@ "query": "call e();call f", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "call e();call f", "len": 15, "last": 15, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "call", "value": "CALL", "keyword": "CALL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 6 }, @@ -49,7 +69,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 7 }, @@ -58,7 +80,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 8 }, @@ -67,7 +93,9 @@ "token": "call", "value": "CALL", "keyword": "CALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -76,7 +104,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -85,30 +115,32 @@ "token": "f", "value": "f", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 14 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -140,9 +172,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCall5.out b/tests/data/parser/parseCall5.out index f63f48db6..ebe4d3a88 100644 --- a/tests/data/parser/parseCall5.out +++ b/tests/data/parser/parseCall5.out @@ -2,18 +2,26 @@ "query": "call e;call f", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "call e;call f", "len": 13, "last": 13, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "call", "value": "CALL", "keyword": "CALL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 6 }, @@ -49,7 +69,9 @@ "token": "call", "value": "CALL", "keyword": "CALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -67,30 +91,32 @@ "token": "f", "value": "f", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 12 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@9" + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -118,9 +144,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateDatabase.out b/tests/data/parser/parseCreateDatabase.out index c6ec6fb7e..e6c8b1969 100644 --- a/tests/data/parser/parseCreateDatabase.out +++ b/tests/data/parser/parseCreateDatabase.out @@ -2,18 +2,26 @@ "query": "CREATE DATABASE IF NOT EXISTS pma DEFAULT CHARSET 'utf8';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE DATABASE IF NOT EXISTS pma DEFAULT CHARSET 'utf8';", "len": 57, "last": 57, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "DATABASE", "value": "DATABASE", "keyword": "DATABASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 16 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +87,11 @@ "token": "pma", "value": "pma", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 30 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 34 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -103,7 +133,11 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 50 }, @@ -112,30 +146,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 56 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -187,9 +225,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateDatabaseErr.out b/tests/data/parser/parseCreateDatabaseErr.out index f7b12c058..3ba8a444b 100644 --- a/tests/data/parser/parseCreateDatabaseErr.out +++ b/tests/data/parser/parseCreateDatabaseErr.out @@ -2,18 +2,26 @@ "query": "CREATE DATABASE IF NOT EXISTS pma ENGINE='InnoDB' DEFAULT CHARSET 'utf8'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE DATABASE IF NOT EXISTS pma ENGINE='InnoDB' DEFAULT CHARSET 'utf8'", "len": 72, "last": 72, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "DATABASE", "value": "DATABASE", "keyword": "DATABASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 16 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +87,11 @@ "token": "pma", "value": "pma", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 30 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 34 }, @@ -94,7 +122,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 40 }, @@ -103,7 +135,11 @@ "token": "'InnoDB'", "value": "InnoDB", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 41 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -121,7 +159,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 50 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -139,30 +181,34 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "@17" + }, "flags": 1, "position": 66 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -207,9 +253,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -217,7 +261,7 @@ [ "Unrecognized statement type.", { - "@type": "@10" + "@type": "@13" }, 0 ] diff --git a/tests/data/parser/parseCreateFunction.out b/tests/data/parser/parseCreateFunction.out index aed2f6125..0ba2021c5 100644 --- a/tests/data/parser/parseCreateFunction.out +++ b/tests/data/parser/parseCreateFunction.out @@ -2,18 +2,26 @@ "query": "DELIMITER $$\nCREATE FUNCTION F_TEST(uid INT) RETURNS VARCHAR\nBEGIN\n DECLARE username VARCHAR DEFAULT \"\";\n SELECT username INTO username FROM users WHERE ID = uid;\n RETURN username;\nEND", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER $$\nCREATE FUNCTION F_TEST(uid INT) RETURNS VARCHAR\nBEGIN\n DECLARE username VARCHAR DEFAULT \"\";\n SELECT username INTO username FROM users WHERE ID = uid;\n RETURN username;\nEND", "len": 193, "last": 193, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 60, + "idx": 60, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +67,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +91,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +113,9 @@ "token": "F_TEST", "value": "F_TEST", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 29 }, @@ -94,7 +124,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 35 }, @@ -103,7 +137,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 36 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -121,7 +159,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 40 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 43 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -148,7 +192,9 @@ "token": "RETURNS", "value": "RETURNS", "keyword": "RETURNS", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 45 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -166,7 +214,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 53 }, @@ -175,7 +225,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -184,7 +236,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 61 }, @@ -193,7 +247,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -202,7 +258,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 71 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -220,7 +280,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 79 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -238,7 +302,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 88 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -256,7 +324,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 35, "position": 96 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -274,7 +346,11 @@ "token": "\"\"", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 104 }, @@ -283,7 +359,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 106 }, @@ -292,7 +370,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -301,7 +381,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 112 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -319,7 +403,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 119 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -337,7 +425,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 128 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -355,7 +447,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 133 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -373,7 +469,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 142 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 146 }, @@ -391,7 +491,9 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 147 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -409,7 +513,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 153 }, @@ -418,7 +524,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -427,7 +535,9 @@ "token": "ID", "value": "ID", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 159 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 161 }, @@ -445,7 +557,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 162 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 163 }, @@ -463,7 +579,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 164 }, @@ -472,7 +590,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 167 }, @@ -481,7 +601,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 168 }, @@ -490,7 +612,9 @@ "token": "RETURN", "value": "RETURN", "keyword": "RETURN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 173 }, @@ -499,7 +623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 179 }, @@ -508,7 +634,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 180 }, @@ -517,7 +645,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 188 }, @@ -526,7 +656,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 189 }, @@ -535,30 +667,32 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 190 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 60, - "idx": 60 + ] }, "delimiter": "$$", - "delimiterLen": 2, - "strict": false, - "errors": [] + "delimiterLen": 2 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -596,7 +730,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "parameters": [ { @@ -610,26 +745,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@21" - }, - { - "@type": "@22" - }, - { - "@type": "@23" - }, - { - "@type": "@24" - }, - { - "@type": "@25" - }, { "@type": "@26" }, @@ -663,9 +784,6 @@ { "@type": "@36" }, - { - "@type": "@37" - }, { "@type": "@38" }, @@ -734,6 +852,24 @@ }, { "@type": "@60" + }, + { + "@type": "@61" + }, + { + "@type": "@62" + }, + { + "@type": "@63" + }, + { + "@type": "@64" + }, + { + "@type": "@65" + }, + { + "@type": "@66" } ], "options": { @@ -746,9 +882,7 @@ "last": 59 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateFunctionErr1.out b/tests/data/parser/parseCreateFunctionErr1.out index c2253cca1..86cd343ba 100644 --- a/tests/data/parser/parseCreateFunctionErr1.out +++ b/tests/data/parser/parseCreateFunctionErr1.out @@ -2,18 +2,26 @@ "query": "DELIMITER $$\nCREATE FUNCTION F_TEST(uid INT)\nBEGIN\n DECLARE username VARCHAR DEFAULT \"\";\n SELECT username INTO username FROM users WHERE ID = uid;\n RETURN username;\nEND", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER $$\nCREATE FUNCTION F_TEST(uid INT)\nBEGIN\n DECLARE username VARCHAR DEFAULT \"\";\n SELECT username INTO username FROM users WHERE ID = uid;\n RETURN username;\nEND", "len": 177, "last": 177, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 56, + "idx": 56, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +67,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +91,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +113,9 @@ "token": "F_TEST", "value": "F_TEST", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 29 }, @@ -94,7 +124,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 35 }, @@ -103,7 +137,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 36 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -121,7 +159,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 40 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 43 }, @@ -139,7 +181,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -148,7 +192,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 45 }, @@ -157,7 +203,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -166,7 +214,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 55 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -184,7 +236,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 63 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -202,7 +258,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 72 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -220,7 +280,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 35, "position": 80 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -238,7 +302,11 @@ "token": "\"\"", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 88 }, @@ -247,7 +315,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 90 }, @@ -256,7 +326,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -265,7 +337,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 96 }, @@ -274,7 +348,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -283,7 +359,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 103 }, @@ -292,7 +370,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -301,7 +381,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 112 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -319,7 +403,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 117 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -337,7 +425,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 126 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -355,7 +447,9 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 131 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 136 }, @@ -373,7 +469,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 137 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -391,7 +491,9 @@ "token": "ID", "value": "ID", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 143 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -409,7 +513,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 146 }, @@ -418,7 +524,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, @@ -427,7 +535,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 148 }, @@ -436,7 +546,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 151 }, @@ -445,7 +557,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -454,7 +568,9 @@ "token": "RETURN", "value": "RETURN", "keyword": "RETURN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 157 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 163 }, @@ -472,7 +590,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 164 }, @@ -481,7 +601,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 172 }, @@ -490,7 +612,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -499,30 +623,32 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 174 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 56, - "idx": 56 + ] }, "delimiter": "$$", - "delimiterLen": 2, - "strict": false, - "errors": [] + "delimiterLen": 2 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -566,26 +692,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@19" - }, - { - "@type": "@20" - }, - { - "@type": "@21" - }, - { - "@type": "@22" - }, - { - "@type": "@23" - }, { "@type": "@24" }, @@ -613,9 +725,6 @@ { "@type": "@32" }, - { - "@type": "@33" - }, { "@type": "@34" }, @@ -684,6 +793,24 @@ }, { "@type": "@56" + }, + { + "@type": "@57" + }, + { + "@type": "@58" + }, + { + "@type": "@59" + }, + { + "@type": "@60" + }, + { + "@type": "@61" + }, + { + "@type": "@62" } ], "options": { @@ -696,9 +823,7 @@ "last": 55 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -706,7 +831,7 @@ [ "A \"RETURNS\" keyword was expected.", { - "@type": "@17" + "@type": "@22" }, 0 ] diff --git a/tests/data/parser/parseCreateFunctionErr2.out b/tests/data/parser/parseCreateFunctionErr2.out index 60b8177fa..eef7c6e56 100644 --- a/tests/data/parser/parseCreateFunctionErr2.out +++ b/tests/data/parser/parseCreateFunctionErr2.out @@ -2,18 +2,26 @@ "query": "CREATE FUNCTION test() RETURNS", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE FUNCTION test() RETURNS", "len": 30, "last": 30, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, @@ -58,7 +78,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 20 }, @@ -67,7 +91,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,30 +113,34 @@ "token": "RETURNS", "value": "RETURNS", "keyword": "RETURNS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 23 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -152,9 +184,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateFunctionErr3.out b/tests/data/parser/parseCreateFunctionErr3.out index b710592ef..1a03be119 100644 --- a/tests/data/parser/parseCreateFunctionErr3.out +++ b/tests/data/parser/parseCreateFunctionErr3.out @@ -2,18 +2,26 @@ "query": "DELIMITER $$\nCREATE FUNCTION coincide\nEND;$$\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER $$\nCREATE FUNCTION coincide\nEND;$$\n", "len": 45, "last": 45, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +67,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +91,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +113,9 @@ "token": "coincide", "value": "coincide", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 29 }, @@ -94,7 +124,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +135,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 38 }, @@ -112,7 +146,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 41 }, @@ -121,7 +159,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": 42 }, @@ -130,30 +170,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 17 + ] }, "delimiter": "$$", - "delimiterLen": 2, - "strict": false, - "errors": [] + "delimiterLen": 2 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -197,9 +239,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -207,7 +247,7 @@ [ "A \"RETURNS\" keyword was expected.", { - "@type": "@12" + "@type": "@16" }, 0 ] diff --git a/tests/data/parser/parseCreateOrReplaceView1.out b/tests/data/parser/parseCreateOrReplaceView1.out index f906c1ac2..76ca24b3e 100644 --- a/tests/data/parser/parseCreateOrReplaceView1.out +++ b/tests/data/parser/parseCreateOrReplaceView1.out @@ -2,18 +2,26 @@ "query": "CREATE OR REPLACE VIEW xviewmytable AS SELECT mytable.id AS id, mytable.personid AS personid FROM mytable WHERE (mytable.birth > '1990-01-19') GROUP BY mytable.personid ;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE OR REPLACE VIEW xviewmytable AS SELECT mytable.id AS id, mytable.personid AS personid FROM mytable WHERE (mytable.birth > '1990-01-19') GROUP BY mytable.personid ;", "len": 172, "last": 172, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 53, + "idx": 53, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "OR REPLACE", "value": "OR REPLACE", "keyword": "OR REPLACE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -49,7 +65,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +87,11 @@ "token": "xviewmytable", "value": "xviewmytable", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -85,7 +111,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +133,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -121,7 +155,9 @@ "token": "mytable", "value": "mytable", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 47 }, @@ -130,7 +166,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 54 }, @@ -139,7 +179,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 55 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -157,7 +201,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 58 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -175,7 +223,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 61 }, @@ -184,7 +234,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 63 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -202,7 +256,9 @@ "token": "mytable", "value": "mytable", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 65 }, @@ -211,7 +267,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 72 }, @@ -220,7 +278,9 @@ "token": "personid", "value": "personid", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 73 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -238,7 +300,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -256,7 +322,9 @@ "token": "personid", "value": "personid", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 85 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -274,7 +344,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 94 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -292,7 +366,9 @@ "token": "mytable", "value": "mytable", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 99 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -310,7 +388,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 107 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -328,7 +410,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 113 }, @@ -337,7 +421,9 @@ "token": "mytable", "value": "mytable", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 114 }, @@ -346,7 +432,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 121 }, @@ -355,7 +443,9 @@ "token": "birth", "value": "birth", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 122 }, @@ -364,7 +454,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -373,7 +465,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 2, "position": 128 }, @@ -382,7 +476,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -391,7 +487,11 @@ "token": "'1990-01-19'", "value": "1990-01-19", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 130 }, @@ -400,7 +500,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 142 }, @@ -409,7 +511,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, @@ -418,7 +522,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 144 }, @@ -427,7 +533,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -436,7 +544,9 @@ "token": "mytable", "value": "mytable", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 153 }, @@ -445,7 +555,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 16, "position": 160 }, @@ -454,7 +566,9 @@ "token": "personid", "value": "personid", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 161 }, @@ -463,7 +577,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 169 }, @@ -472,30 +588,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 171 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@59" + }, "flags": 0, "position": null } - ], - "count": 53, - "idx": 53 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -551,7 +671,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -562,7 +682,10 @@ "1990-01-19" ], "isOperator": false, - "expr": "(mytable.birth > '1990-01-19')" + "expr": "(mytable.birth > '1990-01-19')", + "leftOperand": "(mytable.birth", + "operator": ">", + "rightOperand": "'1990-01-19')" } ], "group": [ @@ -581,7 +704,7 @@ } } ], - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -589,7 +712,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -618,9 +741,7 @@ "last": 51 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateProcedure.out b/tests/data/parser/parseCreateProcedure.out index c9cdf49b1..bfb3c99a2 100644 --- a/tests/data/parser/parseCreateProcedure.out +++ b/tests/data/parser/parseCreateProcedure.out @@ -2,18 +2,26 @@ "query": "DELIMITER $$\nCREATE PROCEDURE P_TEST(uid INT)\nBEGIN\n SELECT username FROM users WHERE ID = uid;\nEND", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER $$\nCREATE PROCEDURE P_TEST(uid INT)\nBEGIN\n SELECT username FROM users WHERE ID = uid;\nEND", "len": 102, "last": 102, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 36, + "idx": 36, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +67,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +91,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +113,9 @@ "token": "P_TEST", "value": "P_TEST", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 30 }, @@ -94,7 +124,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 36 }, @@ -103,7 +137,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 37 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -121,7 +159,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 41 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 44 }, @@ -139,7 +181,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -148,7 +192,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 46 }, @@ -157,7 +203,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -166,7 +214,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 56 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -184,7 +236,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 63 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -202,7 +258,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 72 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -220,7 +280,9 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 77 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -238,7 +302,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 83 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -256,7 +324,9 @@ "token": "ID", "value": "ID", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 89 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -274,7 +346,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 92 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -292,7 +368,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 94 }, @@ -301,7 +379,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 97 }, @@ -310,7 +390,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -319,30 +401,32 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 99 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 36, - "idx": 36 + ] }, "delimiter": "$$", - "delimiterLen": 2, - "strict": false, - "errors": [] + "delimiterLen": 2 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -386,26 +470,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@17" - }, - { - "@type": "@18" - }, - { - "@type": "@19" - }, - { - "@type": "@20" - }, - { - "@type": "@21" - }, { "@type": "@22" }, @@ -450,6 +520,21 @@ }, { "@type": "@36" + }, + { + "@type": "@37" + }, + { + "@type": "@38" + }, + { + "@type": "@39" + }, + { + "@type": "@40" + }, + { + "@type": "@41" } ], "options": { @@ -462,9 +547,7 @@ "last": 35 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateProcedure1.out b/tests/data/parser/parseCreateProcedure1.out index 132a68c9c..d1b6faad8 100644 --- a/tests/data/parser/parseCreateProcedure1.out +++ b/tests/data/parser/parseCreateProcedure1.out @@ -2,18 +2,26 @@ "query": "CREATE DEFINER=`root`@`%` PROCEDURE `test2`(IN `_var` INT) NOT DETERMINISTIC NO SQL SQL SECURITY INVOKER SELECT _var", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE DEFINER=`root`@`%` PROCEDURE `test2`(IN `_var` INT) NOT DETERMINISTIC NO SQL SQL SECURITY INVOKER SELECT _var", "len": 116, "last": 116, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 31, + "idx": 31, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 14 }, @@ -49,7 +67,11 @@ "token": "`root`@`%`", "value": "root@%", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 15 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +91,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -85,7 +113,9 @@ "token": "`test2`", "value": "test2", "keyword": null, - "type": 8, + "type": { + "@type": "@10" + }, "flags": 2, "position": 36 }, @@ -94,7 +124,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 43 }, @@ -103,7 +135,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 44 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -121,7 +157,9 @@ "token": "`_var`", "value": "_var", "keyword": null, - "type": 8, + "type": { + "@type": "@10" + }, "flags": 2, "position": 47 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -139,7 +179,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 54 }, @@ -148,7 +190,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 57 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -166,7 +212,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 59 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -184,7 +234,9 @@ "token": "DETERMINISTIC", "value": "DETERMINISTIC", "keyword": "DETERMINISTIC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -202,7 +256,9 @@ "token": "NO SQL", "value": "NO SQL", "keyword": "NO SQL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 77 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -220,7 +278,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 84 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -238,7 +300,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 97 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -256,7 +322,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 105 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -274,30 +344,36 @@ "token": "_var", "value": "_var", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 112 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 31, - "idx": 31 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -355,19 +431,20 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ { - "@type": "@29" + "@type": "@33" }, { - "@type": "@30" + "@type": "@34" }, { - "@type": "@31" + "@type": "@35" } ], "options": { @@ -395,9 +472,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateProcedure2.out b/tests/data/parser/parseCreateProcedure2.out index 6f3f218f2..4436acbd5 100644 --- a/tests/data/parser/parseCreateProcedure2.out +++ b/tests/data/parser/parseCreateProcedure2.out @@ -2,18 +2,26 @@ "query": "DELIMITER $$\nCREATE PROCEDURE P_TEST(IN uid INT, IN unused VARCHAR)\nBEGIN\n SELECT username FROM users WHERE ID = uid;\nEND", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELIMITER $$\nCREATE PROCEDURE P_TEST(IN uid INT, IN unused VARCHAR)\nBEGIN\n SELECT username FROM users WHERE ID = uid;\nEND", "len": 124, "last": 124, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 45, + "idx": 45, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,11 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +67,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +91,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +113,9 @@ "token": "P_TEST", "value": "P_TEST", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 30 }, @@ -94,7 +124,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 36 }, @@ -103,7 +137,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 35, "position": 37 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -121,7 +159,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 40 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -139,7 +181,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 44 }, @@ -148,7 +192,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 47 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -166,7 +214,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 35, "position": 49 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -184,7 +236,9 @@ "token": "unused", "value": "unused", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 52 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -202,7 +258,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 11, "position": 59 }, @@ -211,7 +269,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 66 }, @@ -220,7 +280,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -229,7 +291,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 68 }, @@ -238,7 +302,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -247,7 +313,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 78 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -265,7 +335,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 85 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -283,7 +357,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 94 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -301,7 +379,9 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 99 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -319,7 +401,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 3, "position": 105 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -337,7 +423,9 @@ "token": "ID", "value": "ID", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 111 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -355,7 +445,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 114 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -373,7 +467,9 @@ "token": "uid", "value": "uid", "keyword": null, - "type": 0, + "type": { + "@type": "@3" + }, "flags": 0, "position": 116 }, @@ -382,7 +478,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 119 }, @@ -391,7 +489,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,30 +500,32 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@10" + }, "flags": 1, "position": 121 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 45, - "idx": 45 + ] }, "delimiter": "$$", - "delimiterLen": 2, - "strict": false, - "errors": [] + "delimiterLen": 2 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -467,7 +569,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -481,26 +584,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@26" - }, - { - "@type": "@27" - }, - { - "@type": "@28" - }, - { - "@type": "@29" - }, - { - "@type": "@30" - }, { "@type": "@31" }, @@ -545,6 +634,21 @@ }, { "@type": "@45" + }, + { + "@type": "@46" + }, + { + "@type": "@47" + }, + { + "@type": "@48" + }, + { + "@type": "@49" + }, + { + "@type": "@50" } ], "options": { @@ -557,9 +661,7 @@ "last": 44 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateProcedure3.out b/tests/data/parser/parseCreateProcedure3.out index 05a4867ac..66d3cf2ec 100644 --- a/tests/data/parser/parseCreateProcedure3.out +++ b/tests/data/parser/parseCreateProcedure3.out @@ -2,25 +2,29 @@ "query": "DELIMITER $$\nCREATE DEFINER=`user`@`localhost` PROCEDURE `multiDBqueryRun_V1`(IN `query` TEXT, IN `table_name_var` VARCHAR(255), IN `columns_used_var` TEXT, IN `where_text_var` TEXT, IN `separator_value_var` VARCHAR(255)) COMMENT 'Query: SingleDB → MultiDB (All DBs) + run it' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN\nSET @TABLE_NAME = table_name_var;\nSET @WHERE_TEXT = where_text_var;\nSET @COLUMNS_USED = columns_used_var;\nSET @MULTIDB_QUERY = CONCAT('SELECT \"$MULTIDB\" FROM `$MULTIDB`.', @TABLE_NAME, @WHERE_TEXT);\n\n-- EXECUTION --\nCREATE TEMPORARY TABLE `MULTIDB_TEMP_DB_TBL_COLS` AS\nSELECT * FROM (\n SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE\n TABLE_SCHEMA NOT IN('mysql', 'test', 'tmp', 'information_schema', 'sys', 'performance_schema') AND\n TABLE_NAME = @TABLE_NAME AND\n FIND_IN_SET(COLUMN_NAME, @COLUMNS_USED)\n) tbl\nGROUP BY\n TABLE_SCHEMA,\n TABLE_NAME;\n\nSELECT GROUP_CONCAT(REPLACE(@MULTIDB_QUERY, '$MULTIDB', CONCAT('', TABLE_SCHEMA, '')) SEPARATOR \"\\nUNION ALL\\n\")\nINTO @stmt_sql\nFROM `MULTIDB_TEMP_DB_TBL_COLS`;\n\nPREPARE stmt FROM @stmt_sql;\nEXECUTE stmt;\nDEALLOCATE PREPARE stmt;\nEND", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": { "@type": "PhpMyAdmin\\SqlParser\\UtfString", - "str": "DELIMITER $$\nCREATE DEFINER=`user`@`localhost` PROCEDURE `multiDBqueryRun_V1`(IN `query` TEXT, IN `table_name_var` VARCHAR(255), IN `columns_used_var` TEXT, IN `where_text_var` TEXT, IN `separator_value_var` VARCHAR(255)) COMMENT 'Query: SingleDB → MultiDB (All DBs) + run it' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN\nSET @TABLE_NAME = table_name_var;\nSET @WHERE_TEXT = where_text_var;\nSET @COLUMNS_USED = columns_used_var;\nSET @MULTIDB_QUERY = CONCAT('SELECT \"$MULTIDB\" FROM `$MULTIDB`.', @TABLE_NAME, @WHERE_TEXT);\n\n-- EXECUTION --\nCREATE TEMPORARY TABLE `MULTIDB_TEMP_DB_TBL_COLS` AS\nSELECT * FROM (\n SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE\n TABLE_SCHEMA NOT IN('mysql', 'test', 'tmp', 'information_schema', 'sys', 'performance_schema') AND\n TABLE_NAME = @TABLE_NAME AND\n FIND_IN_SET(COLUMN_NAME, @COLUMNS_USED)\n) tbl\nGROUP BY\n TABLE_SCHEMA,\n TABLE_NAME;\n\nSELECT GROUP_CONCAT(REPLACE(@MULTIDB_QUERY, '$MULTIDB', CONCAT('', TABLE_SCHEMA, '')) SEPARATOR \"\\nUNION ALL\\n\")\nINTO @stmt_sql\nFROM `MULTIDB_TEMP_DB_TBL_COLS`;\n\nPREPARE stmt FROM @stmt_sql;\nEXECUTE stmt;\nDEALLOCATE PREPARE stmt;\nEND", - "byteIdx": 1174, - "charIdx": 1172, - "byteLen": 1175, - "charLen": 1173 + "str": "DELIMITER $$\nCREATE DEFINER=`user`@`localhost` PROCEDURE `multiDBqueryRun_V1`(IN `query` TEXT, IN `table_name_var` VARCHAR(255), IN `columns_used_var` TEXT, IN `where_text_var` TEXT, IN `separator_value_var` VARCHAR(255)) COMMENT 'Query: SingleDB → MultiDB (All DBs) + run it' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN\nSET @TABLE_NAME = table_name_var;\nSET @WHERE_TEXT = where_text_var;\nSET @COLUMNS_USED = columns_used_var;\nSET @MULTIDB_QUERY = CONCAT('SELECT \"$MULTIDB\" FROM `$MULTIDB`.', @TABLE_NAME, @WHERE_TEXT);\n\n-- EXECUTION --\nCREATE TEMPORARY TABLE `MULTIDB_TEMP_DB_TBL_COLS` AS\nSELECT * FROM (\n SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE\n TABLE_SCHEMA NOT IN('mysql', 'test', 'tmp', 'information_schema', 'sys', 'performance_schema') AND\n TABLE_NAME = @TABLE_NAME AND\n FIND_IN_SET(COLUMN_NAME, @COLUMNS_USED)\n) tbl\nGROUP BY\n TABLE_SCHEMA,\n TABLE_NAME;\n\nSELECT GROUP_CONCAT(REPLACE(@MULTIDB_QUERY, '$MULTIDB', CONCAT('', TABLE_SCHEMA, '')) SEPARATOR \"\\nUNION ALL\\n\")\nINTO @stmt_sql\nFROM `MULTIDB_TEMP_DB_TBL_COLS`;\n\nPREPARE stmt FROM @stmt_sql;\nEXECUTE stmt;\nDEALLOCATE PREPARE stmt;\nEND" }, "len": 1173, "last": 1173, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 267, + "idx": 267, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -29,7 +33,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -38,7 +46,11 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -47,7 +59,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 12 }, @@ -56,7 +70,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -65,7 +83,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 19 }, @@ -74,7 +94,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 20 }, @@ -83,7 +105,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 27 }, @@ -92,7 +118,11 @@ "token": "`user`@`localhost`", "value": "user@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 28 }, @@ -101,7 +131,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 46 }, @@ -110,7 +142,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 47 }, @@ -119,7 +153,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 56 }, @@ -128,7 +164,9 @@ "token": "`multiDBqueryRun_V1`", "value": "multiDBqueryRun_V1", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 57 }, @@ -137,7 +175,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 77 }, @@ -146,7 +186,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 78 }, @@ -155,7 +197,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 80 }, @@ -164,7 +208,9 @@ "token": "`query`", "value": "query", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 81 }, @@ -173,7 +219,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 88 }, @@ -182,7 +230,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 89 }, @@ -191,7 +241,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 93 }, @@ -200,7 +252,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 94 }, @@ -209,7 +263,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 95 }, @@ -218,7 +274,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 97 }, @@ -227,7 +285,9 @@ "token": "`table_name_var`", "value": "table_name_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 98 }, @@ -236,7 +296,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 114 }, @@ -245,7 +307,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 115 }, @@ -254,7 +318,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 122 }, @@ -263,7 +329,11 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 123 }, @@ -272,7 +342,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 126 }, @@ -281,7 +353,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 127 }, @@ -290,7 +364,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 128 }, @@ -299,7 +375,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 129 }, @@ -308,7 +386,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 131 }, @@ -317,7 +397,9 @@ "token": "`columns_used_var`", "value": "columns_used_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 132 }, @@ -326,7 +408,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 150 }, @@ -335,7 +419,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 151 }, @@ -344,7 +430,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 155 }, @@ -353,7 +441,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 156 }, @@ -362,7 +452,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 157 }, @@ -371,7 +463,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 159 }, @@ -380,7 +474,9 @@ "token": "`where_text_var`", "value": "where_text_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 160 }, @@ -389,7 +485,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 176 }, @@ -398,7 +496,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 177 }, @@ -407,7 +507,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 181 }, @@ -416,7 +518,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 182 }, @@ -425,7 +529,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 183 }, @@ -434,7 +540,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 185 }, @@ -443,7 +551,9 @@ "token": "`separator_value_var`", "value": "separator_value_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 186 }, @@ -452,7 +562,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 207 }, @@ -461,7 +573,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 208 }, @@ -470,7 +584,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 215 }, @@ -479,7 +595,9 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 216 }, @@ -488,7 +606,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 219 }, @@ -497,7 +617,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 220 }, @@ -506,7 +628,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 221 }, @@ -515,7 +639,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 222 }, @@ -524,7 +650,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 229 }, @@ -533,7 +661,11 @@ "token": "'Query: SingleDB → MultiDB (All DBs) + run it'", "value": "Query: SingleDB → MultiDB (All DBs) + run it", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 230 }, @@ -542,7 +674,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 276 }, @@ -551,7 +685,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 277 }, @@ -560,7 +696,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 280 }, @@ -569,7 +707,9 @@ "token": "DETERMINISTIC", "value": "DETERMINISTIC", "keyword": "DETERMINISTIC", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 281 }, @@ -578,7 +718,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 294 }, @@ -587,7 +729,9 @@ "token": "MODIFIES SQL DATA", "value": "MODIFIES SQL DATA", "keyword": "MODIFIES SQL DATA", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 295 }, @@ -596,7 +740,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 312 }, @@ -605,7 +751,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 313 }, @@ -614,7 +762,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 325 }, @@ -623,7 +773,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 326 }, @@ -632,7 +784,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 333 }, @@ -641,7 +795,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 334 }, @@ -650,7 +806,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 339 }, @@ -659,7 +817,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 340 }, @@ -668,7 +828,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 343 }, @@ -677,7 +839,9 @@ "token": "@TABLE_NAME", "value": "TABLE_NAME", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 344 }, @@ -686,7 +850,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 355 }, @@ -695,7 +861,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 356 }, @@ -704,7 +872,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 357 }, @@ -713,7 +883,9 @@ "token": "table_name_var", "value": "table_name_var", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 358 }, @@ -722,7 +894,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 372 }, @@ -731,7 +905,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 373 }, @@ -740,7 +916,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 374 }, @@ -749,7 +927,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 377 }, @@ -758,7 +938,9 @@ "token": "@WHERE_TEXT", "value": "WHERE_TEXT", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 378 }, @@ -767,7 +949,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 389 }, @@ -776,7 +960,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 390 }, @@ -785,7 +971,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 391 }, @@ -794,7 +982,9 @@ "token": "where_text_var", "value": "where_text_var", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 392 }, @@ -803,7 +993,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 406 }, @@ -812,7 +1004,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 407 }, @@ -821,7 +1015,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 408 }, @@ -830,7 +1026,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 411 }, @@ -839,7 +1037,9 @@ "token": "@COLUMNS_USED", "value": "COLUMNS_USED", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 412 }, @@ -848,7 +1048,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 425 }, @@ -857,7 +1059,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 426 }, @@ -866,7 +1070,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 427 }, @@ -875,7 +1081,9 @@ "token": "columns_used_var", "value": "columns_used_var", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 428 }, @@ -884,7 +1092,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 444 }, @@ -893,7 +1103,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 445 }, @@ -902,7 +1114,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 446 }, @@ -911,7 +1125,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 449 }, @@ -920,7 +1136,9 @@ "token": "@MULTIDB_QUERY", "value": "MULTIDB_QUERY", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 450 }, @@ -929,7 +1147,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 464 }, @@ -938,7 +1158,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 465 }, @@ -947,7 +1169,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 466 }, @@ -956,7 +1180,9 @@ "token": "CONCAT", "value": "CONCAT", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 467 }, @@ -965,7 +1191,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 473 }, @@ -974,7 +1202,9 @@ "token": "'SELECT \"$MULTIDB\" FROM `$MULTIDB`.'", "value": "SELECT \"$MULTIDB\" FROM `$MULTIDB`.", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 474 }, @@ -983,7 +1213,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 510 }, @@ -992,7 +1224,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 511 }, @@ -1001,7 +1235,9 @@ "token": "@TABLE_NAME", "value": "TABLE_NAME", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 512 }, @@ -1010,7 +1246,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 523 }, @@ -1019,7 +1257,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 524 }, @@ -1028,7 +1268,9 @@ "token": "@WHERE_TEXT", "value": "WHERE_TEXT", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 525 }, @@ -1037,7 +1279,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 536 }, @@ -1046,7 +1290,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 537 }, @@ -1055,7 +1301,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 538 }, @@ -1064,7 +1312,11 @@ "token": "-- EXECUTION --", "value": "-- EXECUTION --", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 540 }, @@ -1073,7 +1325,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 555 }, @@ -1082,7 +1336,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 556 }, @@ -1091,7 +1347,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 562 }, @@ -1100,7 +1358,9 @@ "token": "TEMPORARY", "value": "TEMPORARY", "keyword": "TEMPORARY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 563 }, @@ -1109,7 +1369,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 572 }, @@ -1118,7 +1380,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 573 }, @@ -1127,7 +1391,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 578 }, @@ -1136,7 +1402,9 @@ "token": "`MULTIDB_TEMP_DB_TBL_COLS`", "value": "MULTIDB_TEMP_DB_TBL_COLS", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 579 }, @@ -1145,7 +1413,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 605 }, @@ -1154,7 +1424,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 606 }, @@ -1163,7 +1435,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 608 }, @@ -1172,7 +1446,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 609 }, @@ -1181,7 +1457,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 615 }, @@ -1190,7 +1468,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 616 }, @@ -1199,7 +1479,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 617 }, @@ -1208,7 +1490,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 618 }, @@ -1217,7 +1501,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 622 }, @@ -1226,7 +1512,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 623 }, @@ -1235,7 +1523,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 624 }, @@ -1244,7 +1534,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 627 }, @@ -1253,7 +1545,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 633 }, @@ -1262,7 +1556,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 634 }, @@ -1271,7 +1567,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 646 }, @@ -1280,7 +1578,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 647 }, @@ -1289,7 +1589,9 @@ "token": "TABLE_NAME", "value": "TABLE_NAME", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 648 }, @@ -1298,7 +1600,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 658 }, @@ -1307,7 +1611,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 659 }, @@ -1316,7 +1622,9 @@ "token": "COLUMN_NAME", "value": "COLUMN_NAME", "keyword": "COLUMN_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 660 }, @@ -1325,7 +1633,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 671 }, @@ -1334,7 +1644,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 674 }, @@ -1343,7 +1655,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 678 }, @@ -1352,7 +1666,9 @@ "token": "INFORMATION_SCHEMA", "value": "INFORMATION_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 679 }, @@ -1361,7 +1677,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 697 }, @@ -1370,7 +1688,9 @@ "token": "COLUMNS", "value": "COLUMNS", "keyword": "COLUMNS", - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 698 }, @@ -1379,7 +1699,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 705 }, @@ -1388,7 +1710,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 708 }, @@ -1397,7 +1721,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 713 }, @@ -1406,7 +1732,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 718 }, @@ -1415,7 +1743,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 730 }, @@ -1424,7 +1754,9 @@ "token": "NOT IN", "value": "NOT IN", "keyword": "NOT IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 39, "position": 731 }, @@ -1433,7 +1765,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 737 }, @@ -1442,7 +1776,9 @@ "token": "'mysql'", "value": "mysql", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 738 }, @@ -1451,7 +1787,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 745 }, @@ -1460,7 +1798,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 746 }, @@ -1469,7 +1809,9 @@ "token": "'test'", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 747 }, @@ -1478,7 +1820,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 753 }, @@ -1487,7 +1831,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 754 }, @@ -1496,7 +1842,9 @@ "token": "'tmp'", "value": "tmp", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 755 }, @@ -1505,7 +1853,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 760 }, @@ -1514,7 +1864,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 761 }, @@ -1523,7 +1875,9 @@ "token": "'information_schema'", "value": "information_schema", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 762 }, @@ -1532,7 +1886,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 782 }, @@ -1541,7 +1897,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 783 }, @@ -1550,7 +1908,9 @@ "token": "'sys'", "value": "sys", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 784 }, @@ -1559,7 +1919,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 789 }, @@ -1568,7 +1930,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 790 }, @@ -1577,7 +1941,9 @@ "token": "'performance_schema'", "value": "performance_schema", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 791 }, @@ -1586,7 +1952,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 811 }, @@ -1595,7 +1963,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 812 }, @@ -1604,7 +1974,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 813 }, @@ -1613,7 +1985,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 816 }, @@ -1622,7 +1996,9 @@ "token": "TABLE_NAME", "value": "TABLE_NAME", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 821 }, @@ -1631,7 +2007,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 831 }, @@ -1640,7 +2018,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 832 }, @@ -1649,7 +2029,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 833 }, @@ -1658,7 +2040,9 @@ "token": "@TABLE_NAME", "value": "TABLE_NAME", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 834 }, @@ -1667,7 +2051,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 845 }, @@ -1676,7 +2062,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 846 }, @@ -1685,7 +2073,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 849 }, @@ -1694,7 +2084,9 @@ "token": "FIND_IN_SET", "value": "FIND_IN_SET", "keyword": "FIND_IN_SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 854 }, @@ -1703,7 +2095,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 865 }, @@ -1712,7 +2106,9 @@ "token": "COLUMN_NAME", "value": "COLUMN_NAME", "keyword": "COLUMN_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 866 }, @@ -1721,7 +2117,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 877 }, @@ -1730,7 +2128,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 878 }, @@ -1739,7 +2139,9 @@ "token": "@COLUMNS_USED", "value": "COLUMNS_USED", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 879 }, @@ -1748,7 +2150,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 892 }, @@ -1757,7 +2161,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 893 }, @@ -1766,7 +2172,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 894 }, @@ -1775,7 +2183,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 895 }, @@ -1784,7 +2194,9 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 896 }, @@ -1793,7 +2205,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 899 }, @@ -1802,7 +2216,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 900 }, @@ -1811,7 +2227,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 908 }, @@ -1820,7 +2238,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 911 }, @@ -1829,7 +2249,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 923 }, @@ -1838,7 +2260,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 924 }, @@ -1847,7 +2271,9 @@ "token": "TABLE_NAME", "value": "TABLE_NAME", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 927 }, @@ -1856,7 +2282,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 937 }, @@ -1865,7 +2293,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 938 }, @@ -1874,7 +2304,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 940 }, @@ -1883,7 +2315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 946 }, @@ -1892,7 +2326,9 @@ "token": "GROUP_CONCAT", "value": "GROUP_CONCAT", "keyword": "GROUP_CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 947 }, @@ -1901,7 +2337,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 959 }, @@ -1910,7 +2348,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 960 }, @@ -1919,7 +2359,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 967 }, @@ -1928,7 +2370,9 @@ "token": "@MULTIDB_QUERY", "value": "MULTIDB_QUERY", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 968 }, @@ -1937,7 +2381,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 982 }, @@ -1946,7 +2392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 983 }, @@ -1955,7 +2403,9 @@ "token": "'$MULTIDB'", "value": "$MULTIDB", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 984 }, @@ -1964,7 +2414,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 994 }, @@ -1973,7 +2425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 995 }, @@ -1982,7 +2436,9 @@ "token": "CONCAT", "value": "CONCAT", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 996 }, @@ -1991,7 +2447,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1002 }, @@ -2000,7 +2458,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1003 }, @@ -2009,7 +2469,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1005 }, @@ -2018,7 +2480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1006 }, @@ -2027,7 +2491,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1007 }, @@ -2036,7 +2502,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1019 }, @@ -2045,7 +2513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1020 }, @@ -2054,7 +2524,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1021 }, @@ -2063,7 +2535,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1023 }, @@ -2072,7 +2546,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1024 }, @@ -2081,7 +2557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1025 }, @@ -2090,7 +2568,9 @@ "token": "SEPARATOR", "value": "SEPARATOR", "keyword": "SEPARATOR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1026 }, @@ -2099,7 +2579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1035 }, @@ -2108,7 +2590,9 @@ "token": "\"\\nUNION ALL\\n\"", "value": "\nUNION ALL\n", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 2, "position": 1036 }, @@ -2117,7 +2601,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1051 }, @@ -2126,7 +2612,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1052 }, @@ -2135,7 +2623,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1053 }, @@ -2144,7 +2634,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1057 }, @@ -2153,7 +2645,9 @@ "token": "@stmt_sql", "value": "stmt_sql", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 1058 }, @@ -2162,7 +2656,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1067 }, @@ -2171,7 +2667,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1068 }, @@ -2180,7 +2678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1072 }, @@ -2189,7 +2689,9 @@ "token": "`MULTIDB_TEMP_DB_TBL_COLS`", "value": "MULTIDB_TEMP_DB_TBL_COLS", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 1073 }, @@ -2198,7 +2700,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1099 }, @@ -2207,7 +2711,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1100 }, @@ -2216,7 +2722,9 @@ "token": "PREPARE", "value": "PREPARE", "keyword": "PREPARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1102 }, @@ -2225,7 +2733,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1109 }, @@ -2234,7 +2744,9 @@ "token": "stmt", "value": "stmt", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1110 }, @@ -2243,7 +2755,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1114 }, @@ -2252,7 +2766,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1115 }, @@ -2261,7 +2777,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1119 }, @@ -2270,7 +2788,9 @@ "token": "@stmt_sql", "value": "stmt_sql", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 1120 }, @@ -2279,7 +2799,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1129 }, @@ -2288,7 +2810,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1130 }, @@ -2297,7 +2821,9 @@ "token": "EXECUTE", "value": "EXECUTE", "keyword": "EXECUTE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1131 }, @@ -2306,7 +2832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1138 }, @@ -2315,7 +2843,9 @@ "token": "stmt", "value": "stmt", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1139 }, @@ -2324,7 +2854,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1143 }, @@ -2333,7 +2865,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1144 }, @@ -2342,7 +2876,9 @@ "token": "DEALLOCATE", "value": "DEALLOCATE", "keyword": "DEALLOCATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1145 }, @@ -2351,7 +2887,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1155 }, @@ -2360,7 +2898,9 @@ "token": "PREPARE", "value": "PREPARE", "keyword": "PREPARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1156 }, @@ -2369,7 +2909,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1163 }, @@ -2378,7 +2920,9 @@ "token": "stmt", "value": "stmt", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1164 }, @@ -2387,7 +2931,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1168 }, @@ -2396,7 +2942,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1169 }, @@ -2405,30 +2953,32 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1170 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": null } - ], - "count": 267, - "idx": 267 + ] }, "delimiter": "$$", - "delimiterLen": 2, - "strict": false, - "errors": [] + "delimiterLen": 2 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@2" }, @@ -2492,7 +3042,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -2508,7 +3059,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -2522,7 +3074,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -2536,7 +3089,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -2552,35 +3106,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@72" - }, - { - "@type": "@73" - }, - { - "@type": "@74" - }, - { - "@type": "@75" - }, - { - "@type": "@76" - }, - { - "@type": "@77" - }, - { - "@type": "@78" - }, - { - "@type": "@79" - }, { "@type": "@80" }, @@ -2725,9 +3256,6 @@ { "@type": "@127" }, - { - "@type": "@128" - }, { "@type": "@129" }, @@ -3147,6 +3675,33 @@ }, { "@type": "@268" + }, + { + "@type": "@269" + }, + { + "@type": "@270" + }, + { + "@type": "@271" + }, + { + "@type": "@272" + }, + { + "@type": "@273" + }, + { + "@type": "@274" + }, + { + "@type": "@275" + }, + { + "@type": "@276" + }, + { + "@type": "@277" } ], "options": { @@ -3174,9 +3729,7 @@ "last": 266 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateProcedure4.out b/tests/data/parser/parseCreateProcedure4.out index 7819a1db6..ffa346593 100644 --- a/tests/data/parser/parseCreateProcedure4.out +++ b/tests/data/parser/parseCreateProcedure4.out @@ -2,25 +2,29 @@ "query": "DELIMITER $$\nCREATE DEFINER=`user`@`localhost` PROCEDURE `multiDBqueryRun_V12`(IN `query` TEXT, IN `table_name_var` VARCHAR(255), IN `columns_used_var` TEXT, IN `where_text_var` TEXT, IN `separator_value_var` VARCHAR(255)) COMMENT 'Query: SingleDB → MultiDB (All DBs) + run it' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN\nSET @TABLE_NAME = table_name_var;\nSET @WHERE_TEXT = where_text_var;\nSET @COLUMNS_USED = columns_used_var;\nSET @MULTIDB_QUERY = CONCAT('SELECT \"$MULTIDB\" FROM `$MULTIDB`.', @TABLE_NAME, @WHERE_TEXT);\n\n-- EXECUTION --\nCREATE TEMPORARY TABLE `MULTIDB_TEMP_DB_TBL_COLS` AS\nSELECT * FROM (\n SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE\n TABLE_SCHEMA NOT IN('mysql', 'test', 'tmp', 'information_schema', 'sys', 'performance_schema') AND\n TABLE_NAME = @TABLE_NAME AND\n FIND_IN_SET(COLUMN_NAME, @COLUMNS_USED)\n) tbl\nGROUP BY\n TABLE_SCHEMA,\n TABLE_NAME;\n\nSELECT GROUP_CONCAT(REPLACE(@MULTIDB_QUERY, '$MULTIDB', CONCAT('', TABLE_SCHEMA, '')) SEPARATOR \"\\nUNION ALL\\n\")\nINTO @stmt_sql\nFROM `MULTIDB_TEMP_DB_TBL_COLS`;\n\nPREPARE stmt FROM @stmt_sql;\nEXECUTE stmt;\nDEALLOCATE PREPARE stmt;\nEND$$\n\n--\n-- Functions\n--\nDELIMITER $$\nCREATE DEFINER=`root`@`localhost` FUNCTION `attrParentShiftIds` (`parent_id` TEXT, `option_id_shift` INT, `option_value_id_shift` INT) RETURNS TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_520_ci DETERMINISTIC READS SQL DATA SQL SECURITY INVOKER BEGIN\n DECLARE i INT UNSIGNED DEFAULT 0;\n DECLARE pair_count INT UNSIGNED;\n DECLARE result TEXT DEFAULT '';\n\n DECLARE pair VARCHAR(255) DEFAULT '';\n DECLARE oid INT DEFAULT '';\n DECLARE vid INT DEFAULT '';\n\n SET pair_count = substrCount(parent_id, ',') + 1;\n\n WHILE i < pair_count DO\n SET result = CONCAT(result, IF(i <= 0, '', ','));\n\n SET pair = split(parent_id, ',', i + 1);\n\n SET oid = split(pair, '-', 1) + option_id_shift;\n SET vid = split(pair, '-', 2) + option_value_id_shift;\n\n SET pair = CONCAT(oid, '-', vid);\n SET result = CONCAT(result, pair);\n\n SET i = i + 1;\n END WHILE;\n\n RETURN result;\nEND$$\n\nDELIMITER $$\nCREATE DEFINER=`user`@`localhost` FUNCTION `split` (`string` TEXT, `delim` TEXT, `n` INT) RETURNS TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_520_ci DETERMINISTIC SQL SECURITY INVOKER RETURN IF(\n (LENGTH(string) - LENGTH(REPLACE(string, delim, ''))) / LENGTH(delim) < n - 1,\n NULL,\n SUBSTRING_INDEX(SUBSTRING_INDEX(string, delim, n), delim, -1)\n)$$\n\nDELIMITER $$\nCREATE DEFINER=`root`@`localhost` FUNCTION `substrCount` (`s` VARCHAR(255), `ss` VARCHAR(255)) RETURNS TINYINT(3) UNSIGNED DETERMINISTIC READS SQL DATA SQL SECURITY INVOKER BEGIN\nDECLARE COUNT TINYINT(3) UNSIGNED;\nDECLARE OFFSET_I TINYINT(3) UNSIGNED;\nDECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = NULL;\n\nSET COUNT = 0;\nSET OFFSET_I = 1;\n\nREPEAT\nIF NOT ISNULL(s) AND OFFSET_I > 0 THEN\nSET OFFSET_I = LOCATE(ss, s, OFFSET_I);\nIF OFFSET_I > 0 THEN\nSET COUNT = COUNT + 1;\nSET OFFSET_I = OFFSET_I + 1;\nEND IF;\nEND IF;\nUNTIL ISNULL(s) OR OFFSET_I = 0 END REPEAT;\n\nRETURN COUNT;\nEND$$\n\nDELIMITER ;\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": { "@type": "PhpMyAdmin\\SqlParser\\UtfString", - "str": "DELIMITER $$\nCREATE DEFINER=`user`@`localhost` PROCEDURE `multiDBqueryRun_V12`(IN `query` TEXT, IN `table_name_var` VARCHAR(255), IN `columns_used_var` TEXT, IN `where_text_var` TEXT, IN `separator_value_var` VARCHAR(255)) COMMENT 'Query: SingleDB → MultiDB (All DBs) + run it' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN\nSET @TABLE_NAME = table_name_var;\nSET @WHERE_TEXT = where_text_var;\nSET @COLUMNS_USED = columns_used_var;\nSET @MULTIDB_QUERY = CONCAT('SELECT \"$MULTIDB\" FROM `$MULTIDB`.', @TABLE_NAME, @WHERE_TEXT);\n\n-- EXECUTION --\nCREATE TEMPORARY TABLE `MULTIDB_TEMP_DB_TBL_COLS` AS\nSELECT * FROM (\n SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE\n TABLE_SCHEMA NOT IN('mysql', 'test', 'tmp', 'information_schema', 'sys', 'performance_schema') AND\n TABLE_NAME = @TABLE_NAME AND\n FIND_IN_SET(COLUMN_NAME, @COLUMNS_USED)\n) tbl\nGROUP BY\n TABLE_SCHEMA,\n TABLE_NAME;\n\nSELECT GROUP_CONCAT(REPLACE(@MULTIDB_QUERY, '$MULTIDB', CONCAT('', TABLE_SCHEMA, '')) SEPARATOR \"\\nUNION ALL\\n\")\nINTO @stmt_sql\nFROM `MULTIDB_TEMP_DB_TBL_COLS`;\n\nPREPARE stmt FROM @stmt_sql;\nEXECUTE stmt;\nDEALLOCATE PREPARE stmt;\nEND$$\n\n--\n-- Functions\n--\nDELIMITER $$\nCREATE DEFINER=`root`@`localhost` FUNCTION `attrParentShiftIds` (`parent_id` TEXT, `option_id_shift` INT, `option_value_id_shift` INT) RETURNS TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_520_ci DETERMINISTIC READS SQL DATA SQL SECURITY INVOKER BEGIN\n DECLARE i INT UNSIGNED DEFAULT 0;\n DECLARE pair_count INT UNSIGNED;\n DECLARE result TEXT DEFAULT '';\n\n DECLARE pair VARCHAR(255) DEFAULT '';\n DECLARE oid INT DEFAULT '';\n DECLARE vid INT DEFAULT '';\n\n SET pair_count = substrCount(parent_id, ',') + 1;\n\n WHILE i < pair_count DO\n SET result = CONCAT(result, IF(i <= 0, '', ','));\n\n SET pair = split(parent_id, ',', i + 1);\n\n SET oid = split(pair, '-', 1) + option_id_shift;\n SET vid = split(pair, '-', 2) + option_value_id_shift;\n\n SET pair = CONCAT(oid, '-', vid);\n SET result = CONCAT(result, pair);\n\n SET i = i + 1;\n END WHILE;\n\n RETURN result;\nEND$$\n\nDELIMITER $$\nCREATE DEFINER=`user`@`localhost` FUNCTION `split` (`string` TEXT, `delim` TEXT, `n` INT) RETURNS TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_520_ci DETERMINISTIC SQL SECURITY INVOKER RETURN IF(\n (LENGTH(string) - LENGTH(REPLACE(string, delim, ''))) / LENGTH(delim) < n - 1,\n NULL,\n SUBSTRING_INDEX(SUBSTRING_INDEX(string, delim, n), delim, -1)\n)$$\n\nDELIMITER $$\nCREATE DEFINER=`root`@`localhost` FUNCTION `substrCount` (`s` VARCHAR(255), `ss` VARCHAR(255)) RETURNS TINYINT(3) UNSIGNED DETERMINISTIC READS SQL DATA SQL SECURITY INVOKER BEGIN\nDECLARE COUNT TINYINT(3) UNSIGNED;\nDECLARE OFFSET_I TINYINT(3) UNSIGNED;\nDECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = NULL;\n\nSET COUNT = 0;\nSET OFFSET_I = 1;\n\nREPEAT\nIF NOT ISNULL(s) AND OFFSET_I > 0 THEN\nSET OFFSET_I = LOCATE(ss, s, OFFSET_I);\nIF OFFSET_I > 0 THEN\nSET COUNT = COUNT + 1;\nSET OFFSET_I = OFFSET_I + 1;\nEND IF;\nEND IF;\nUNTIL ISNULL(s) OR OFFSET_I = 0 END REPEAT;\n\nRETURN COUNT;\nEND$$\n\nDELIMITER ;\n\n", - "byteIdx": 3084, - "charIdx": 3082, - "byteLen": 3085, - "charLen": 3083 + "str": "DELIMITER $$\nCREATE DEFINER=`user`@`localhost` PROCEDURE `multiDBqueryRun_V12`(IN `query` TEXT, IN `table_name_var` VARCHAR(255), IN `columns_used_var` TEXT, IN `where_text_var` TEXT, IN `separator_value_var` VARCHAR(255)) COMMENT 'Query: SingleDB → MultiDB (All DBs) + run it' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN\nSET @TABLE_NAME = table_name_var;\nSET @WHERE_TEXT = where_text_var;\nSET @COLUMNS_USED = columns_used_var;\nSET @MULTIDB_QUERY = CONCAT('SELECT \"$MULTIDB\" FROM `$MULTIDB`.', @TABLE_NAME, @WHERE_TEXT);\n\n-- EXECUTION --\nCREATE TEMPORARY TABLE `MULTIDB_TEMP_DB_TBL_COLS` AS\nSELECT * FROM (\n SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE\n TABLE_SCHEMA NOT IN('mysql', 'test', 'tmp', 'information_schema', 'sys', 'performance_schema') AND\n TABLE_NAME = @TABLE_NAME AND\n FIND_IN_SET(COLUMN_NAME, @COLUMNS_USED)\n) tbl\nGROUP BY\n TABLE_SCHEMA,\n TABLE_NAME;\n\nSELECT GROUP_CONCAT(REPLACE(@MULTIDB_QUERY, '$MULTIDB', CONCAT('', TABLE_SCHEMA, '')) SEPARATOR \"\\nUNION ALL\\n\")\nINTO @stmt_sql\nFROM `MULTIDB_TEMP_DB_TBL_COLS`;\n\nPREPARE stmt FROM @stmt_sql;\nEXECUTE stmt;\nDEALLOCATE PREPARE stmt;\nEND$$\n\n--\n-- Functions\n--\nDELIMITER $$\nCREATE DEFINER=`root`@`localhost` FUNCTION `attrParentShiftIds` (`parent_id` TEXT, `option_id_shift` INT, `option_value_id_shift` INT) RETURNS TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_520_ci DETERMINISTIC READS SQL DATA SQL SECURITY INVOKER BEGIN\n DECLARE i INT UNSIGNED DEFAULT 0;\n DECLARE pair_count INT UNSIGNED;\n DECLARE result TEXT DEFAULT '';\n\n DECLARE pair VARCHAR(255) DEFAULT '';\n DECLARE oid INT DEFAULT '';\n DECLARE vid INT DEFAULT '';\n\n SET pair_count = substrCount(parent_id, ',') + 1;\n\n WHILE i < pair_count DO\n SET result = CONCAT(result, IF(i <= 0, '', ','));\n\n SET pair = split(parent_id, ',', i + 1);\n\n SET oid = split(pair, '-', 1) + option_id_shift;\n SET vid = split(pair, '-', 2) + option_value_id_shift;\n\n SET pair = CONCAT(oid, '-', vid);\n SET result = CONCAT(result, pair);\n\n SET i = i + 1;\n END WHILE;\n\n RETURN result;\nEND$$\n\nDELIMITER $$\nCREATE DEFINER=`user`@`localhost` FUNCTION `split` (`string` TEXT, `delim` TEXT, `n` INT) RETURNS TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_520_ci DETERMINISTIC SQL SECURITY INVOKER RETURN IF(\n (LENGTH(string) - LENGTH(REPLACE(string, delim, ''))) / LENGTH(delim) < n - 1,\n NULL,\n SUBSTRING_INDEX(SUBSTRING_INDEX(string, delim, n), delim, -1)\n)$$\n\nDELIMITER $$\nCREATE DEFINER=`root`@`localhost` FUNCTION `substrCount` (`s` VARCHAR(255), `ss` VARCHAR(255)) RETURNS TINYINT(3) UNSIGNED DETERMINISTIC READS SQL DATA SQL SECURITY INVOKER BEGIN\nDECLARE COUNT TINYINT(3) UNSIGNED;\nDECLARE OFFSET_I TINYINT(3) UNSIGNED;\nDECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = NULL;\n\nSET COUNT = 0;\nSET OFFSET_I = 1;\n\nREPEAT\nIF NOT ISNULL(s) AND OFFSET_I > 0 THEN\nSET OFFSET_I = LOCATE(ss, s, OFFSET_I);\nIF OFFSET_I > 0 THEN\nSET COUNT = COUNT + 1;\nSET OFFSET_I = OFFSET_I + 1;\nEND IF;\nEND IF;\nUNTIL ISNULL(s) OR OFFSET_I = 0 END REPEAT;\n\nRETURN COUNT;\nEND$$\n\nDELIMITER ;\n\n" }, "len": 3083, "last": 3083, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 926, + "idx": 926, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 0 }, @@ -29,7 +33,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -38,7 +46,11 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 10 }, @@ -47,7 +59,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 12 }, @@ -56,7 +70,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 13 }, @@ -65,7 +83,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 19 }, @@ -74,7 +94,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 20 }, @@ -83,7 +105,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 27 }, @@ -92,7 +118,11 @@ "token": "`user`@`localhost`", "value": "user@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 28 }, @@ -101,7 +131,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 46 }, @@ -110,7 +142,9 @@ "token": "PROCEDURE", "value": "PROCEDURE", "keyword": "PROCEDURE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 47 }, @@ -119,7 +153,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 56 }, @@ -128,7 +164,9 @@ "token": "`multiDBqueryRun_V12`", "value": "multiDBqueryRun_V12", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 57 }, @@ -137,7 +175,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 78 }, @@ -146,7 +186,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 79 }, @@ -155,7 +197,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 81 }, @@ -164,7 +208,9 @@ "token": "`query`", "value": "query", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 82 }, @@ -173,7 +219,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 89 }, @@ -182,7 +230,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 90 }, @@ -191,7 +241,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 94 }, @@ -200,7 +252,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 95 }, @@ -209,7 +263,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 96 }, @@ -218,7 +274,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 98 }, @@ -227,7 +285,9 @@ "token": "`table_name_var`", "value": "table_name_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 99 }, @@ -236,7 +296,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 115 }, @@ -245,7 +307,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 116 }, @@ -254,7 +318,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 123 }, @@ -263,7 +329,11 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 124 }, @@ -272,7 +342,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 127 }, @@ -281,7 +353,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 128 }, @@ -290,7 +364,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 129 }, @@ -299,7 +375,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 130 }, @@ -308,7 +386,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 132 }, @@ -317,7 +397,9 @@ "token": "`columns_used_var`", "value": "columns_used_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 133 }, @@ -326,7 +408,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 151 }, @@ -335,7 +419,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 152 }, @@ -344,7 +430,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 156 }, @@ -353,7 +441,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 157 }, @@ -362,7 +452,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 158 }, @@ -371,7 +463,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 160 }, @@ -380,7 +474,9 @@ "token": "`where_text_var`", "value": "where_text_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 161 }, @@ -389,7 +485,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 177 }, @@ -398,7 +496,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 178 }, @@ -407,7 +507,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 182 }, @@ -416,7 +518,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 183 }, @@ -425,7 +529,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 184 }, @@ -434,7 +540,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 186 }, @@ -443,7 +551,9 @@ "token": "`separator_value_var`", "value": "separator_value_var", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 187 }, @@ -452,7 +562,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 208 }, @@ -461,7 +573,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 209 }, @@ -470,7 +584,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 216 }, @@ -479,7 +595,9 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 217 }, @@ -488,7 +606,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 220 }, @@ -497,7 +617,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 221 }, @@ -506,7 +628,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 222 }, @@ -515,7 +639,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 223 }, @@ -524,7 +650,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 230 }, @@ -533,7 +661,11 @@ "token": "'Query: SingleDB → MultiDB (All DBs) + run it'", "value": "Query: SingleDB → MultiDB (All DBs) + run it", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 231 }, @@ -542,7 +674,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 277 }, @@ -551,7 +685,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 278 }, @@ -560,7 +696,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 281 }, @@ -569,7 +707,9 @@ "token": "DETERMINISTIC", "value": "DETERMINISTIC", "keyword": "DETERMINISTIC", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 282 }, @@ -578,7 +718,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 295 }, @@ -587,7 +729,9 @@ "token": "MODIFIES SQL DATA", "value": "MODIFIES SQL DATA", "keyword": "MODIFIES SQL DATA", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 296 }, @@ -596,7 +740,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 313 }, @@ -605,7 +751,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 314 }, @@ -614,7 +762,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 326 }, @@ -623,7 +773,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 327 }, @@ -632,7 +784,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 334 }, @@ -641,7 +795,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 335 }, @@ -650,7 +806,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 340 }, @@ -659,7 +817,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 341 }, @@ -668,7 +828,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 344 }, @@ -677,7 +839,9 @@ "token": "@TABLE_NAME", "value": "TABLE_NAME", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 345 }, @@ -686,7 +850,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 356 }, @@ -695,7 +861,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 357 }, @@ -704,7 +872,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 358 }, @@ -713,7 +883,9 @@ "token": "table_name_var", "value": "table_name_var", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 359 }, @@ -722,7 +894,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 373 }, @@ -731,7 +905,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 374 }, @@ -740,7 +916,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 375 }, @@ -749,7 +927,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 378 }, @@ -758,7 +938,9 @@ "token": "@WHERE_TEXT", "value": "WHERE_TEXT", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 379 }, @@ -767,7 +949,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 390 }, @@ -776,7 +960,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 391 }, @@ -785,7 +971,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 392 }, @@ -794,7 +982,9 @@ "token": "where_text_var", "value": "where_text_var", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 393 }, @@ -803,7 +993,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 407 }, @@ -812,7 +1004,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 408 }, @@ -821,7 +1015,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 409 }, @@ -830,7 +1026,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 412 }, @@ -839,7 +1037,9 @@ "token": "@COLUMNS_USED", "value": "COLUMNS_USED", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 413 }, @@ -848,7 +1048,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 426 }, @@ -857,7 +1059,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 427 }, @@ -866,7 +1070,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 428 }, @@ -875,7 +1081,9 @@ "token": "columns_used_var", "value": "columns_used_var", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 429 }, @@ -884,7 +1092,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 445 }, @@ -893,7 +1103,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 446 }, @@ -902,7 +1114,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 447 }, @@ -911,7 +1125,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 450 }, @@ -920,7 +1136,9 @@ "token": "@MULTIDB_QUERY", "value": "MULTIDB_QUERY", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 451 }, @@ -929,7 +1147,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 465 }, @@ -938,7 +1158,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 466 }, @@ -947,7 +1169,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 467 }, @@ -956,7 +1180,9 @@ "token": "CONCAT", "value": "CONCAT", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 468 }, @@ -965,7 +1191,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 474 }, @@ -974,7 +1202,9 @@ "token": "'SELECT \"$MULTIDB\" FROM `$MULTIDB`.'", "value": "SELECT \"$MULTIDB\" FROM `$MULTIDB`.", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 475 }, @@ -983,7 +1213,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 511 }, @@ -992,7 +1224,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 512 }, @@ -1001,7 +1235,9 @@ "token": "@TABLE_NAME", "value": "TABLE_NAME", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 513 }, @@ -1010,7 +1246,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 524 }, @@ -1019,7 +1257,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 525 }, @@ -1028,7 +1268,9 @@ "token": "@WHERE_TEXT", "value": "WHERE_TEXT", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 526 }, @@ -1037,7 +1279,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 537 }, @@ -1046,7 +1290,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 538 }, @@ -1055,7 +1301,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 539 }, @@ -1064,7 +1312,11 @@ "token": "-- EXECUTION --", "value": "-- EXECUTION --", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 541 }, @@ -1073,7 +1325,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 556 }, @@ -1082,7 +1336,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 557 }, @@ -1091,7 +1347,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 563 }, @@ -1100,7 +1358,9 @@ "token": "TEMPORARY", "value": "TEMPORARY", "keyword": "TEMPORARY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 564 }, @@ -1109,7 +1369,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 573 }, @@ -1118,7 +1380,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 574 }, @@ -1127,7 +1391,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 579 }, @@ -1136,7 +1402,9 @@ "token": "`MULTIDB_TEMP_DB_TBL_COLS`", "value": "MULTIDB_TEMP_DB_TBL_COLS", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 580 }, @@ -1145,7 +1413,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 606 }, @@ -1154,7 +1424,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 607 }, @@ -1163,7 +1435,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 609 }, @@ -1172,7 +1446,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 610 }, @@ -1181,7 +1457,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 616 }, @@ -1190,7 +1468,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 617 }, @@ -1199,7 +1479,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 618 }, @@ -1208,7 +1490,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 619 }, @@ -1217,7 +1501,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 623 }, @@ -1226,7 +1512,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 624 }, @@ -1235,7 +1523,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 625 }, @@ -1244,7 +1534,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 628 }, @@ -1253,7 +1545,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 634 }, @@ -1262,7 +1556,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 635 }, @@ -1271,7 +1567,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 647 }, @@ -1280,7 +1578,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 648 }, @@ -1289,7 +1589,9 @@ "token": "TABLE_NAME", "value": "TABLE_NAME", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 649 }, @@ -1298,7 +1600,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 659 }, @@ -1307,7 +1611,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 660 }, @@ -1316,7 +1622,9 @@ "token": "COLUMN_NAME", "value": "COLUMN_NAME", "keyword": "COLUMN_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 661 }, @@ -1325,7 +1633,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 672 }, @@ -1334,7 +1644,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 675 }, @@ -1343,7 +1655,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 679 }, @@ -1352,7 +1666,9 @@ "token": "INFORMATION_SCHEMA", "value": "INFORMATION_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 680 }, @@ -1361,7 +1677,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 698 }, @@ -1370,7 +1688,9 @@ "token": "COLUMNS", "value": "COLUMNS", "keyword": "COLUMNS", - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 699 }, @@ -1379,7 +1699,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 706 }, @@ -1388,7 +1710,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 709 }, @@ -1397,7 +1721,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 714 }, @@ -1406,7 +1732,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 719 }, @@ -1415,7 +1743,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 731 }, @@ -1424,7 +1754,9 @@ "token": "NOT IN", "value": "NOT IN", "keyword": "NOT IN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 39, "position": 732 }, @@ -1433,7 +1765,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 738 }, @@ -1442,7 +1776,9 @@ "token": "'mysql'", "value": "mysql", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 739 }, @@ -1451,7 +1787,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 746 }, @@ -1460,7 +1798,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 747 }, @@ -1469,7 +1809,9 @@ "token": "'test'", "value": "test", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 748 }, @@ -1478,7 +1820,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 754 }, @@ -1487,7 +1831,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 755 }, @@ -1496,7 +1842,9 @@ "token": "'tmp'", "value": "tmp", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 756 }, @@ -1505,7 +1853,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 761 }, @@ -1514,7 +1864,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 762 }, @@ -1523,7 +1875,9 @@ "token": "'information_schema'", "value": "information_schema", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 763 }, @@ -1532,7 +1886,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 783 }, @@ -1541,7 +1897,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 784 }, @@ -1550,7 +1908,9 @@ "token": "'sys'", "value": "sys", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 785 }, @@ -1559,7 +1919,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 790 }, @@ -1568,7 +1930,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 791 }, @@ -1577,7 +1941,9 @@ "token": "'performance_schema'", "value": "performance_schema", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 792 }, @@ -1586,7 +1952,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 812 }, @@ -1595,7 +1963,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 813 }, @@ -1604,7 +1974,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 814 }, @@ -1613,7 +1985,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 817 }, @@ -1622,7 +1996,9 @@ "token": "TABLE_NAME", "value": "TABLE_NAME", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 822 }, @@ -1631,7 +2007,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 832 }, @@ -1640,7 +2018,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 833 }, @@ -1649,7 +2029,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 834 }, @@ -1658,7 +2040,9 @@ "token": "@TABLE_NAME", "value": "TABLE_NAME", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 835 }, @@ -1667,7 +2051,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 846 }, @@ -1676,7 +2062,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 847 }, @@ -1685,7 +2073,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 850 }, @@ -1694,7 +2084,9 @@ "token": "FIND_IN_SET", "value": "FIND_IN_SET", "keyword": "FIND_IN_SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 855 }, @@ -1703,7 +2095,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 866 }, @@ -1712,7 +2106,9 @@ "token": "COLUMN_NAME", "value": "COLUMN_NAME", "keyword": "COLUMN_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 867 }, @@ -1721,7 +2117,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 878 }, @@ -1730,7 +2128,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 879 }, @@ -1739,7 +2139,9 @@ "token": "@COLUMNS_USED", "value": "COLUMNS_USED", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 880 }, @@ -1748,7 +2150,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 893 }, @@ -1757,7 +2161,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 894 }, @@ -1766,7 +2172,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 895 }, @@ -1775,7 +2183,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 896 }, @@ -1784,7 +2194,9 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 897 }, @@ -1793,7 +2205,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 900 }, @@ -1802,7 +2216,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 901 }, @@ -1811,7 +2227,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 909 }, @@ -1820,7 +2238,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 912 }, @@ -1829,7 +2249,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 924 }, @@ -1838,7 +2260,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 925 }, @@ -1847,7 +2271,9 @@ "token": "TABLE_NAME", "value": "TABLE_NAME", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 928 }, @@ -1856,7 +2282,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 938 }, @@ -1865,7 +2293,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 939 }, @@ -1874,7 +2304,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 941 }, @@ -1883,7 +2315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 947 }, @@ -1892,7 +2326,9 @@ "token": "GROUP_CONCAT", "value": "GROUP_CONCAT", "keyword": "GROUP_CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 948 }, @@ -1901,7 +2337,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 960 }, @@ -1910,7 +2348,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 961 }, @@ -1919,7 +2359,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 968 }, @@ -1928,7 +2370,9 @@ "token": "@MULTIDB_QUERY", "value": "MULTIDB_QUERY", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 969 }, @@ -1937,7 +2381,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 983 }, @@ -1946,7 +2392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 984 }, @@ -1955,7 +2403,9 @@ "token": "'$MULTIDB'", "value": "$MULTIDB", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 985 }, @@ -1964,7 +2414,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 995 }, @@ -1973,7 +2425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 996 }, @@ -1982,7 +2436,9 @@ "token": "CONCAT", "value": "CONCAT", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 997 }, @@ -1991,7 +2447,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1003 }, @@ -2000,7 +2458,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1004 }, @@ -2009,7 +2469,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1006 }, @@ -2018,7 +2480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1007 }, @@ -2027,7 +2491,9 @@ "token": "TABLE_SCHEMA", "value": "TABLE_SCHEMA", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1008 }, @@ -2036,7 +2502,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1020 }, @@ -2045,7 +2513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1021 }, @@ -2054,7 +2524,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1022 }, @@ -2063,7 +2535,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1024 }, @@ -2072,7 +2546,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1025 }, @@ -2081,7 +2557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1026 }, @@ -2090,7 +2568,9 @@ "token": "SEPARATOR", "value": "SEPARATOR", "keyword": "SEPARATOR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1027 }, @@ -2099,7 +2579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1036 }, @@ -2108,7 +2590,9 @@ "token": "\"\\nUNION ALL\\n\"", "value": "\nUNION ALL\n", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 2, "position": 1037 }, @@ -2117,7 +2601,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1052 }, @@ -2126,7 +2612,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1053 }, @@ -2135,7 +2623,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1054 }, @@ -2144,7 +2634,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1058 }, @@ -2153,7 +2645,9 @@ "token": "@stmt_sql", "value": "stmt_sql", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 1059 }, @@ -2162,7 +2656,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1068 }, @@ -2171,7 +2667,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1069 }, @@ -2180,7 +2678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1073 }, @@ -2189,7 +2689,9 @@ "token": "`MULTIDB_TEMP_DB_TBL_COLS`", "value": "MULTIDB_TEMP_DB_TBL_COLS", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 1074 }, @@ -2198,7 +2700,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1100 }, @@ -2207,7 +2711,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1101 }, @@ -2216,7 +2722,9 @@ "token": "PREPARE", "value": "PREPARE", "keyword": "PREPARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1103 }, @@ -2225,7 +2733,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1110 }, @@ -2234,7 +2744,9 @@ "token": "stmt", "value": "stmt", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1111 }, @@ -2243,7 +2755,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1115 }, @@ -2252,7 +2766,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1116 }, @@ -2261,7 +2777,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1120 }, @@ -2270,7 +2788,9 @@ "token": "@stmt_sql", "value": "stmt_sql", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 1, "position": 1121 }, @@ -2279,7 +2799,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1130 }, @@ -2288,7 +2810,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1131 }, @@ -2297,7 +2821,9 @@ "token": "EXECUTE", "value": "EXECUTE", "keyword": "EXECUTE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1132 }, @@ -2306,7 +2832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1139 }, @@ -2315,7 +2843,9 @@ "token": "stmt", "value": "stmt", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1140 }, @@ -2324,7 +2854,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1144 }, @@ -2333,7 +2865,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1145 }, @@ -2342,7 +2876,9 @@ "token": "DEALLOCATE", "value": "DEALLOCATE", "keyword": "DEALLOCATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1146 }, @@ -2351,7 +2887,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1156 }, @@ -2360,7 +2898,9 @@ "token": "PREPARE", "value": "PREPARE", "keyword": "PREPARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1157 }, @@ -2369,7 +2909,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1164 }, @@ -2378,7 +2920,9 @@ "token": "stmt", "value": "stmt", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1165 }, @@ -2387,7 +2931,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1169 }, @@ -2396,7 +2942,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1170 }, @@ -2405,7 +2953,9 @@ "token": "END", "value": "END", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1171 }, @@ -2414,7 +2964,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 1174 }, @@ -2423,7 +2975,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1176 }, @@ -2432,7 +2986,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@128" + }, "flags": 4, "position": 1178 }, @@ -2441,7 +2997,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1180 }, @@ -2450,7 +3008,9 @@ "token": "-- Functions", "value": "-- Functions", "keyword": null, - "type": 4, + "type": { + "@type": "@128" + }, "flags": 4, "position": 1181 }, @@ -2459,7 +3019,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1193 }, @@ -2468,7 +3030,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@128" + }, "flags": 4, "position": 1194 }, @@ -2477,7 +3041,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1196 }, @@ -2486,7 +3052,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1197 }, @@ -2495,7 +3063,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1206 }, @@ -2504,7 +3074,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 1207 }, @@ -2513,7 +3085,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1209 }, @@ -2522,7 +3096,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1210 }, @@ -2531,7 +3107,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1216 }, @@ -2540,7 +3118,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1217 }, @@ -2549,7 +3129,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1224 }, @@ -2558,7 +3140,9 @@ "token": "`root`@`localhost`", "value": "root@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 4, "position": 1225 }, @@ -2567,7 +3151,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1243 }, @@ -2576,7 +3162,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1244 }, @@ -2585,7 +3173,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1252 }, @@ -2594,7 +3184,9 @@ "token": "`attrParentShiftIds`", "value": "attrParentShiftIds", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 1253 }, @@ -2603,7 +3195,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1273 }, @@ -2612,7 +3206,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1274 }, @@ -2621,7 +3217,9 @@ "token": "`parent_id`", "value": "parent_id", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 1275 }, @@ -2630,7 +3228,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1286 }, @@ -2639,7 +3239,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 1287 }, @@ -2648,7 +3250,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1291 }, @@ -2657,7 +3261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1292 }, @@ -2666,7 +3272,9 @@ "token": "`option_id_shift`", "value": "option_id_shift", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 1293 }, @@ -2675,7 +3283,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1310 }, @@ -2684,7 +3294,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1311 }, @@ -2693,7 +3305,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1314 }, @@ -2702,7 +3316,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1315 }, @@ -2711,7 +3327,9 @@ "token": "`option_value_id_shift`", "value": "option_value_id_shift", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 1316 }, @@ -2720,7 +3338,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1339 }, @@ -2729,7 +3349,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1340 }, @@ -2738,7 +3360,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1343 }, @@ -2747,7 +3371,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1344 }, @@ -2756,7 +3382,9 @@ "token": "RETURNS", "value": "RETURNS", "keyword": "RETURNS", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1345 }, @@ -2765,7 +3393,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1352 }, @@ -2774,7 +3404,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 1353 }, @@ -2783,7 +3415,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1357 }, @@ -2792,7 +3426,9 @@ "token": "CHARSET", "value": "CHARSET", "keyword": "CHARSET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 1358 }, @@ -2801,7 +3437,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1365 }, @@ -2810,7 +3448,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1366 }, @@ -2819,7 +3459,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1373 }, @@ -2828,7 +3470,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1374 }, @@ -2837,7 +3481,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1381 }, @@ -2846,7 +3492,9 @@ "token": "utf8mb4_unicode_520_ci", "value": "utf8mb4_unicode_520_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1382 }, @@ -2855,7 +3503,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1404 }, @@ -2864,7 +3514,9 @@ "token": "DETERMINISTIC", "value": "DETERMINISTIC", "keyword": "DETERMINISTIC", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1405 }, @@ -2873,7 +3525,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1418 }, @@ -2882,7 +3536,9 @@ "token": "READS SQL DATA", "value": "READS SQL DATA", "keyword": "READS SQL DATA", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 1419 }, @@ -2891,7 +3547,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1433 }, @@ -2900,7 +3558,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 1434 }, @@ -2909,7 +3569,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1446 }, @@ -2918,7 +3580,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1447 }, @@ -2927,7 +3591,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1454 }, @@ -2936,7 +3602,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1455 }, @@ -2945,7 +3613,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1460 }, @@ -2954,7 +3624,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1463 }, @@ -2963,7 +3635,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1470 }, @@ -2972,7 +3646,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1471 }, @@ -2981,7 +3657,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1472 }, @@ -2990,7 +3668,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1473 }, @@ -2999,7 +3679,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1476 }, @@ -3008,7 +3690,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1477 }, @@ -3017,7 +3701,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1485 }, @@ -3026,7 +3712,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 1486 }, @@ -3035,7 +3723,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1493 }, @@ -3044,7 +3734,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 1494 }, @@ -3053,7 +3745,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1495 }, @@ -3062,7 +3756,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1496 }, @@ -3071,7 +3767,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1499 }, @@ -3080,7 +3778,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1506 }, @@ -3089,7 +3789,9 @@ "token": "pair_count", "value": "pair_count", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1507 }, @@ -3098,7 +3800,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1517 }, @@ -3107,7 +3811,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1518 }, @@ -3116,7 +3822,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1521 }, @@ -3125,7 +3833,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1522 }, @@ -3134,7 +3844,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1530 }, @@ -3143,7 +3855,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1531 }, @@ -3152,7 +3866,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1534 }, @@ -3161,7 +3877,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1541 }, @@ -3170,7 +3888,9 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1542 }, @@ -3179,7 +3899,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1548 }, @@ -3188,7 +3910,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 1549 }, @@ -3197,7 +3921,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1553 }, @@ -3206,7 +3932,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 1554 }, @@ -3215,7 +3943,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1561 }, @@ -3224,7 +3954,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1562 }, @@ -3233,7 +3965,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1564 }, @@ -3242,7 +3976,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1565 }, @@ -3251,7 +3987,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1569 }, @@ -3260,7 +3998,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1576 }, @@ -3269,7 +4009,9 @@ "token": "pair", "value": "pair", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1577 }, @@ -3278,7 +4020,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1581 }, @@ -3287,7 +4031,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1582 }, @@ -3296,7 +4042,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1589 }, @@ -3305,7 +4053,9 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 1590 }, @@ -3314,7 +4064,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1593 }, @@ -3323,7 +4075,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1594 }, @@ -3332,7 +4086,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 1595 }, @@ -3341,7 +4097,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1602 }, @@ -3350,7 +4108,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1603 }, @@ -3359,7 +4119,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1605 }, @@ -3368,7 +4130,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1606 }, @@ -3377,7 +4141,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1609 }, @@ -3386,7 +4152,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1616 }, @@ -3395,7 +4163,9 @@ "token": "oid", "value": "oid", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1617 }, @@ -3404,7 +4174,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1620 }, @@ -3413,7 +4185,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1621 }, @@ -3422,7 +4196,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1624 }, @@ -3431,7 +4207,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 1625 }, @@ -3440,7 +4218,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1632 }, @@ -3449,7 +4229,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1633 }, @@ -3458,7 +4240,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1635 }, @@ -3467,7 +4251,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1636 }, @@ -3476,7 +4262,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1639 }, @@ -3485,7 +4273,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1646 }, @@ -3494,7 +4284,9 @@ "token": "vid", "value": "vid", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1647 }, @@ -3503,7 +4295,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1650 }, @@ -3512,7 +4306,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1651 }, @@ -3521,7 +4317,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1654 }, @@ -3530,7 +4328,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 1655 }, @@ -3539,7 +4339,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1662 }, @@ -3548,7 +4350,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1663 }, @@ -3557,7 +4361,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1665 }, @@ -3566,7 +4372,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1666 }, @@ -3575,7 +4383,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1670 }, @@ -3584,7 +4394,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1673 }, @@ -3593,7 +4405,9 @@ "token": "pair_count", "value": "pair_count", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1674 }, @@ -3602,7 +4416,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1684 }, @@ -3611,7 +4427,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1685 }, @@ -3620,7 +4438,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1686 }, @@ -3629,7 +4449,9 @@ "token": "substrCount", "value": "substrCount", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1687 }, @@ -3638,7 +4460,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1698 }, @@ -3647,7 +4471,9 @@ "token": "parent_id", "value": "parent_id", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1699 }, @@ -3656,7 +4482,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1708 }, @@ -3665,7 +4493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1709 }, @@ -3674,7 +4504,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1710 }, @@ -3683,7 +4515,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1713 }, @@ -3692,7 +4526,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1714 }, @@ -3701,7 +4537,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 1715 }, @@ -3710,7 +4548,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1716 }, @@ -3719,7 +4559,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 1717 }, @@ -3728,7 +4570,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1718 }, @@ -3737,7 +4581,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1719 }, @@ -3746,7 +4592,9 @@ "token": "WHILE", "value": "WHILE", "keyword": "WHILE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 1723 }, @@ -3755,7 +4603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1728 }, @@ -3764,7 +4614,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1729 }, @@ -3773,7 +4625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1730 }, @@ -3782,7 +4636,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1731 }, @@ -3791,7 +4647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1732 }, @@ -3800,7 +4658,9 @@ "token": "pair_count", "value": "pair_count", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1733 }, @@ -3809,7 +4669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1743 }, @@ -3818,7 +4680,9 @@ "token": "DO", "value": "DO", "keyword": "DO", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 1744 }, @@ -3827,7 +4691,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1746 }, @@ -3836,7 +4702,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1751 }, @@ -3845,7 +4713,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1754 }, @@ -3854,7 +4724,9 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1755 }, @@ -3863,7 +4735,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1761 }, @@ -3872,7 +4746,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1762 }, @@ -3881,7 +4757,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1763 }, @@ -3890,7 +4768,9 @@ "token": "CONCAT", "value": "CONCAT", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 1764 }, @@ -3899,7 +4779,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1770 }, @@ -3908,7 +4790,9 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1771 }, @@ -3917,7 +4801,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1777 }, @@ -3926,7 +4812,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1778 }, @@ -3935,7 +4823,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 1779 }, @@ -3944,7 +4834,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1781 }, @@ -3953,7 +4845,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1782 }, @@ -3962,7 +4856,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1783 }, @@ -3971,7 +4867,9 @@ "token": "<=", "value": "<=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1784 }, @@ -3980,7 +4878,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1786 }, @@ -3989,7 +4889,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 1787 }, @@ -3998,7 +4900,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1788 }, @@ -4007,7 +4911,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1789 }, @@ -4016,7 +4922,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1790 }, @@ -4025,7 +4933,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1792 }, @@ -4034,7 +4944,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1793 }, @@ -4043,7 +4955,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1794 }, @@ -4052,7 +4966,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1797 }, @@ -4061,7 +4977,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1798 }, @@ -4070,7 +4988,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1799 }, @@ -4079,7 +4999,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1800 }, @@ -4088,7 +5010,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1806 }, @@ -4097,7 +5021,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1809 }, @@ -4106,7 +5032,9 @@ "token": "pair", "value": "pair", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1810 }, @@ -4115,7 +5043,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1814 }, @@ -4124,7 +5054,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1815 }, @@ -4133,7 +5065,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1816 }, @@ -4142,7 +5076,9 @@ "token": "split", "value": "split", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1817 }, @@ -4151,7 +5087,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1822 }, @@ -4160,7 +5098,9 @@ "token": "parent_id", "value": "parent_id", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1823 }, @@ -4169,7 +5109,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1832 }, @@ -4178,7 +5120,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1833 }, @@ -4187,7 +5131,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1834 }, @@ -4196,7 +5142,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1837 }, @@ -4205,7 +5153,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1838 }, @@ -4214,7 +5164,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1839 }, @@ -4223,7 +5175,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1840 }, @@ -4232,7 +5186,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 1841 }, @@ -4241,7 +5197,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1842 }, @@ -4250,7 +5208,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 1843 }, @@ -4259,7 +5219,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1844 }, @@ -4268,7 +5230,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1845 }, @@ -4277,7 +5241,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1846 }, @@ -4286,7 +5252,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1852 }, @@ -4295,7 +5263,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1855 }, @@ -4304,7 +5274,9 @@ "token": "oid", "value": "oid", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1856 }, @@ -4313,7 +5285,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1859 }, @@ -4322,7 +5296,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1860 }, @@ -4331,7 +5307,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1861 }, @@ -4340,7 +5318,9 @@ "token": "split", "value": "split", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1862 }, @@ -4349,7 +5329,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1867 }, @@ -4358,7 +5340,9 @@ "token": "pair", "value": "pair", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1868 }, @@ -4367,7 +5351,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1872 }, @@ -4376,7 +5362,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1873 }, @@ -4385,7 +5373,9 @@ "token": "'-'", "value": "-", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1874 }, @@ -4394,7 +5384,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1877 }, @@ -4403,7 +5395,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1878 }, @@ -4412,7 +5406,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 1879 }, @@ -4421,7 +5417,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1880 }, @@ -4430,7 +5428,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1881 }, @@ -4439,7 +5439,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 1882 }, @@ -4448,7 +5450,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1883 }, @@ -4457,7 +5461,9 @@ "token": "option_id_shift", "value": "option_id_shift", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1884 }, @@ -4466,7 +5472,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1899 }, @@ -4475,7 +5483,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1900 }, @@ -4484,7 +5494,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1905 }, @@ -4493,7 +5505,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1908 }, @@ -4502,7 +5516,9 @@ "token": "vid", "value": "vid", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1909 }, @@ -4511,7 +5527,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1912 }, @@ -4520,7 +5538,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1913 }, @@ -4529,7 +5549,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1914 }, @@ -4538,7 +5560,9 @@ "token": "split", "value": "split", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1915 }, @@ -4547,7 +5571,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1920 }, @@ -4556,7 +5582,9 @@ "token": "pair", "value": "pair", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1921 }, @@ -4565,7 +5593,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1925 }, @@ -4574,7 +5604,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1926 }, @@ -4583,7 +5615,9 @@ "token": "'-'", "value": "-", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1927 }, @@ -4592,7 +5626,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1930 }, @@ -4601,7 +5637,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1931 }, @@ -4610,7 +5648,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 1932 }, @@ -4619,7 +5659,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1933 }, @@ -4628,7 +5670,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1934 }, @@ -4637,7 +5681,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 1935 }, @@ -4646,7 +5692,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1936 }, @@ -4655,7 +5703,9 @@ "token": "option_value_id_shift", "value": "option_value_id_shift", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1937 }, @@ -4664,7 +5714,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1958 }, @@ -4673,7 +5725,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1959 }, @@ -4682,7 +5736,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 1965 }, @@ -4691,7 +5747,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1968 }, @@ -4700,7 +5758,9 @@ "token": "pair", "value": "pair", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1969 }, @@ -4709,7 +5769,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1973 }, @@ -4718,7 +5780,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 1974 }, @@ -4727,7 +5791,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1975 }, @@ -4736,7 +5802,9 @@ "token": "CONCAT", "value": "CONCAT", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 1976 }, @@ -4745,7 +5813,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1982 }, @@ -4754,7 +5824,9 @@ "token": "oid", "value": "oid", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1983 }, @@ -4763,7 +5835,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1986 }, @@ -4772,7 +5846,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1987 }, @@ -4781,7 +5857,9 @@ "token": "'-'", "value": "-", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 1988 }, @@ -4790,7 +5868,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1991 }, @@ -4799,7 +5879,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1992 }, @@ -4808,7 +5890,9 @@ "token": "vid", "value": "vid", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 1993 }, @@ -4817,7 +5901,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1996 }, @@ -4826,7 +5912,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 1997 }, @@ -4835,7 +5923,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1998 }, @@ -4844,7 +5934,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2003 }, @@ -4853,7 +5945,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2006 }, @@ -4862,7 +5956,9 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2007 }, @@ -4871,7 +5967,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2013 }, @@ -4880,7 +5978,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2014 }, @@ -4889,7 +5989,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2015 }, @@ -4898,7 +6000,9 @@ "token": "CONCAT", "value": "CONCAT", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2016 }, @@ -4907,7 +6011,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2022 }, @@ -4916,7 +6022,9 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2023 }, @@ -4925,7 +6033,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2029 }, @@ -4934,7 +6044,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2030 }, @@ -4943,7 +6055,9 @@ "token": "pair", "value": "pair", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2031 }, @@ -4952,7 +6066,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2035 }, @@ -4961,7 +6077,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2036 }, @@ -4970,7 +6088,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2037 }, @@ -4979,7 +6099,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2043 }, @@ -4988,7 +6110,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2046 }, @@ -4997,7 +6121,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2047 }, @@ -5006,7 +6132,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2048 }, @@ -5015,7 +6143,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2049 }, @@ -5024,7 +6154,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2050 }, @@ -5033,7 +6165,9 @@ "token": "i", "value": "i", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2051 }, @@ -5042,7 +6176,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2052 }, @@ -5051,7 +6187,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 2053 }, @@ -5060,7 +6198,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2054 }, @@ -5069,7 +6209,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2055 }, @@ -5078,7 +6220,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2056 }, @@ -5087,7 +6231,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2057 }, @@ -5096,7 +6242,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2060 }, @@ -5105,7 +6253,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2063 }, @@ -5114,7 +6264,9 @@ "token": "WHILE", "value": "WHILE", "keyword": "WHILE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2064 }, @@ -5123,7 +6275,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2069 }, @@ -5132,7 +6286,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2070 }, @@ -5141,7 +6297,9 @@ "token": "RETURN", "value": "RETURN", "keyword": "RETURN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2074 }, @@ -5150,7 +6308,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2080 }, @@ -5159,7 +6319,9 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2081 }, @@ -5168,7 +6330,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2087 }, @@ -5177,7 +6341,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2088 }, @@ -5186,7 +6352,9 @@ "token": "END", "value": "END", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2089 }, @@ -5195,7 +6363,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 2092 }, @@ -5204,7 +6374,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2094 }, @@ -5213,7 +6385,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2096 }, @@ -5222,7 +6396,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2105 }, @@ -5231,7 +6407,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 2106 }, @@ -5240,7 +6418,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2108 }, @@ -5249,7 +6429,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2109 }, @@ -5258,7 +6440,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2115 }, @@ -5267,7 +6451,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2116 }, @@ -5276,7 +6462,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2123 }, @@ -5285,7 +6473,9 @@ "token": "`user`@`localhost`", "value": "user@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 4, "position": 2124 }, @@ -5294,7 +6484,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2142 }, @@ -5303,7 +6495,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2143 }, @@ -5312,7 +6506,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2151 }, @@ -5321,7 +6517,9 @@ "token": "`split`", "value": "split", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 2152 }, @@ -5330,7 +6528,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2159 }, @@ -5339,7 +6539,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2160 }, @@ -5348,7 +6550,9 @@ "token": "`string`", "value": "string", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 2161 }, @@ -5357,7 +6561,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2169 }, @@ -5366,7 +6572,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 2170 }, @@ -5375,7 +6583,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2174 }, @@ -5384,7 +6594,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2175 }, @@ -5393,7 +6605,9 @@ "token": "`delim`", "value": "delim", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 2176 }, @@ -5402,7 +6616,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2183 }, @@ -5411,7 +6627,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 2184 }, @@ -5420,7 +6638,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2188 }, @@ -5429,7 +6649,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2189 }, @@ -5438,7 +6660,9 @@ "token": "`n`", "value": "n", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 2190 }, @@ -5447,7 +6671,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2193 }, @@ -5456,7 +6682,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2194 }, @@ -5465,7 +6693,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2197 }, @@ -5474,7 +6704,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2198 }, @@ -5483,7 +6715,9 @@ "token": "RETURNS", "value": "RETURNS", "keyword": "RETURNS", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2199 }, @@ -5492,7 +6726,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2206 }, @@ -5501,7 +6737,9 @@ "token": "TEXT", "value": "TEXT", "keyword": "TEXT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 9, "position": 2207 }, @@ -5510,7 +6748,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2211 }, @@ -5519,7 +6759,9 @@ "token": "CHARSET", "value": "CHARSET", "keyword": "CHARSET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2212 }, @@ -5528,7 +6770,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2219 }, @@ -5537,7 +6781,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2220 }, @@ -5546,7 +6792,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2227 }, @@ -5555,7 +6803,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2228 }, @@ -5564,7 +6814,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2235 }, @@ -5573,7 +6825,9 @@ "token": "utf8mb4_unicode_520_ci", "value": "utf8mb4_unicode_520_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2236 }, @@ -5582,7 +6836,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2258 }, @@ -5591,7 +6847,9 @@ "token": "DETERMINISTIC", "value": "DETERMINISTIC", "keyword": "DETERMINISTIC", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2259 }, @@ -5600,7 +6858,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2272 }, @@ -5609,7 +6869,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 2273 }, @@ -5618,7 +6880,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2285 }, @@ -5627,7 +6891,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2286 }, @@ -5636,7 +6902,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2293 }, @@ -5645,7 +6913,9 @@ "token": "RETURN", "value": "RETURN", "keyword": "RETURN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2294 }, @@ -5654,7 +6924,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2300 }, @@ -5663,7 +6935,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 2301 }, @@ -5672,7 +6946,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2303 }, @@ -5681,7 +6957,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2304 }, @@ -5690,7 +6968,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2309 }, @@ -5699,7 +6979,9 @@ "token": "LENGTH", "value": "LENGTH", "keyword": "LENGTH", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2310 }, @@ -5708,7 +6990,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2316 }, @@ -5717,7 +7001,9 @@ "token": "string", "value": "string", "keyword": "STRING", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2317 }, @@ -5726,7 +7012,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2323 }, @@ -5735,7 +7023,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2324 }, @@ -5744,7 +7034,9 @@ "token": "-", "value": "-", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 2325 }, @@ -5753,7 +7045,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2326 }, @@ -5762,7 +7056,9 @@ "token": "LENGTH", "value": "LENGTH", "keyword": "LENGTH", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2327 }, @@ -5771,7 +7067,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2333 }, @@ -5780,7 +7078,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 2334 }, @@ -5789,7 +7089,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2341 }, @@ -5798,7 +7100,9 @@ "token": "string", "value": "string", "keyword": "STRING", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2342 }, @@ -5807,7 +7111,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2348 }, @@ -5816,7 +7122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2349 }, @@ -5825,7 +7133,9 @@ "token": "delim", "value": "delim", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2350 }, @@ -5834,7 +7144,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2355 }, @@ -5843,7 +7155,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2356 }, @@ -5852,7 +7166,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 2357 }, @@ -5861,7 +7177,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2359 }, @@ -5870,7 +7188,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2360 }, @@ -5879,7 +7199,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2361 }, @@ -5888,7 +7210,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2362 }, @@ -5897,7 +7221,9 @@ "token": "/", "value": "/", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 2363 }, @@ -5906,7 +7232,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2364 }, @@ -5915,7 +7243,9 @@ "token": "LENGTH", "value": "LENGTH", "keyword": "LENGTH", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2365 }, @@ -5924,7 +7254,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2371 }, @@ -5933,7 +7265,9 @@ "token": "delim", "value": "delim", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2372 }, @@ -5942,7 +7276,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2377 }, @@ -5951,7 +7287,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2378 }, @@ -5960,7 +7298,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2379 }, @@ -5969,7 +7309,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2380 }, @@ -5978,7 +7320,9 @@ "token": "n", "value": "n", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2381 }, @@ -5987,7 +7331,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2382 }, @@ -5996,7 +7342,9 @@ "token": "-", "value": "-", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 2383 }, @@ -6005,7 +7353,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2384 }, @@ -6014,7 +7364,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2385 }, @@ -6023,7 +7375,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2386 }, @@ -6032,7 +7386,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2387 }, @@ -6041,7 +7397,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2392 }, @@ -6050,7 +7408,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2396 }, @@ -6059,7 +7419,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2397 }, @@ -6068,7 +7430,9 @@ "token": "SUBSTRING_INDEX", "value": "SUBSTRING_INDEX", "keyword": "SUBSTRING_INDEX", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2402 }, @@ -6077,7 +7441,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2417 }, @@ -6086,7 +7452,9 @@ "token": "SUBSTRING_INDEX", "value": "SUBSTRING_INDEX", "keyword": "SUBSTRING_INDEX", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2418 }, @@ -6095,7 +7463,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2433 }, @@ -6104,7 +7474,9 @@ "token": "string", "value": "string", "keyword": "STRING", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2434 }, @@ -6113,7 +7485,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2440 }, @@ -6122,7 +7496,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2441 }, @@ -6131,7 +7507,9 @@ "token": "delim", "value": "delim", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2442 }, @@ -6140,7 +7518,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2447 }, @@ -6149,7 +7529,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2448 }, @@ -6158,7 +7540,9 @@ "token": "n", "value": "n", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2449 }, @@ -6167,7 +7551,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2450 }, @@ -6176,7 +7562,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2451 }, @@ -6185,7 +7573,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2452 }, @@ -6194,7 +7584,9 @@ "token": "delim", "value": "delim", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2453 }, @@ -6203,7 +7595,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2458 }, @@ -6212,7 +7606,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2459 }, @@ -6221,7 +7617,9 @@ "token": "-1", "value": -1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 8, "position": 2460 }, @@ -6230,7 +7628,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2462 }, @@ -6239,7 +7639,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2463 }, @@ -6248,7 +7650,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2464 }, @@ -6257,7 +7661,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 2465 }, @@ -6266,7 +7672,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2467 }, @@ -6275,7 +7683,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2469 }, @@ -6284,7 +7694,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2478 }, @@ -6293,7 +7705,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 2479 }, @@ -6302,7 +7716,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2481 }, @@ -6311,7 +7727,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2482 }, @@ -6320,7 +7738,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2488 }, @@ -6329,7 +7749,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2489 }, @@ -6338,7 +7760,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2496 }, @@ -6347,7 +7771,9 @@ "token": "`root`@`localhost`", "value": "root@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 4, "position": 2497 }, @@ -6356,7 +7782,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2515 }, @@ -6365,7 +7793,9 @@ "token": "FUNCTION", "value": "FUNCTION", "keyword": "FUNCTION", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2516 }, @@ -6374,7 +7804,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2524 }, @@ -6383,7 +7815,9 @@ "token": "`substrCount`", "value": "substrCount", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 2525 }, @@ -6392,7 +7826,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2538 }, @@ -6401,7 +7837,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2539 }, @@ -6410,7 +7848,9 @@ "token": "`s`", "value": "s", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 2540 }, @@ -6419,7 +7859,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2543 }, @@ -6428,7 +7870,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2544 }, @@ -6437,7 +7881,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2551 }, @@ -6446,7 +7892,9 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2552 }, @@ -6455,7 +7903,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2555 }, @@ -6464,7 +7914,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2556 }, @@ -6473,7 +7925,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2557 }, @@ -6482,7 +7936,9 @@ "token": "`ss`", "value": "ss", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 2558 }, @@ -6491,7 +7947,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2562 }, @@ -6500,7 +7958,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2563 }, @@ -6509,7 +7969,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2570 }, @@ -6518,7 +7980,9 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2571 }, @@ -6527,7 +7991,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2574 }, @@ -6536,7 +8002,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2575 }, @@ -6545,7 +8013,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2576 }, @@ -6554,7 +8024,9 @@ "token": "RETURNS", "value": "RETURNS", "keyword": "RETURNS", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2577 }, @@ -6563,7 +8035,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2584 }, @@ -6572,7 +8046,9 @@ "token": "TINYINT", "value": "TINYINT", "keyword": "TINYINT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2585 }, @@ -6581,7 +8057,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2592 }, @@ -6590,7 +8068,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2593 }, @@ -6599,7 +8079,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2594 }, @@ -6608,7 +8090,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2595 }, @@ -6617,7 +8101,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2596 }, @@ -6626,7 +8112,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2604 }, @@ -6635,7 +8123,9 @@ "token": "DETERMINISTIC", "value": "DETERMINISTIC", "keyword": "DETERMINISTIC", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2605 }, @@ -6644,7 +8134,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2618 }, @@ -6653,7 +8145,9 @@ "token": "READS SQL DATA", "value": "READS SQL DATA", "keyword": "READS SQL DATA", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 2619 }, @@ -6662,7 +8156,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2633 }, @@ -6671,7 +8167,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 7, "position": 2634 }, @@ -6680,7 +8178,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2646 }, @@ -6689,7 +8189,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2647 }, @@ -6698,7 +8200,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2654 }, @@ -6707,7 +8211,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2655 }, @@ -6716,7 +8222,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2660 }, @@ -6725,7 +8233,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2661 }, @@ -6734,7 +8244,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2668 }, @@ -6743,7 +8255,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2669 }, @@ -6752,7 +8266,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2674 }, @@ -6761,7 +8277,9 @@ "token": "TINYINT", "value": "TINYINT", "keyword": "TINYINT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2675 }, @@ -6770,7 +8288,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2682 }, @@ -6779,7 +8299,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2683 }, @@ -6788,7 +8310,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2684 }, @@ -6797,7 +8321,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2685 }, @@ -6806,7 +8332,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2686 }, @@ -6815,7 +8343,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2694 }, @@ -6824,7 +8354,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2695 }, @@ -6833,7 +8365,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2696 }, @@ -6842,7 +8376,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2703 }, @@ -6851,7 +8387,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2704 }, @@ -6860,7 +8398,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2712 }, @@ -6869,7 +8409,9 @@ "token": "TINYINT", "value": "TINYINT", "keyword": "TINYINT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2713 }, @@ -6878,7 +8420,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2720 }, @@ -6887,7 +8431,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2721 }, @@ -6896,7 +8442,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2722 }, @@ -6905,7 +8453,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2723 }, @@ -6914,7 +8464,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2724 }, @@ -6923,7 +8475,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2732 }, @@ -6932,7 +8486,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2733 }, @@ -6941,7 +8497,9 @@ "token": "DECLARE", "value": "DECLARE", "keyword": "DECLARE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2734 }, @@ -6950,7 +8508,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2741 }, @@ -6959,7 +8519,9 @@ "token": "CONTINUE", "value": "CONTINUE", "keyword": "CONTINUE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2742 }, @@ -6968,7 +8530,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2750 }, @@ -6977,7 +8541,9 @@ "token": "HANDLER", "value": "HANDLER", "keyword": "HANDLER", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2751 }, @@ -6986,7 +8552,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2758 }, @@ -6995,7 +8563,9 @@ "token": "FOR", "value": "FOR", "keyword": "FOR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2759 }, @@ -7004,7 +8574,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2762 }, @@ -7013,7 +8585,9 @@ "token": "SQLSTATE", "value": "SQLSTATE", "keyword": "SQLSTATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2763 }, @@ -7022,7 +8596,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2771 }, @@ -7031,7 +8607,9 @@ "token": "'02000'", "value": "02000", "keyword": null, - "type": 7, + "type": { + "@type": "@68" + }, "flags": 1, "position": 2772 }, @@ -7040,7 +8618,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2779 }, @@ -7049,7 +8629,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2780 }, @@ -7058,7 +8640,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2783 }, @@ -7067,7 +8651,9 @@ "token": "s", "value": "s", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2784 }, @@ -7076,7 +8662,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2785 }, @@ -7085,7 +8673,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2786 }, @@ -7094,7 +8684,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2787 }, @@ -7103,7 +8695,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2788 }, @@ -7112,7 +8706,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2792 }, @@ -7121,7 +8717,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2793 }, @@ -7130,7 +8728,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2795 }, @@ -7139,7 +8739,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2798 }, @@ -7148,7 +8750,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2799 }, @@ -7157,7 +8761,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2804 }, @@ -7166,7 +8772,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2805 }, @@ -7175,7 +8783,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2806 }, @@ -7184,7 +8794,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2807 }, @@ -7193,7 +8805,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2808 }, @@ -7202,7 +8816,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2809 }, @@ -7211,7 +8827,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2810 }, @@ -7220,7 +8838,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2813 }, @@ -7229,7 +8849,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2814 }, @@ -7238,7 +8860,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2822 }, @@ -7247,7 +8871,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2823 }, @@ -7256,7 +8882,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2824 }, @@ -7265,7 +8893,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2825 }, @@ -7274,7 +8904,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2826 }, @@ -7283,7 +8915,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2827 }, @@ -7292,7 +8926,9 @@ "token": "REPEAT", "value": "REPEAT", "keyword": "REPEAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 2829 }, @@ -7301,7 +8937,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2835 }, @@ -7310,7 +8948,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 2836 }, @@ -7319,7 +8959,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2838 }, @@ -7328,7 +8970,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2839 }, @@ -7337,7 +8981,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2842 }, @@ -7346,7 +8992,9 @@ "token": "ISNULL", "value": "ISNULL", "keyword": "ISNULL", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2843 }, @@ -7355,7 +9003,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2849 }, @@ -7364,7 +9014,9 @@ "token": "s", "value": "s", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2850 }, @@ -7373,7 +9025,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2851 }, @@ -7382,7 +9036,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2852 }, @@ -7391,7 +9047,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2853 }, @@ -7400,7 +9058,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2856 }, @@ -7409,7 +9069,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2857 }, @@ -7418,7 +9080,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2865 }, @@ -7427,7 +9091,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2866 }, @@ -7436,7 +9102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2867 }, @@ -7445,7 +9113,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2868 }, @@ -7454,7 +9124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2869 }, @@ -7463,7 +9135,9 @@ "token": "THEN", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2870 }, @@ -7472,7 +9146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2874 }, @@ -7481,7 +9157,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2875 }, @@ -7490,7 +9168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2878 }, @@ -7499,7 +9179,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2879 }, @@ -7508,7 +9190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2887 }, @@ -7517,7 +9201,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2888 }, @@ -7526,7 +9212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2889 }, @@ -7535,7 +9223,9 @@ "token": "LOCATE", "value": "LOCATE", "keyword": "LOCATE", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2890 }, @@ -7544,7 +9234,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2896 }, @@ -7553,7 +9245,9 @@ "token": "ss", "value": "ss", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2897 }, @@ -7562,7 +9256,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2899 }, @@ -7571,7 +9267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2900 }, @@ -7580,7 +9278,9 @@ "token": "s", "value": "s", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2901 }, @@ -7589,7 +9289,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2902 }, @@ -7598,7 +9300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2903 }, @@ -7607,7 +9311,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2904 }, @@ -7616,7 +9322,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2912 }, @@ -7625,7 +9333,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2913 }, @@ -7634,7 +9344,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2914 }, @@ -7643,7 +9355,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 2915 }, @@ -7652,7 +9366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2917 }, @@ -7661,7 +9377,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2918 }, @@ -7670,7 +9388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2926 }, @@ -7679,7 +9399,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2927 }, @@ -7688,7 +9410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2928 }, @@ -7697,7 +9421,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2929 }, @@ -7706,7 +9432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2930 }, @@ -7715,7 +9443,9 @@ "token": "THEN", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 2931 }, @@ -7724,7 +9454,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2935 }, @@ -7733,7 +9465,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2936 }, @@ -7742,7 +9476,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2939 }, @@ -7751,7 +9487,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2940 }, @@ -7760,7 +9498,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2945 }, @@ -7769,7 +9509,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2946 }, @@ -7778,7 +9520,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2947 }, @@ -7787,7 +9531,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 2948 }, @@ -7796,7 +9542,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2953 }, @@ -7805,7 +9553,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 2954 }, @@ -7814,7 +9564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2955 }, @@ -7823,7 +9575,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2956 }, @@ -7832,7 +9586,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2957 }, @@ -7841,7 +9597,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2958 }, @@ -7850,7 +9608,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 11, "position": 2959 }, @@ -7859,7 +9619,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2962 }, @@ -7868,7 +9630,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2963 }, @@ -7877,7 +9641,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2971 }, @@ -7886,7 +9652,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 2972 }, @@ -7895,7 +9663,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2973 }, @@ -7904,7 +9674,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 2974 }, @@ -7913,7 +9685,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2982 }, @@ -7922,7 +9696,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 1, "position": 2983 }, @@ -7931,7 +9707,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2984 }, @@ -7940,7 +9718,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 2985 }, @@ -7949,7 +9729,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2986 }, @@ -7958,7 +9740,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2987 }, @@ -7967,7 +9751,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2988 }, @@ -7976,7 +9762,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2991 }, @@ -7985,7 +9773,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 2992 }, @@ -7994,7 +9784,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 2994 }, @@ -8003,7 +9795,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2995 }, @@ -8012,7 +9806,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 2996 }, @@ -8021,7 +9817,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2999 }, @@ -8030,7 +9828,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 3000 }, @@ -8039,7 +9839,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 3002 }, @@ -8048,7 +9850,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3003 }, @@ -8057,7 +9861,9 @@ "token": "UNTIL", "value": "UNTIL", "keyword": "UNTIL", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 3004 }, @@ -8066,7 +9872,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3009 }, @@ -8075,7 +9883,9 @@ "token": "ISNULL", "value": "ISNULL", "keyword": "ISNULL", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 3010 }, @@ -8084,7 +9894,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 3016 }, @@ -8093,7 +9905,9 @@ "token": "s", "value": "s", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 3017 }, @@ -8102,7 +9916,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 3018 }, @@ -8111,7 +9927,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3019 }, @@ -8120,7 +9938,9 @@ "token": "OR", "value": "OR", "keyword": "OR", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 3020 }, @@ -8129,7 +9949,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3022 }, @@ -8138,7 +9960,9 @@ "token": "OFFSET_I", "value": "OFFSET_I", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 3023 }, @@ -8147,7 +9971,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3031 }, @@ -8156,7 +9982,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 2, "position": 3032 }, @@ -8165,7 +9993,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3033 }, @@ -8174,7 +10004,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 3034 }, @@ -8183,7 +10015,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3035 }, @@ -8192,7 +10026,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 1, "position": 3036 }, @@ -8201,7 +10037,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3039 }, @@ -8210,7 +10048,9 @@ "token": "REPEAT", "value": "REPEAT", "keyword": "REPEAT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 35, "position": 3040 }, @@ -8219,7 +10059,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 3046 }, @@ -8228,7 +10070,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3047 }, @@ -8237,7 +10081,9 @@ "token": "RETURN", "value": "RETURN", "keyword": "RETURN", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 3, "position": 3049 }, @@ -8246,7 +10092,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3055 }, @@ -8255,7 +10103,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@11" + }, "flags": 33, "position": 3056 }, @@ -8264,7 +10114,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 3061 }, @@ -8273,7 +10125,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3062 }, @@ -8282,7 +10136,9 @@ "token": "END", "value": "END", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 3063 }, @@ -8291,7 +10147,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 3066 }, @@ -8300,7 +10158,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3068 }, @@ -8309,7 +10169,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@4" + }, "flags": 0, "position": 3070 }, @@ -8318,7 +10180,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3079 }, @@ -8327,7 +10191,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": 3080 }, @@ -8336,30 +10202,32 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 3081 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": null } - ], - "count": 926, - "idx": 926 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@2" }, @@ -8423,7 +10291,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -8439,7 +10308,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -8453,7 +10323,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -8467,7 +10338,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -8483,35 +10355,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@72" - }, - { - "@type": "@73" - }, - { - "@type": "@74" - }, - { - "@type": "@75" - }, - { - "@type": "@76" - }, - { - "@type": "@77" - }, - { - "@type": "@78" - }, - { - "@type": "@79" - }, { "@type": "@80" }, @@ -8656,9 +10505,6 @@ { "@type": "@127" }, - { - "@type": "@128" - }, { "@type": "@129" }, @@ -9078,6 +10924,33 @@ }, { "@type": "@268" + }, + { + "@type": "@269" + }, + { + "@type": "@270" + }, + { + "@type": "@271" + }, + { + "@type": "@272" + }, + { + "@type": "@273" + }, + { + "@type": "@274" + }, + { + "@type": "@275" + }, + { + "@type": "@276" + }, + { + "@type": "@277" } ], "options": { @@ -9159,7 +11032,8 @@ "value": "utf8mb4_unicode_520_ci" } } - } + }, + "lowercase": false }, "parameters": [ { @@ -9173,7 +11047,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -9187,7 +11062,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -9201,38 +11077,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@327" - }, - { - "@type": "@328" - }, - { - "@type": "@329" - }, - { - "@type": "@330" - }, - { - "@type": "@331" - }, - { - "@type": "@332" - }, - { - "@type": "@333" - }, - { - "@type": "@334" - }, - { - "@type": "@335" - }, { "@type": "@336" }, @@ -9958,6 +11808,33 @@ }, { "@type": "@577" + }, + { + "@type": "@578" + }, + { + "@type": "@579" + }, + { + "@type": "@580" + }, + { + "@type": "@581" + }, + { + "@type": "@582" + }, + { + "@type": "@583" + }, + { + "@type": "@584" + }, + { + "@type": "@585" + }, + { + "@type": "@586" } ], "options": { @@ -10038,7 +11915,8 @@ "value": "utf8mb4_unicode_520_ci" } } - } + }, + "lowercase": false }, "parameters": [ { @@ -10052,7 +11930,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -10066,7 +11945,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -10080,38 +11960,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@628" - }, - { - "@type": "@629" - }, - { - "@type": "@630" - }, - { - "@type": "@631" - }, - { - "@type": "@632" - }, - { - "@type": "@633" - }, - { - "@type": "@634" - }, - { - "@type": "@635" - }, - { - "@type": "@636" - }, { "@type": "@637" }, @@ -10288,6 +12142,33 @@ }, { "@type": "@695" + }, + { + "@type": "@696" + }, + { + "@type": "@697" + }, + { + "@type": "@698" + }, + { + "@type": "@699" + }, + { + "@type": "@700" + }, + { + "@type": "@701" + }, + { + "@type": "@702" + }, + { + "@type": "@703" + }, + { + "@type": "@704" } ], "options": { @@ -10360,7 +12241,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "parameters": [ { @@ -10376,7 +12258,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } }, { @@ -10392,38 +12275,12 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false } } ], "body": [ - { - "@type": "@746" - }, - { - "@type": "@747" - }, - { - "@type": "@748" - }, - { - "@type": "@749" - }, - { - "@type": "@750" - }, - { - "@type": "@751" - }, - { - "@type": "@752" - }, - { - "@type": "@753" - }, - { - "@type": "@754" - }, { "@type": "@755" }, @@ -10924,6 +12781,33 @@ }, { "@type": "@921" + }, + { + "@type": "@922" + }, + { + "@type": "@923" + }, + { + "@type": "@924" + }, + { + "@type": "@925" + }, + { + "@type": "@926" + }, + { + "@type": "@927" + }, + { + "@type": "@928" + }, + { + "@type": "@929" + }, + { + "@type": "@930" } ], "options": { @@ -10951,9 +12835,7 @@ "last": 919 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateSchema.out b/tests/data/parser/parseCreateSchema.out index c6ec6fb7e..e6c8b1969 100644 --- a/tests/data/parser/parseCreateSchema.out +++ b/tests/data/parser/parseCreateSchema.out @@ -2,18 +2,26 @@ "query": "CREATE DATABASE IF NOT EXISTS pma DEFAULT CHARSET 'utf8';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE DATABASE IF NOT EXISTS pma DEFAULT CHARSET 'utf8';", "len": 57, "last": 57, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "DATABASE", "value": "DATABASE", "keyword": "DATABASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 16 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +87,11 @@ "token": "pma", "value": "pma", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 30 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 34 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -103,7 +133,11 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 50 }, @@ -112,30 +146,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 56 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -187,9 +225,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateSchemaErr.out b/tests/data/parser/parseCreateSchemaErr.out index c6fd28e98..3df559e12 100644 --- a/tests/data/parser/parseCreateSchemaErr.out +++ b/tests/data/parser/parseCreateSchemaErr.out @@ -2,18 +2,26 @@ "query": "CREATE SCHEMA IF NOT EXISTS pma ENGINE='InnoDB' DEFAULT CHARSET 'utf8'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE SCHEMA IF NOT EXISTS pma ENGINE='InnoDB' DEFAULT CHARSET 'utf8'", "len": 70, "last": 70, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "SCHEMA", "value": "SCHEMA", "keyword": "SCHEMA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -67,7 +87,11 @@ "token": "pma", "value": "pma", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 28 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -85,7 +111,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 32 }, @@ -94,7 +122,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 38 }, @@ -103,7 +135,11 @@ "token": "'InnoDB'", "value": "InnoDB", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 39 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -121,7 +159,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 48 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -139,30 +181,34 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "@17" + }, "flags": 1, "position": 64 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -207,9 +253,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -217,7 +261,7 @@ [ "Unrecognized statement type.", { - "@type": "@10" + "@type": "@13" }, 0 ] diff --git a/tests/data/parser/parseCreateTable.out b/tests/data/parser/parseCreateTable.out index 55fbd0569..bbd9f6b48 100644 --- a/tests/data/parser/parseCreateTable.out +++ b/tests/data/parser/parseCreateTable.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE IF NOT EXISTS users (\n `id` INT NOT NULL AUTO_INCREMENT,\n username VARCHAR(64) NULL,\n `password` VARCHAR(256) DEFAULT '123456',\n CONSTRAINT pk_id PRIMARY KEY (`id`),\n UNIQUE (username)\n) ENGINE=InnoDB;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE IF NOT EXISTS users (\n `id` INT NOT NULL AUTO_INCREMENT,\n username VARCHAR(64) NULL,\n `password` VARCHAR(256) DEFAULT '123456',\n CONSTRAINT pk_id PRIMARY KEY (`id`),\n UNIQUE (username)\n) ENGINE=InnoDB;", "len": 229, "last": 229, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 65, + "idx": 65, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +87,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -94,7 +124,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +135,11 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 39 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -121,7 +159,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 44 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,7 +181,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 48 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -157,7 +203,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 57 }, @@ -166,7 +214,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 71 }, @@ -175,7 +225,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -184,7 +236,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 77 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -202,7 +258,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 86 }, @@ -211,7 +269,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 93 }, @@ -220,7 +280,11 @@ "token": "64", "value": 64, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 94 }, @@ -229,7 +293,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 96 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -247,7 +315,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 98 }, @@ -256,7 +326,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 102 }, @@ -265,7 +337,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -274,7 +348,9 @@ "token": "`password`", "value": "password", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 108 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -292,7 +370,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 119 }, @@ -301,7 +381,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 126 }, @@ -310,7 +392,9 @@ "token": "256", "value": 256, "keyword": null, - "type": 6, + "type": { + "@type": "@31" + }, "flags": 0, "position": 127 }, @@ -319,7 +403,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 130 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -337,7 +425,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 132 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -355,7 +447,11 @@ "token": "'123456'", "value": "123456", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 140 }, @@ -364,7 +460,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 148 }, @@ -373,7 +471,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -382,7 +482,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 154 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 164 }, @@ -400,7 +504,9 @@ "token": "pk_id", "value": "pk_id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 165 }, @@ -409,7 +515,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 170 }, @@ -418,7 +526,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 171 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -436,7 +548,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 183 }, @@ -445,7 +559,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@17" + }, "flags": 2, "position": 184 }, @@ -454,7 +570,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 188 }, @@ -463,7 +581,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 189 }, @@ -472,7 +592,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 190 }, @@ -481,7 +603,9 @@ "token": "UNIQUE", "value": "UNIQUE", "keyword": "UNIQUE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 195 }, @@ -490,7 +614,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 201 }, @@ -499,7 +625,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 202 }, @@ -508,7 +636,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 203 }, @@ -517,7 +647,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 211 }, @@ -526,7 +658,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 212 }, @@ -535,7 +669,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 213 }, @@ -544,7 +680,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 214 }, @@ -553,7 +691,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 215 }, @@ -562,7 +702,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 221 }, @@ -571,7 +713,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 222 }, @@ -580,30 +724,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 228 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@73" + }, "flags": 0, "position": null } - ], - "count": 65, - "idx": 65 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -643,7 +791,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -668,7 +817,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -692,7 +842,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -787,9 +938,7 @@ "last": 63 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable10.out b/tests/data/parser/parseCreateTable10.out index d8bb48190..07506f7ed 100644 --- a/tests/data/parser/parseCreateTable10.out +++ b/tests/data/parser/parseCreateTable10.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `trips2` (\n `id` bigint(20) UNSIGNED NOT NULL PRIMARY KEY COMMENT 'Unique trip Id',\n `trip_code` int(11) UNSIGNED NOT NULL COMMENT 'Trip code',\n `trip_category` int(11) UNSIGNED NOT NULL COMMENT 'Trip category',\n `trip_date` date NOT NULL COMMENT 'The trip date'\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'The trips';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `trips2` (\n `id` bigint(20) UNSIGNED NOT NULL PRIMARY KEY COMMENT 'Unique trip Id',\n `trip_code` int(11) UNSIGNED NOT NULL COMMENT 'Trip code',\n `trip_category` int(11) UNSIGNED NOT NULL COMMENT 'Trip category',\n `trip_date` date NOT NULL COMMENT 'The trip date'\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'The trips';", "len": 383, "last": 383, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 95, + "idx": 95, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`trips2`", "value": "trips2", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 22 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +113,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 28 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +135,9 @@ "token": "bigint", "value": "BIGINT", "keyword": "BIGINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 33 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 39 }, @@ -121,7 +157,11 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 40 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 42 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -148,7 +192,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -166,7 +214,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 53 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -184,7 +236,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 62 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -202,7 +258,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 74 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -220,7 +280,11 @@ "token": "'Unique trip Id'", "value": "Unique trip Id", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 82 }, @@ -229,7 +293,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 98 }, @@ -238,7 +304,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -247,7 +315,9 @@ "token": "`trip_code`", "value": "trip_code", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 104 }, @@ -256,7 +326,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -265,7 +337,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 116 }, @@ -274,7 +348,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 119 }, @@ -283,7 +359,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 120 }, @@ -292,7 +370,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 122 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -310,7 +392,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 124 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -328,7 +414,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 133 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -346,7 +436,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 142 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -364,7 +458,9 @@ "token": "'Trip code'", "value": "Trip code", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 150 }, @@ -373,7 +469,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 161 }, @@ -382,7 +480,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -391,7 +491,9 @@ "token": "`trip_category`", "value": "trip_category", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 167 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -409,7 +513,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 183 }, @@ -418,7 +524,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 186 }, @@ -427,7 +535,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 187 }, @@ -436,7 +546,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 189 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 190 }, @@ -454,7 +568,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 191 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -472,7 +590,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 200 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 208 }, @@ -490,7 +612,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 209 }, @@ -499,7 +623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 216 }, @@ -508,7 +634,9 @@ "token": "'Trip category'", "value": "Trip category", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 217 }, @@ -517,7 +645,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 232 }, @@ -526,7 +656,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 233 }, @@ -535,7 +667,9 @@ "token": "`trip_date`", "value": "trip_date", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 238 }, @@ -544,7 +678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 249 }, @@ -553,7 +689,9 @@ "token": "date", "value": "date", "keyword": "DATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 250 }, @@ -562,7 +700,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 254 }, @@ -571,7 +711,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 255 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -589,7 +733,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 264 }, @@ -598,7 +744,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 271 }, @@ -607,7 +755,9 @@ "token": "'The trip date'", "value": "The trip date", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 272 }, @@ -616,7 +766,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 287 }, @@ -625,7 +777,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 288 }, @@ -634,7 +788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 289 }, @@ -643,7 +799,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 290 }, @@ -652,7 +810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 296 }, @@ -661,7 +821,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 297 }, @@ -670,7 +832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 298 }, @@ -679,7 +843,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 299 }, @@ -688,7 +856,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 305 }, @@ -697,7 +867,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 306 }, @@ -706,7 +878,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 321 }, @@ -715,7 +889,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 322 }, @@ -724,7 +900,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 323 }, @@ -733,7 +911,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@83" + }, "flags": 0, "position": 324 }, @@ -742,7 +922,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 331 }, @@ -751,7 +933,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 332 }, @@ -760,7 +944,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 339 }, @@ -769,7 +955,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 340 }, @@ -778,7 +966,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 341 }, @@ -787,7 +977,9 @@ "token": "utf8mb4_unicode_ci", "value": "utf8mb4_unicode_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@83" + }, "flags": 0, "position": 342 }, @@ -796,7 +988,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 360 }, @@ -805,7 +999,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 361 }, @@ -814,7 +1010,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 368 }, @@ -823,7 +1021,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 369 }, @@ -832,7 +1032,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 370 }, @@ -841,7 +1043,9 @@ "token": "'The trips'", "value": "The trips", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 371 }, @@ -850,30 +1054,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 382 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@103" + }, "flags": 0, "position": null } - ], - "count": 95, - "idx": 95 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -935,7 +1143,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -968,7 +1177,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1000,7 +1210,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1028,7 +1239,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1068,9 +1280,7 @@ "last": 93 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable11.out b/tests/data/parser/parseCreateTable11.out index 659bfe1a4..dc7705e70 100644 --- a/tests/data/parser/parseCreateTable11.out +++ b/tests/data/parser/parseCreateTable11.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `trips` (\n `id` bigint(20) UNSIGNED NOT NULL COMMENT 'Unique trip Id',\n `trip_category` int(11) UNSIGNED NOT NULL COMMENT 'Trip category',\n `trip_month` int(11) UNSIGNED NOT NULL COMMENT 'Trip month',\n `trip_date` date NOT NULL COMMENT 'The trip date'\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'The trips'\nPARTITION BY RANGE(trip_month) SUBPARTITION BY HASH(DAY(trip_date)) (\n PARTITION p_month_Jan\n VALUES\n LESS THAN (0) (\n SUBPARTITION p_month_Jan_day_0,\n SUBPARTITION p_month_Jan_day_1,\n SUBPARTITION p_month_Jan_day_2,\n SUBPARTITION p_month_Jan_day_3,\n SUBPARTITION p_month_Jan_day_4,\n SUBPARTITION p_month_Jan_day_5,\n SUBPARTITION p_month_Jan_day_6,\n SUBPARTITION p_month_Jan_day_7,\n SUBPARTITION p_month_Jan_day_8,\n SUBPARTITION p_month_Jan_day_9,\n SUBPARTITION p_month_Jan_day_10,\n SUBPARTITION p_month_Jan_day_11,\n SUBPARTITION p_month_Jan_day_12,\n SUBPARTITION p_month_Jan_day_13,\n SUBPARTITION p_month_Jan_day_14,\n SUBPARTITION p_month_Jan_day_15,\n SUBPARTITION p_month_Jan_day_16,\n SUBPARTITION p_month_Jan_day_17,\n SUBPARTITION p_month_Jan_day_18,\n SUBPARTITION p_month_Jan_day_19,\n SUBPARTITION p_month_Jan_day_20,\n SUBPARTITION p_month_Jan_day_21,\n SUBPARTITION p_month_Jan_day_22,\n SUBPARTITION p_month_Jan_day_23,\n SUBPARTITION p_month_Jan_day_24,\n SUBPARTITION p_month_Jan_day_25,\n SUBPARTITION p_month_Jan_day_26,\n SUBPARTITION p_month_Jan_day_27,\n SUBPARTITION p_month_Jan_day_28,\n SUBPARTITION p_month_Jan_day_29,\n SUBPARTITION p_month_Jan_day_30,\n SUBPARTITION p_month_Jan_day_31\n ),\n PARTITION p_month_Feb\n VALUES\n LESS THAN (1) (\n SUBPARTITION p_month_Feb_day_0,\n SUBPARTITION p_month_Feb_day_1,\n SUBPARTITION p_month_Feb_day_2,\n SUBPARTITION p_month_Feb_day_3,\n SUBPARTITION p_month_Feb_day_4,\n SUBPARTITION p_month_Feb_day_5,\n SUBPARTITION p_month_Feb_day_6,\n SUBPARTITION p_month_Feb_day_7,\n SUBPARTITION p_month_Feb_day_8,\n SUBPARTITION p_month_Feb_day_9,\n SUBPARTITION p_month_Feb_day_10,\n SUBPARTITION p_month_Feb_day_11,\n SUBPARTITION p_month_Feb_day_12,\n SUBPARTITION p_month_Feb_day_13,\n SUBPARTITION p_month_Feb_day_14,\n SUBPARTITION p_month_Feb_day_15,\n SUBPARTITION p_month_Feb_day_16,\n SUBPARTITION p_month_Feb_day_17,\n SUBPARTITION p_month_Feb_day_18,\n SUBPARTITION p_month_Feb_day_19,\n SUBPARTITION p_month_Feb_day_20,\n SUBPARTITION p_month_Feb_day_21,\n SUBPARTITION p_month_Feb_day_22,\n SUBPARTITION p_month_Feb_day_23,\n SUBPARTITION p_month_Feb_day_24,\n SUBPARTITION p_month_Feb_day_25,\n SUBPARTITION p_month_Feb_day_26,\n SUBPARTITION p_month_Feb_day_27,\n SUBPARTITION p_month_Feb_day_28,\n SUBPARTITION p_month_Feb_day_29,\n SUBPARTITION p_month_Feb_day_30,\n SUBPARTITION p_month_Feb_day_31\n ),\n PARTITION p_month_Mar\n VALUES\n LESS THAN (2) (\n SUBPARTITION p_month_Mar_day_0,\n SUBPARTITION p_month_Mar_day_1,\n SUBPARTITION p_month_Mar_day_2,\n SUBPARTITION p_month_Mar_day_3,\n SUBPARTITION p_month_Mar_day_4,\n SUBPARTITION p_month_Mar_day_5,\n SUBPARTITION p_month_Mar_day_6,\n SUBPARTITION p_month_Mar_day_7,\n SUBPARTITION p_month_Mar_day_8,\n SUBPARTITION p_month_Mar_day_9,\n SUBPARTITION p_month_Mar_day_10,\n SUBPARTITION p_month_Mar_day_11,\n SUBPARTITION p_month_Mar_day_12,\n SUBPARTITION p_month_Mar_day_13,\n SUBPARTITION p_month_Mar_day_14,\n SUBPARTITION p_month_Mar_day_15,\n SUBPARTITION p_month_Mar_day_16,\n SUBPARTITION p_month_Mar_day_17,\n SUBPARTITION p_month_Mar_day_18,\n SUBPARTITION p_month_Mar_day_19,\n SUBPARTITION p_month_Mar_day_20,\n SUBPARTITION p_month_Mar_day_21,\n SUBPARTITION p_month_Mar_day_22,\n SUBPARTITION p_month_Mar_day_23,\n SUBPARTITION p_month_Mar_day_24,\n SUBPARTITION p_month_Mar_day_25,\n SUBPARTITION p_month_Mar_day_26,\n SUBPARTITION p_month_Mar_day_27,\n SUBPARTITION p_month_Mar_day_28,\n SUBPARTITION p_month_Mar_day_29,\n SUBPARTITION p_month_Mar_day_30,\n SUBPARTITION p_month_Mar_day_31\n ),\n PARTITION p_month_Apr\n VALUES\n LESS THAN (3) (\n SUBPARTITION p_month_Apr_day_0,\n SUBPARTITION p_month_Apr_day_1,\n SUBPARTITION p_month_Apr_day_2,\n SUBPARTITION p_month_Apr_day_3,\n SUBPARTITION p_month_Apr_day_4,\n SUBPARTITION p_month_Apr_day_5,\n SUBPARTITION p_month_Apr_day_6,\n SUBPARTITION p_month_Apr_day_7,\n SUBPARTITION p_month_Apr_day_8,\n SUBPARTITION p_month_Apr_day_9,\n SUBPARTITION p_month_Apr_day_10,\n SUBPARTITION p_month_Apr_day_11,\n SUBPARTITION p_month_Apr_day_12,\n SUBPARTITION p_month_Apr_day_13,\n SUBPARTITION p_month_Apr_day_14,\n SUBPARTITION p_month_Apr_day_15,\n SUBPARTITION p_month_Apr_day_16,\n SUBPARTITION p_month_Apr_day_17,\n SUBPARTITION p_month_Apr_day_18,\n SUBPARTITION p_month_Apr_day_19,\n SUBPARTITION p_month_Apr_day_20,\n SUBPARTITION p_month_Apr_day_21,\n SUBPARTITION p_month_Apr_day_22,\n SUBPARTITION p_month_Apr_day_23,\n SUBPARTITION p_month_Apr_day_24,\n SUBPARTITION p_month_Apr_day_25,\n SUBPARTITION p_month_Apr_day_26,\n SUBPARTITION p_month_Apr_day_27,\n SUBPARTITION p_month_Apr_day_28,\n SUBPARTITION p_month_Apr_day_29,\n SUBPARTITION p_month_Apr_day_30,\n SUBPARTITION p_month_Apr_day_31\n ),\n PARTITION p_month_Mai\n VALUES\n LESS THAN (4) (\n SUBPARTITION p_month_Mai_day_0,\n SUBPARTITION p_month_Mai_day_1,\n SUBPARTITION p_month_Mai_day_2,\n SUBPARTITION p_month_Mai_day_3,\n SUBPARTITION p_month_Mai_day_4,\n SUBPARTITION p_month_Mai_day_5,\n SUBPARTITION p_month_Mai_day_6,\n SUBPARTITION p_month_Mai_day_7,\n SUBPARTITION p_month_Mai_day_8,\n SUBPARTITION p_month_Mai_day_9,\n SUBPARTITION p_month_Mai_day_10,\n SUBPARTITION p_month_Mai_day_11,\n SUBPARTITION p_month_Mai_day_12,\n SUBPARTITION p_month_Mai_day_13,\n SUBPARTITION p_month_Mai_day_14,\n SUBPARTITION p_month_Mai_day_15,\n SUBPARTITION p_month_Mai_day_16,\n SUBPARTITION p_month_Mai_day_17,\n SUBPARTITION p_month_Mai_day_18,\n SUBPARTITION p_month_Mai_day_19,\n SUBPARTITION p_month_Mai_day_20,\n SUBPARTITION p_month_Mai_day_21,\n SUBPARTITION p_month_Mai_day_22,\n SUBPARTITION p_month_Mai_day_23,\n SUBPARTITION p_month_Mai_day_24,\n SUBPARTITION p_month_Mai_day_25,\n SUBPARTITION p_month_Mai_day_26,\n SUBPARTITION p_month_Mai_day_27,\n SUBPARTITION p_month_Mai_day_28,\n SUBPARTITION p_month_Mai_day_29,\n SUBPARTITION p_month_Mai_day_30,\n SUBPARTITION p_month_Mai_day_31\n ),\n PARTITION p_month_Jun\n VALUES\n LESS THAN (5) (\n SUBPARTITION p_month_Jun_day_0,\n SUBPARTITION p_month_Jun_day_1,\n SUBPARTITION p_month_Jun_day_2,\n SUBPARTITION p_month_Jun_day_3,\n SUBPARTITION p_month_Jun_day_4,\n SUBPARTITION p_month_Jun_day_5,\n SUBPARTITION p_month_Jun_day_6,\n SUBPARTITION p_month_Jun_day_7,\n SUBPARTITION p_month_Jun_day_8,\n SUBPARTITION p_month_Jun_day_9,\n SUBPARTITION p_month_Jun_day_10,\n SUBPARTITION p_month_Jun_day_11,\n SUBPARTITION p_month_Jun_day_12,\n SUBPARTITION p_month_Jun_day_13,\n SUBPARTITION p_month_Jun_day_14,\n SUBPARTITION p_month_Jun_day_15,\n SUBPARTITION p_month_Jun_day_16,\n SUBPARTITION p_month_Jun_day_17,\n SUBPARTITION p_month_Jun_day_18,\n SUBPARTITION p_month_Jun_day_19,\n SUBPARTITION p_month_Jun_day_20,\n SUBPARTITION p_month_Jun_day_21,\n SUBPARTITION p_month_Jun_day_22,\n SUBPARTITION p_month_Jun_day_23,\n SUBPARTITION p_month_Jun_day_24,\n SUBPARTITION p_month_Jun_day_25,\n SUBPARTITION p_month_Jun_day_26,\n SUBPARTITION p_month_Jun_day_27,\n SUBPARTITION p_month_Jun_day_28,\n SUBPARTITION p_month_Jun_day_29,\n SUBPARTITION p_month_Jun_day_30,\n SUBPARTITION p_month_Jun_day_31\n ),\n PARTITION p_month_Jul\n VALUES\n LESS THAN (6) (\n SUBPARTITION p_month_Jul_day_0,\n SUBPARTITION p_month_Jul_day_1,\n SUBPARTITION p_month_Jul_day_2,\n SUBPARTITION p_month_Jul_day_3,\n SUBPARTITION p_month_Jul_day_4,\n SUBPARTITION p_month_Jul_day_5,\n SUBPARTITION p_month_Jul_day_6,\n SUBPARTITION p_month_Jul_day_7,\n SUBPARTITION p_month_Jul_day_8,\n SUBPARTITION p_month_Jul_day_9,\n SUBPARTITION p_month_Jul_day_10,\n SUBPARTITION p_month_Jul_day_11,\n SUBPARTITION p_month_Jul_day_12,\n SUBPARTITION p_month_Jul_day_13,\n SUBPARTITION p_month_Jul_day_14,\n SUBPARTITION p_month_Jul_day_15,\n SUBPARTITION p_month_Jul_day_16,\n SUBPARTITION p_month_Jul_day_17,\n SUBPARTITION p_month_Jul_day_18,\n SUBPARTITION p_month_Jul_day_19,\n SUBPARTITION p_month_Jul_day_20,\n SUBPARTITION p_month_Jul_day_21,\n SUBPARTITION p_month_Jul_day_22,\n SUBPARTITION p_month_Jul_day_23,\n SUBPARTITION p_month_Jul_day_24,\n SUBPARTITION p_month_Jul_day_25,\n SUBPARTITION p_month_Jul_day_26,\n SUBPARTITION p_month_Jul_day_27,\n SUBPARTITION p_month_Jul_day_28,\n SUBPARTITION p_month_Jul_day_29,\n SUBPARTITION p_month_Jul_day_30,\n SUBPARTITION p_month_Jul_day_31\n ),\n PARTITION p_month_Aug\n VALUES\n LESS THAN (7) (\n SUBPARTITION p_month_Aug_day_0,\n SUBPARTITION p_month_Aug_day_1,\n SUBPARTITION p_month_Aug_day_2,\n SUBPARTITION p_month_Aug_day_3,\n SUBPARTITION p_month_Aug_day_4,\n SUBPARTITION p_month_Aug_day_5,\n SUBPARTITION p_month_Aug_day_6,\n SUBPARTITION p_month_Aug_day_7,\n SUBPARTITION p_month_Aug_day_8,\n SUBPARTITION p_month_Aug_day_9,\n SUBPARTITION p_month_Aug_day_10,\n SUBPARTITION p_month_Aug_day_11,\n SUBPARTITION p_month_Aug_day_12,\n SUBPARTITION p_month_Aug_day_13,\n SUBPARTITION p_month_Aug_day_14,\n SUBPARTITION p_month_Aug_day_15,\n SUBPARTITION p_month_Aug_day_16,\n SUBPARTITION p_month_Aug_day_17,\n SUBPARTITION p_month_Aug_day_18,\n SUBPARTITION p_month_Aug_day_19,\n SUBPARTITION p_month_Aug_day_20,\n SUBPARTITION p_month_Aug_day_21,\n SUBPARTITION p_month_Aug_day_22,\n SUBPARTITION p_month_Aug_day_23,\n SUBPARTITION p_month_Aug_day_24,\n SUBPARTITION p_month_Aug_day_25,\n SUBPARTITION p_month_Aug_day_26,\n SUBPARTITION p_month_Aug_day_27,\n SUBPARTITION p_month_Aug_day_28,\n SUBPARTITION p_month_Aug_day_29,\n SUBPARTITION p_month_Aug_day_30,\n SUBPARTITION p_month_Aug_day_31\n ),\n PARTITION p_month_Sep\n VALUES\n LESS THAN (8) (\n SUBPARTITION p_month_Sep_day_0,\n SUBPARTITION p_month_Sep_day_1,\n SUBPARTITION p_month_Sep_day_2,\n SUBPARTITION p_month_Sep_day_3,\n SUBPARTITION p_month_Sep_day_4,\n SUBPARTITION p_month_Sep_day_5,\n SUBPARTITION p_month_Sep_day_6,\n SUBPARTITION p_month_Sep_day_7,\n SUBPARTITION p_month_Sep_day_8,\n SUBPARTITION p_month_Sep_day_9,\n SUBPARTITION p_month_Sep_day_10,\n SUBPARTITION p_month_Sep_day_11,\n SUBPARTITION p_month_Sep_day_12,\n SUBPARTITION p_month_Sep_day_13,\n SUBPARTITION p_month_Sep_day_14,\n SUBPARTITION p_month_Sep_day_15,\n SUBPARTITION p_month_Sep_day_16,\n SUBPARTITION p_month_Sep_day_17,\n SUBPARTITION p_month_Sep_day_18,\n SUBPARTITION p_month_Sep_day_19,\n SUBPARTITION p_month_Sep_day_20,\n SUBPARTITION p_month_Sep_day_21,\n SUBPARTITION p_month_Sep_day_22,\n SUBPARTITION p_month_Sep_day_23,\n SUBPARTITION p_month_Sep_day_24,\n SUBPARTITION p_month_Sep_day_25,\n SUBPARTITION p_month_Sep_day_26,\n SUBPARTITION p_month_Sep_day_27,\n SUBPARTITION p_month_Sep_day_28,\n SUBPARTITION p_month_Sep_day_29,\n SUBPARTITION p_month_Sep_day_30,\n SUBPARTITION p_month_Sep_day_31\n ),\n PARTITION p_month_Oct\n VALUES\n LESS THAN (9) (\n SUBPARTITION p_month_Oct_day_0,\n SUBPARTITION p_month_Oct_day_1,\n SUBPARTITION p_month_Oct_day_2,\n SUBPARTITION p_month_Oct_day_3,\n SUBPARTITION p_month_Oct_day_4,\n SUBPARTITION p_month_Oct_day_5,\n SUBPARTITION p_month_Oct_day_6,\n SUBPARTITION p_month_Oct_day_7,\n SUBPARTITION p_month_Oct_day_8,\n SUBPARTITION p_month_Oct_day_9,\n SUBPARTITION p_month_Oct_day_10,\n SUBPARTITION p_month_Oct_day_11,\n SUBPARTITION p_month_Oct_day_12,\n SUBPARTITION p_month_Oct_day_13,\n SUBPARTITION p_month_Oct_day_14,\n SUBPARTITION p_month_Oct_day_15,\n SUBPARTITION p_month_Oct_day_16,\n SUBPARTITION p_month_Oct_day_17,\n SUBPARTITION p_month_Oct_day_18,\n SUBPARTITION p_month_Oct_day_19,\n SUBPARTITION p_month_Oct_day_20,\n SUBPARTITION p_month_Oct_day_21,\n SUBPARTITION p_month_Oct_day_22,\n SUBPARTITION p_month_Oct_day_23,\n SUBPARTITION p_month_Oct_day_24,\n SUBPARTITION p_month_Oct_day_25,\n SUBPARTITION p_month_Oct_day_26,\n SUBPARTITION p_month_Oct_day_27,\n SUBPARTITION p_month_Oct_day_28,\n SUBPARTITION p_month_Oct_day_29,\n SUBPARTITION p_month_Oct_day_30,\n SUBPARTITION p_month_Oct_day_31\n ),\n PARTITION p_month_Nov\n VALUES\n LESS THAN (10) (\n SUBPARTITION p_month_Nov_day_0,\n SUBPARTITION p_month_Nov_day_1,\n SUBPARTITION p_month_Nov_day_2,\n SUBPARTITION p_month_Nov_day_3,\n SUBPARTITION p_month_Nov_day_4,\n SUBPARTITION p_month_Nov_day_5,\n SUBPARTITION p_month_Nov_day_6,\n SUBPARTITION p_month_Nov_day_7,\n SUBPARTITION p_month_Nov_day_8,\n SUBPARTITION p_month_Nov_day_9,\n SUBPARTITION p_month_Nov_day_10,\n SUBPARTITION p_month_Nov_day_11,\n SUBPARTITION p_month_Nov_day_12,\n SUBPARTITION p_month_Nov_day_13,\n SUBPARTITION p_month_Nov_day_14,\n SUBPARTITION p_month_Nov_day_15,\n SUBPARTITION p_month_Nov_day_16,\n SUBPARTITION p_month_Nov_day_17,\n SUBPARTITION p_month_Nov_day_18,\n SUBPARTITION p_month_Nov_day_19,\n SUBPARTITION p_month_Nov_day_20,\n SUBPARTITION p_month_Nov_day_21,\n SUBPARTITION p_month_Nov_day_22,\n SUBPARTITION p_month_Nov_day_23,\n SUBPARTITION p_month_Nov_day_24,\n SUBPARTITION p_month_Nov_day_25,\n SUBPARTITION p_month_Nov_day_26,\n SUBPARTITION p_month_Nov_day_27,\n SUBPARTITION p_month_Nov_day_28,\n SUBPARTITION p_month_Nov_day_29,\n SUBPARTITION p_month_Nov_day_30,\n SUBPARTITION p_month_Nov_day_31\n ),\n PARTITION p_month_Dec\n VALUES\n LESS THAN (11) (\n SUBPARTITION p_month_Dec_day_0,\n SUBPARTITION p_month_Dec_day_1,\n SUBPARTITION p_month_Dec_day_2,\n SUBPARTITION p_month_Dec_day_3,\n SUBPARTITION p_month_Dec_day_4,\n SUBPARTITION p_month_Dec_day_5,\n SUBPARTITION p_month_Dec_day_6,\n SUBPARTITION p_month_Dec_day_7,\n SUBPARTITION p_month_Dec_day_8,\n SUBPARTITION p_month_Dec_day_9,\n SUBPARTITION p_month_Dec_day_10,\n SUBPARTITION p_month_Dec_day_11,\n SUBPARTITION p_month_Dec_day_12,\n SUBPARTITION p_month_Dec_day_13,\n SUBPARTITION p_month_Dec_day_14,\n SUBPARTITION p_month_Dec_day_15,\n SUBPARTITION p_month_Dec_day_16,\n SUBPARTITION p_month_Dec_day_17,\n SUBPARTITION p_month_Dec_day_18,\n SUBPARTITION p_month_Dec_day_19,\n SUBPARTITION p_month_Dec_day_20,\n SUBPARTITION p_month_Dec_day_21,\n SUBPARTITION p_month_Dec_day_22,\n SUBPARTITION p_month_Dec_day_23,\n SUBPARTITION p_month_Dec_day_24,\n SUBPARTITION p_month_Dec_day_25,\n SUBPARTITION p_month_Dec_day_26,\n SUBPARTITION p_month_Dec_day_27,\n SUBPARTITION p_month_Dec_day_28,\n SUBPARTITION p_month_Dec_day_29,\n SUBPARTITION p_month_Dec_day_30,\n SUBPARTITION p_month_Dec_day_31\n )\n)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `trips` (\n `id` bigint(20) UNSIGNED NOT NULL COMMENT 'Unique trip Id',\n `trip_category` int(11) UNSIGNED NOT NULL COMMENT 'Trip category',\n `trip_month` int(11) UNSIGNED NOT NULL COMMENT 'Trip month',\n `trip_date` date NOT NULL COMMENT 'The trip date'\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'The trips'\nPARTITION BY RANGE(trip_month) SUBPARTITION BY HASH(DAY(trip_date)) (\n PARTITION p_month_Jan\n VALUES\n LESS THAN (0) (\n SUBPARTITION p_month_Jan_day_0,\n SUBPARTITION p_month_Jan_day_1,\n SUBPARTITION p_month_Jan_day_2,\n SUBPARTITION p_month_Jan_day_3,\n SUBPARTITION p_month_Jan_day_4,\n SUBPARTITION p_month_Jan_day_5,\n SUBPARTITION p_month_Jan_day_6,\n SUBPARTITION p_month_Jan_day_7,\n SUBPARTITION p_month_Jan_day_8,\n SUBPARTITION p_month_Jan_day_9,\n SUBPARTITION p_month_Jan_day_10,\n SUBPARTITION p_month_Jan_day_11,\n SUBPARTITION p_month_Jan_day_12,\n SUBPARTITION p_month_Jan_day_13,\n SUBPARTITION p_month_Jan_day_14,\n SUBPARTITION p_month_Jan_day_15,\n SUBPARTITION p_month_Jan_day_16,\n SUBPARTITION p_month_Jan_day_17,\n SUBPARTITION p_month_Jan_day_18,\n SUBPARTITION p_month_Jan_day_19,\n SUBPARTITION p_month_Jan_day_20,\n SUBPARTITION p_month_Jan_day_21,\n SUBPARTITION p_month_Jan_day_22,\n SUBPARTITION p_month_Jan_day_23,\n SUBPARTITION p_month_Jan_day_24,\n SUBPARTITION p_month_Jan_day_25,\n SUBPARTITION p_month_Jan_day_26,\n SUBPARTITION p_month_Jan_day_27,\n SUBPARTITION p_month_Jan_day_28,\n SUBPARTITION p_month_Jan_day_29,\n SUBPARTITION p_month_Jan_day_30,\n SUBPARTITION p_month_Jan_day_31\n ),\n PARTITION p_month_Feb\n VALUES\n LESS THAN (1) (\n SUBPARTITION p_month_Feb_day_0,\n SUBPARTITION p_month_Feb_day_1,\n SUBPARTITION p_month_Feb_day_2,\n SUBPARTITION p_month_Feb_day_3,\n SUBPARTITION p_month_Feb_day_4,\n SUBPARTITION p_month_Feb_day_5,\n SUBPARTITION p_month_Feb_day_6,\n SUBPARTITION p_month_Feb_day_7,\n SUBPARTITION p_month_Feb_day_8,\n SUBPARTITION p_month_Feb_day_9,\n SUBPARTITION p_month_Feb_day_10,\n SUBPARTITION p_month_Feb_day_11,\n SUBPARTITION p_month_Feb_day_12,\n SUBPARTITION p_month_Feb_day_13,\n SUBPARTITION p_month_Feb_day_14,\n SUBPARTITION p_month_Feb_day_15,\n SUBPARTITION p_month_Feb_day_16,\n SUBPARTITION p_month_Feb_day_17,\n SUBPARTITION p_month_Feb_day_18,\n SUBPARTITION p_month_Feb_day_19,\n SUBPARTITION p_month_Feb_day_20,\n SUBPARTITION p_month_Feb_day_21,\n SUBPARTITION p_month_Feb_day_22,\n SUBPARTITION p_month_Feb_day_23,\n SUBPARTITION p_month_Feb_day_24,\n SUBPARTITION p_month_Feb_day_25,\n SUBPARTITION p_month_Feb_day_26,\n SUBPARTITION p_month_Feb_day_27,\n SUBPARTITION p_month_Feb_day_28,\n SUBPARTITION p_month_Feb_day_29,\n SUBPARTITION p_month_Feb_day_30,\n SUBPARTITION p_month_Feb_day_31\n ),\n PARTITION p_month_Mar\n VALUES\n LESS THAN (2) (\n SUBPARTITION p_month_Mar_day_0,\n SUBPARTITION p_month_Mar_day_1,\n SUBPARTITION p_month_Mar_day_2,\n SUBPARTITION p_month_Mar_day_3,\n SUBPARTITION p_month_Mar_day_4,\n SUBPARTITION p_month_Mar_day_5,\n SUBPARTITION p_month_Mar_day_6,\n SUBPARTITION p_month_Mar_day_7,\n SUBPARTITION p_month_Mar_day_8,\n SUBPARTITION p_month_Mar_day_9,\n SUBPARTITION p_month_Mar_day_10,\n SUBPARTITION p_month_Mar_day_11,\n SUBPARTITION p_month_Mar_day_12,\n SUBPARTITION p_month_Mar_day_13,\n SUBPARTITION p_month_Mar_day_14,\n SUBPARTITION p_month_Mar_day_15,\n SUBPARTITION p_month_Mar_day_16,\n SUBPARTITION p_month_Mar_day_17,\n SUBPARTITION p_month_Mar_day_18,\n SUBPARTITION p_month_Mar_day_19,\n SUBPARTITION p_month_Mar_day_20,\n SUBPARTITION p_month_Mar_day_21,\n SUBPARTITION p_month_Mar_day_22,\n SUBPARTITION p_month_Mar_day_23,\n SUBPARTITION p_month_Mar_day_24,\n SUBPARTITION p_month_Mar_day_25,\n SUBPARTITION p_month_Mar_day_26,\n SUBPARTITION p_month_Mar_day_27,\n SUBPARTITION p_month_Mar_day_28,\n SUBPARTITION p_month_Mar_day_29,\n SUBPARTITION p_month_Mar_day_30,\n SUBPARTITION p_month_Mar_day_31\n ),\n PARTITION p_month_Apr\n VALUES\n LESS THAN (3) (\n SUBPARTITION p_month_Apr_day_0,\n SUBPARTITION p_month_Apr_day_1,\n SUBPARTITION p_month_Apr_day_2,\n SUBPARTITION p_month_Apr_day_3,\n SUBPARTITION p_month_Apr_day_4,\n SUBPARTITION p_month_Apr_day_5,\n SUBPARTITION p_month_Apr_day_6,\n SUBPARTITION p_month_Apr_day_7,\n SUBPARTITION p_month_Apr_day_8,\n SUBPARTITION p_month_Apr_day_9,\n SUBPARTITION p_month_Apr_day_10,\n SUBPARTITION p_month_Apr_day_11,\n SUBPARTITION p_month_Apr_day_12,\n SUBPARTITION p_month_Apr_day_13,\n SUBPARTITION p_month_Apr_day_14,\n SUBPARTITION p_month_Apr_day_15,\n SUBPARTITION p_month_Apr_day_16,\n SUBPARTITION p_month_Apr_day_17,\n SUBPARTITION p_month_Apr_day_18,\n SUBPARTITION p_month_Apr_day_19,\n SUBPARTITION p_month_Apr_day_20,\n SUBPARTITION p_month_Apr_day_21,\n SUBPARTITION p_month_Apr_day_22,\n SUBPARTITION p_month_Apr_day_23,\n SUBPARTITION p_month_Apr_day_24,\n SUBPARTITION p_month_Apr_day_25,\n SUBPARTITION p_month_Apr_day_26,\n SUBPARTITION p_month_Apr_day_27,\n SUBPARTITION p_month_Apr_day_28,\n SUBPARTITION p_month_Apr_day_29,\n SUBPARTITION p_month_Apr_day_30,\n SUBPARTITION p_month_Apr_day_31\n ),\n PARTITION p_month_Mai\n VALUES\n LESS THAN (4) (\n SUBPARTITION p_month_Mai_day_0,\n SUBPARTITION p_month_Mai_day_1,\n SUBPARTITION p_month_Mai_day_2,\n SUBPARTITION p_month_Mai_day_3,\n SUBPARTITION p_month_Mai_day_4,\n SUBPARTITION p_month_Mai_day_5,\n SUBPARTITION p_month_Mai_day_6,\n SUBPARTITION p_month_Mai_day_7,\n SUBPARTITION p_month_Mai_day_8,\n SUBPARTITION p_month_Mai_day_9,\n SUBPARTITION p_month_Mai_day_10,\n SUBPARTITION p_month_Mai_day_11,\n SUBPARTITION p_month_Mai_day_12,\n SUBPARTITION p_month_Mai_day_13,\n SUBPARTITION p_month_Mai_day_14,\n SUBPARTITION p_month_Mai_day_15,\n SUBPARTITION p_month_Mai_day_16,\n SUBPARTITION p_month_Mai_day_17,\n SUBPARTITION p_month_Mai_day_18,\n SUBPARTITION p_month_Mai_day_19,\n SUBPARTITION p_month_Mai_day_20,\n SUBPARTITION p_month_Mai_day_21,\n SUBPARTITION p_month_Mai_day_22,\n SUBPARTITION p_month_Mai_day_23,\n SUBPARTITION p_month_Mai_day_24,\n SUBPARTITION p_month_Mai_day_25,\n SUBPARTITION p_month_Mai_day_26,\n SUBPARTITION p_month_Mai_day_27,\n SUBPARTITION p_month_Mai_day_28,\n SUBPARTITION p_month_Mai_day_29,\n SUBPARTITION p_month_Mai_day_30,\n SUBPARTITION p_month_Mai_day_31\n ),\n PARTITION p_month_Jun\n VALUES\n LESS THAN (5) (\n SUBPARTITION p_month_Jun_day_0,\n SUBPARTITION p_month_Jun_day_1,\n SUBPARTITION p_month_Jun_day_2,\n SUBPARTITION p_month_Jun_day_3,\n SUBPARTITION p_month_Jun_day_4,\n SUBPARTITION p_month_Jun_day_5,\n SUBPARTITION p_month_Jun_day_6,\n SUBPARTITION p_month_Jun_day_7,\n SUBPARTITION p_month_Jun_day_8,\n SUBPARTITION p_month_Jun_day_9,\n SUBPARTITION p_month_Jun_day_10,\n SUBPARTITION p_month_Jun_day_11,\n SUBPARTITION p_month_Jun_day_12,\n SUBPARTITION p_month_Jun_day_13,\n SUBPARTITION p_month_Jun_day_14,\n SUBPARTITION p_month_Jun_day_15,\n SUBPARTITION p_month_Jun_day_16,\n SUBPARTITION p_month_Jun_day_17,\n SUBPARTITION p_month_Jun_day_18,\n SUBPARTITION p_month_Jun_day_19,\n SUBPARTITION p_month_Jun_day_20,\n SUBPARTITION p_month_Jun_day_21,\n SUBPARTITION p_month_Jun_day_22,\n SUBPARTITION p_month_Jun_day_23,\n SUBPARTITION p_month_Jun_day_24,\n SUBPARTITION p_month_Jun_day_25,\n SUBPARTITION p_month_Jun_day_26,\n SUBPARTITION p_month_Jun_day_27,\n SUBPARTITION p_month_Jun_day_28,\n SUBPARTITION p_month_Jun_day_29,\n SUBPARTITION p_month_Jun_day_30,\n SUBPARTITION p_month_Jun_day_31\n ),\n PARTITION p_month_Jul\n VALUES\n LESS THAN (6) (\n SUBPARTITION p_month_Jul_day_0,\n SUBPARTITION p_month_Jul_day_1,\n SUBPARTITION p_month_Jul_day_2,\n SUBPARTITION p_month_Jul_day_3,\n SUBPARTITION p_month_Jul_day_4,\n SUBPARTITION p_month_Jul_day_5,\n SUBPARTITION p_month_Jul_day_6,\n SUBPARTITION p_month_Jul_day_7,\n SUBPARTITION p_month_Jul_day_8,\n SUBPARTITION p_month_Jul_day_9,\n SUBPARTITION p_month_Jul_day_10,\n SUBPARTITION p_month_Jul_day_11,\n SUBPARTITION p_month_Jul_day_12,\n SUBPARTITION p_month_Jul_day_13,\n SUBPARTITION p_month_Jul_day_14,\n SUBPARTITION p_month_Jul_day_15,\n SUBPARTITION p_month_Jul_day_16,\n SUBPARTITION p_month_Jul_day_17,\n SUBPARTITION p_month_Jul_day_18,\n SUBPARTITION p_month_Jul_day_19,\n SUBPARTITION p_month_Jul_day_20,\n SUBPARTITION p_month_Jul_day_21,\n SUBPARTITION p_month_Jul_day_22,\n SUBPARTITION p_month_Jul_day_23,\n SUBPARTITION p_month_Jul_day_24,\n SUBPARTITION p_month_Jul_day_25,\n SUBPARTITION p_month_Jul_day_26,\n SUBPARTITION p_month_Jul_day_27,\n SUBPARTITION p_month_Jul_day_28,\n SUBPARTITION p_month_Jul_day_29,\n SUBPARTITION p_month_Jul_day_30,\n SUBPARTITION p_month_Jul_day_31\n ),\n PARTITION p_month_Aug\n VALUES\n LESS THAN (7) (\n SUBPARTITION p_month_Aug_day_0,\n SUBPARTITION p_month_Aug_day_1,\n SUBPARTITION p_month_Aug_day_2,\n SUBPARTITION p_month_Aug_day_3,\n SUBPARTITION p_month_Aug_day_4,\n SUBPARTITION p_month_Aug_day_5,\n SUBPARTITION p_month_Aug_day_6,\n SUBPARTITION p_month_Aug_day_7,\n SUBPARTITION p_month_Aug_day_8,\n SUBPARTITION p_month_Aug_day_9,\n SUBPARTITION p_month_Aug_day_10,\n SUBPARTITION p_month_Aug_day_11,\n SUBPARTITION p_month_Aug_day_12,\n SUBPARTITION p_month_Aug_day_13,\n SUBPARTITION p_month_Aug_day_14,\n SUBPARTITION p_month_Aug_day_15,\n SUBPARTITION p_month_Aug_day_16,\n SUBPARTITION p_month_Aug_day_17,\n SUBPARTITION p_month_Aug_day_18,\n SUBPARTITION p_month_Aug_day_19,\n SUBPARTITION p_month_Aug_day_20,\n SUBPARTITION p_month_Aug_day_21,\n SUBPARTITION p_month_Aug_day_22,\n SUBPARTITION p_month_Aug_day_23,\n SUBPARTITION p_month_Aug_day_24,\n SUBPARTITION p_month_Aug_day_25,\n SUBPARTITION p_month_Aug_day_26,\n SUBPARTITION p_month_Aug_day_27,\n SUBPARTITION p_month_Aug_day_28,\n SUBPARTITION p_month_Aug_day_29,\n SUBPARTITION p_month_Aug_day_30,\n SUBPARTITION p_month_Aug_day_31\n ),\n PARTITION p_month_Sep\n VALUES\n LESS THAN (8) (\n SUBPARTITION p_month_Sep_day_0,\n SUBPARTITION p_month_Sep_day_1,\n SUBPARTITION p_month_Sep_day_2,\n SUBPARTITION p_month_Sep_day_3,\n SUBPARTITION p_month_Sep_day_4,\n SUBPARTITION p_month_Sep_day_5,\n SUBPARTITION p_month_Sep_day_6,\n SUBPARTITION p_month_Sep_day_7,\n SUBPARTITION p_month_Sep_day_8,\n SUBPARTITION p_month_Sep_day_9,\n SUBPARTITION p_month_Sep_day_10,\n SUBPARTITION p_month_Sep_day_11,\n SUBPARTITION p_month_Sep_day_12,\n SUBPARTITION p_month_Sep_day_13,\n SUBPARTITION p_month_Sep_day_14,\n SUBPARTITION p_month_Sep_day_15,\n SUBPARTITION p_month_Sep_day_16,\n SUBPARTITION p_month_Sep_day_17,\n SUBPARTITION p_month_Sep_day_18,\n SUBPARTITION p_month_Sep_day_19,\n SUBPARTITION p_month_Sep_day_20,\n SUBPARTITION p_month_Sep_day_21,\n SUBPARTITION p_month_Sep_day_22,\n SUBPARTITION p_month_Sep_day_23,\n SUBPARTITION p_month_Sep_day_24,\n SUBPARTITION p_month_Sep_day_25,\n SUBPARTITION p_month_Sep_day_26,\n SUBPARTITION p_month_Sep_day_27,\n SUBPARTITION p_month_Sep_day_28,\n SUBPARTITION p_month_Sep_day_29,\n SUBPARTITION p_month_Sep_day_30,\n SUBPARTITION p_month_Sep_day_31\n ),\n PARTITION p_month_Oct\n VALUES\n LESS THAN (9) (\n SUBPARTITION p_month_Oct_day_0,\n SUBPARTITION p_month_Oct_day_1,\n SUBPARTITION p_month_Oct_day_2,\n SUBPARTITION p_month_Oct_day_3,\n SUBPARTITION p_month_Oct_day_4,\n SUBPARTITION p_month_Oct_day_5,\n SUBPARTITION p_month_Oct_day_6,\n SUBPARTITION p_month_Oct_day_7,\n SUBPARTITION p_month_Oct_day_8,\n SUBPARTITION p_month_Oct_day_9,\n SUBPARTITION p_month_Oct_day_10,\n SUBPARTITION p_month_Oct_day_11,\n SUBPARTITION p_month_Oct_day_12,\n SUBPARTITION p_month_Oct_day_13,\n SUBPARTITION p_month_Oct_day_14,\n SUBPARTITION p_month_Oct_day_15,\n SUBPARTITION p_month_Oct_day_16,\n SUBPARTITION p_month_Oct_day_17,\n SUBPARTITION p_month_Oct_day_18,\n SUBPARTITION p_month_Oct_day_19,\n SUBPARTITION p_month_Oct_day_20,\n SUBPARTITION p_month_Oct_day_21,\n SUBPARTITION p_month_Oct_day_22,\n SUBPARTITION p_month_Oct_day_23,\n SUBPARTITION p_month_Oct_day_24,\n SUBPARTITION p_month_Oct_day_25,\n SUBPARTITION p_month_Oct_day_26,\n SUBPARTITION p_month_Oct_day_27,\n SUBPARTITION p_month_Oct_day_28,\n SUBPARTITION p_month_Oct_day_29,\n SUBPARTITION p_month_Oct_day_30,\n SUBPARTITION p_month_Oct_day_31\n ),\n PARTITION p_month_Nov\n VALUES\n LESS THAN (10) (\n SUBPARTITION p_month_Nov_day_0,\n SUBPARTITION p_month_Nov_day_1,\n SUBPARTITION p_month_Nov_day_2,\n SUBPARTITION p_month_Nov_day_3,\n SUBPARTITION p_month_Nov_day_4,\n SUBPARTITION p_month_Nov_day_5,\n SUBPARTITION p_month_Nov_day_6,\n SUBPARTITION p_month_Nov_day_7,\n SUBPARTITION p_month_Nov_day_8,\n SUBPARTITION p_month_Nov_day_9,\n SUBPARTITION p_month_Nov_day_10,\n SUBPARTITION p_month_Nov_day_11,\n SUBPARTITION p_month_Nov_day_12,\n SUBPARTITION p_month_Nov_day_13,\n SUBPARTITION p_month_Nov_day_14,\n SUBPARTITION p_month_Nov_day_15,\n SUBPARTITION p_month_Nov_day_16,\n SUBPARTITION p_month_Nov_day_17,\n SUBPARTITION p_month_Nov_day_18,\n SUBPARTITION p_month_Nov_day_19,\n SUBPARTITION p_month_Nov_day_20,\n SUBPARTITION p_month_Nov_day_21,\n SUBPARTITION p_month_Nov_day_22,\n SUBPARTITION p_month_Nov_day_23,\n SUBPARTITION p_month_Nov_day_24,\n SUBPARTITION p_month_Nov_day_25,\n SUBPARTITION p_month_Nov_day_26,\n SUBPARTITION p_month_Nov_day_27,\n SUBPARTITION p_month_Nov_day_28,\n SUBPARTITION p_month_Nov_day_29,\n SUBPARTITION p_month_Nov_day_30,\n SUBPARTITION p_month_Nov_day_31\n ),\n PARTITION p_month_Dec\n VALUES\n LESS THAN (11) (\n SUBPARTITION p_month_Dec_day_0,\n SUBPARTITION p_month_Dec_day_1,\n SUBPARTITION p_month_Dec_day_2,\n SUBPARTITION p_month_Dec_day_3,\n SUBPARTITION p_month_Dec_day_4,\n SUBPARTITION p_month_Dec_day_5,\n SUBPARTITION p_month_Dec_day_6,\n SUBPARTITION p_month_Dec_day_7,\n SUBPARTITION p_month_Dec_day_8,\n SUBPARTITION p_month_Dec_day_9,\n SUBPARTITION p_month_Dec_day_10,\n SUBPARTITION p_month_Dec_day_11,\n SUBPARTITION p_month_Dec_day_12,\n SUBPARTITION p_month_Dec_day_13,\n SUBPARTITION p_month_Dec_day_14,\n SUBPARTITION p_month_Dec_day_15,\n SUBPARTITION p_month_Dec_day_16,\n SUBPARTITION p_month_Dec_day_17,\n SUBPARTITION p_month_Dec_day_18,\n SUBPARTITION p_month_Dec_day_19,\n SUBPARTITION p_month_Dec_day_20,\n SUBPARTITION p_month_Dec_day_21,\n SUBPARTITION p_month_Dec_day_22,\n SUBPARTITION p_month_Dec_day_23,\n SUBPARTITION p_month_Dec_day_24,\n SUBPARTITION p_month_Dec_day_25,\n SUBPARTITION p_month_Dec_day_26,\n SUBPARTITION p_month_Dec_day_27,\n SUBPARTITION p_month_Dec_day_28,\n SUBPARTITION p_month_Dec_day_29,\n SUBPARTITION p_month_Dec_day_30,\n SUBPARTITION p_month_Dec_day_31\n )\n)", "len": 18500, "last": 18500, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 2224, + "idx": 2224, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`trips`", "value": "trips", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +113,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +135,9 @@ "token": "bigint", "value": "BIGINT", "keyword": "BIGINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 32 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 38 }, @@ -121,7 +157,11 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 39 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 41 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +192,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -166,7 +214,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 52 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -184,7 +236,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 61 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -202,7 +258,11 @@ "token": "'Unique trip Id'", "value": "Unique trip Id", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 69 }, @@ -211,7 +271,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 85 }, @@ -220,7 +282,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -229,7 +293,9 @@ "token": "`trip_category`", "value": "trip_category", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 91 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -247,7 +315,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 107 }, @@ -256,7 +326,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 110 }, @@ -265,7 +337,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 111 }, @@ -274,7 +348,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 113 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -292,7 +370,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 115 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -310,7 +392,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 124 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -328,7 +414,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 133 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -346,7 +436,9 @@ "token": "'Trip category'", "value": "Trip category", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 141 }, @@ -355,7 +447,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 156 }, @@ -364,7 +458,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -373,7 +469,9 @@ "token": "`trip_month`", "value": "trip_month", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 162 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -391,7 +491,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 175 }, @@ -400,7 +502,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 178 }, @@ -409,7 +513,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 179 }, @@ -418,7 +524,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 181 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -436,7 +546,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 183 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 191 }, @@ -454,7 +568,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 192 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 200 }, @@ -472,7 +590,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 201 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 208 }, @@ -490,7 +612,9 @@ "token": "'Trip month'", "value": "Trip month", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 209 }, @@ -499,7 +623,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 221 }, @@ -508,7 +634,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 222 }, @@ -517,7 +645,9 @@ "token": "`trip_date`", "value": "trip_date", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 227 }, @@ -526,7 +656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 238 }, @@ -535,7 +667,9 @@ "token": "date", "value": "date", "keyword": "DATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 239 }, @@ -544,7 +678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 243 }, @@ -553,7 +689,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 244 }, @@ -562,7 +700,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 252 }, @@ -571,7 +711,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 253 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 260 }, @@ -589,7 +733,9 @@ "token": "'The trip date'", "value": "The trip date", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 261 }, @@ -598,7 +744,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 276 }, @@ -607,7 +755,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 277 }, @@ -616,7 +766,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 278 }, @@ -625,7 +777,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 279 }, @@ -634,7 +788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -643,7 +799,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 286 }, @@ -652,7 +810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 287 }, @@ -661,7 +821,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 288 }, @@ -670,7 +834,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 294 }, @@ -679,7 +845,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 295 }, @@ -688,7 +856,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 310 }, @@ -697,7 +867,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 311 }, @@ -706,7 +878,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 312 }, @@ -715,7 +889,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 313 }, @@ -724,7 +900,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 320 }, @@ -733,7 +911,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 321 }, @@ -742,7 +922,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 328 }, @@ -751,7 +933,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 329 }, @@ -760,7 +944,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 330 }, @@ -769,7 +955,9 @@ "token": "utf8mb4_unicode_ci", "value": "utf8mb4_unicode_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 331 }, @@ -778,7 +966,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 349 }, @@ -787,7 +977,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 350 }, @@ -796,7 +988,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 357 }, @@ -805,7 +999,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 358 }, @@ -814,7 +1010,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 359 }, @@ -823,7 +1021,9 @@ "token": "'The trips'", "value": "The trips", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 360 }, @@ -832,7 +1032,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 371 }, @@ -841,7 +1043,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 372 }, @@ -850,7 +1054,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 384 }, @@ -859,7 +1065,9 @@ "token": "RANGE", "value": "RANGE", "keyword": "RANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 385 }, @@ -868,7 +1076,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 390 }, @@ -877,7 +1087,9 @@ "token": "trip_month", "value": "trip_month", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 391 }, @@ -886,7 +1098,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 401 }, @@ -895,7 +1109,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 402 }, @@ -904,7 +1120,9 @@ "token": "SUBPARTITION BY", "value": "SUBPARTITION BY", "keyword": "SUBPARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 403 }, @@ -913,7 +1131,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 418 }, @@ -922,7 +1142,9 @@ "token": "HASH", "value": "HASH", "keyword": "HASH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 419 }, @@ -931,7 +1153,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 423 }, @@ -940,7 +1164,9 @@ "token": "DAY", "value": "DAY", "keyword": "DAY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 424 }, @@ -949,7 +1175,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 427 }, @@ -958,7 +1186,9 @@ "token": "trip_date", "value": "trip_date", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 428 }, @@ -967,7 +1197,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 437 }, @@ -976,7 +1208,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 438 }, @@ -985,7 +1219,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 439 }, @@ -994,7 +1230,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 440 }, @@ -1003,7 +1241,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 441 }, @@ -1012,7 +1252,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 446 }, @@ -1021,7 +1263,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 455 }, @@ -1030,7 +1274,9 @@ "token": "p_month_Jan", "value": "p_month_Jan", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 456 }, @@ -1039,7 +1285,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 467 }, @@ -1048,7 +1296,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 472 }, @@ -1057,7 +1307,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 478 }, @@ -1066,7 +1318,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 487 }, @@ -1075,7 +1329,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 496 }, @@ -1084,7 +1340,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 497 }, @@ -1093,7 +1351,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 498 }, @@ -1102,7 +1362,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 499 }, @@ -1111,7 +1373,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 500 }, @@ -1120,7 +1384,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 501 }, @@ -1129,7 +1395,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 502 }, @@ -1138,7 +1406,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 515 }, @@ -1147,7 +1417,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 527 }, @@ -1156,7 +1428,9 @@ "token": "p_month_Jan_day_0", "value": "p_month_Jan_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 528 }, @@ -1165,7 +1439,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 545 }, @@ -1174,7 +1450,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 546 }, @@ -1183,7 +1461,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 559 }, @@ -1192,7 +1472,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 571 }, @@ -1201,7 +1483,9 @@ "token": "p_month_Jan_day_1", "value": "p_month_Jan_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 572 }, @@ -1210,7 +1494,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 589 }, @@ -1219,7 +1505,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 590 }, @@ -1228,7 +1516,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 603 }, @@ -1237,7 +1527,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 615 }, @@ -1246,7 +1538,9 @@ "token": "p_month_Jan_day_2", "value": "p_month_Jan_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 616 }, @@ -1255,7 +1549,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 633 }, @@ -1264,7 +1560,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 634 }, @@ -1273,7 +1571,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 647 }, @@ -1282,7 +1582,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 659 }, @@ -1291,7 +1593,9 @@ "token": "p_month_Jan_day_3", "value": "p_month_Jan_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 660 }, @@ -1300,7 +1604,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 677 }, @@ -1309,7 +1615,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 678 }, @@ -1318,7 +1626,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 691 }, @@ -1327,7 +1637,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 703 }, @@ -1336,7 +1648,9 @@ "token": "p_month_Jan_day_4", "value": "p_month_Jan_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 704 }, @@ -1345,7 +1659,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 721 }, @@ -1354,7 +1670,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 722 }, @@ -1363,7 +1681,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 735 }, @@ -1372,7 +1692,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 747 }, @@ -1381,7 +1703,9 @@ "token": "p_month_Jan_day_5", "value": "p_month_Jan_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 748 }, @@ -1390,7 +1714,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 765 }, @@ -1399,7 +1725,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 766 }, @@ -1408,7 +1736,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 779 }, @@ -1417,7 +1747,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 791 }, @@ -1426,7 +1758,9 @@ "token": "p_month_Jan_day_6", "value": "p_month_Jan_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 792 }, @@ -1435,7 +1769,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 809 }, @@ -1444,7 +1780,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 810 }, @@ -1453,7 +1791,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 823 }, @@ -1462,7 +1802,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 835 }, @@ -1471,7 +1813,9 @@ "token": "p_month_Jan_day_7", "value": "p_month_Jan_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 836 }, @@ -1480,7 +1824,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 853 }, @@ -1489,7 +1835,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 854 }, @@ -1498,7 +1846,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 867 }, @@ -1507,7 +1857,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 879 }, @@ -1516,7 +1868,9 @@ "token": "p_month_Jan_day_8", "value": "p_month_Jan_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 880 }, @@ -1525,7 +1879,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 897 }, @@ -1534,7 +1890,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 898 }, @@ -1543,7 +1901,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 911 }, @@ -1552,7 +1912,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 923 }, @@ -1561,7 +1923,9 @@ "token": "p_month_Jan_day_9", "value": "p_month_Jan_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 924 }, @@ -1570,7 +1934,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 941 }, @@ -1579,7 +1945,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 942 }, @@ -1588,7 +1956,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 955 }, @@ -1597,7 +1967,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 967 }, @@ -1606,7 +1978,9 @@ "token": "p_month_Jan_day_10", "value": "p_month_Jan_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 968 }, @@ -1615,7 +1989,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 986 }, @@ -1624,7 +2000,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 987 }, @@ -1633,7 +2011,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1000 }, @@ -1642,7 +2022,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1012 }, @@ -1651,7 +2033,9 @@ "token": "p_month_Jan_day_11", "value": "p_month_Jan_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1013 }, @@ -1660,7 +2044,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1031 }, @@ -1669,7 +2055,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1032 }, @@ -1678,7 +2066,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1045 }, @@ -1687,7 +2077,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1057 }, @@ -1696,7 +2088,9 @@ "token": "p_month_Jan_day_12", "value": "p_month_Jan_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1058 }, @@ -1705,7 +2099,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1076 }, @@ -1714,7 +2110,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1077 }, @@ -1723,7 +2121,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1090 }, @@ -1732,7 +2132,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1102 }, @@ -1741,7 +2143,9 @@ "token": "p_month_Jan_day_13", "value": "p_month_Jan_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1103 }, @@ -1750,7 +2154,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1121 }, @@ -1759,7 +2165,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1122 }, @@ -1768,7 +2176,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1135 }, @@ -1777,7 +2187,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1147 }, @@ -1786,7 +2198,9 @@ "token": "p_month_Jan_day_14", "value": "p_month_Jan_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1148 }, @@ -1795,7 +2209,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1166 }, @@ -1804,7 +2220,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1167 }, @@ -1813,7 +2231,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1180 }, @@ -1822,7 +2242,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1192 }, @@ -1831,7 +2253,9 @@ "token": "p_month_Jan_day_15", "value": "p_month_Jan_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1193 }, @@ -1840,7 +2264,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1211 }, @@ -1849,7 +2275,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1212 }, @@ -1858,7 +2286,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1225 }, @@ -1867,7 +2297,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1237 }, @@ -1876,7 +2308,9 @@ "token": "p_month_Jan_day_16", "value": "p_month_Jan_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1238 }, @@ -1885,7 +2319,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1256 }, @@ -1894,7 +2330,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1257 }, @@ -1903,7 +2341,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1270 }, @@ -1912,7 +2352,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1282 }, @@ -1921,7 +2363,9 @@ "token": "p_month_Jan_day_17", "value": "p_month_Jan_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1283 }, @@ -1930,7 +2374,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1301 }, @@ -1939,7 +2385,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1302 }, @@ -1948,7 +2396,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1315 }, @@ -1957,7 +2407,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1327 }, @@ -1966,7 +2418,9 @@ "token": "p_month_Jan_day_18", "value": "p_month_Jan_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1328 }, @@ -1975,7 +2429,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1346 }, @@ -1984,7 +2440,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1347 }, @@ -1993,7 +2451,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1360 }, @@ -2002,7 +2462,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1372 }, @@ -2011,7 +2473,9 @@ "token": "p_month_Jan_day_19", "value": "p_month_Jan_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1373 }, @@ -2020,7 +2484,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1391 }, @@ -2029,7 +2495,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1392 }, @@ -2038,7 +2506,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1405 }, @@ -2047,7 +2517,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1417 }, @@ -2056,7 +2528,9 @@ "token": "p_month_Jan_day_20", "value": "p_month_Jan_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1418 }, @@ -2065,7 +2539,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1436 }, @@ -2074,7 +2550,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1437 }, @@ -2083,7 +2561,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1450 }, @@ -2092,7 +2572,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1462 }, @@ -2101,7 +2583,9 @@ "token": "p_month_Jan_day_21", "value": "p_month_Jan_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1463 }, @@ -2110,7 +2594,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1481 }, @@ -2119,7 +2605,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1482 }, @@ -2128,7 +2616,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1495 }, @@ -2137,7 +2627,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1507 }, @@ -2146,7 +2638,9 @@ "token": "p_month_Jan_day_22", "value": "p_month_Jan_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1508 }, @@ -2155,7 +2649,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1526 }, @@ -2164,7 +2660,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1527 }, @@ -2173,7 +2671,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1540 }, @@ -2182,7 +2682,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1552 }, @@ -2191,7 +2693,9 @@ "token": "p_month_Jan_day_23", "value": "p_month_Jan_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1553 }, @@ -2200,7 +2704,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1571 }, @@ -2209,7 +2715,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1572 }, @@ -2218,7 +2726,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1585 }, @@ -2227,7 +2737,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1597 }, @@ -2236,7 +2748,9 @@ "token": "p_month_Jan_day_24", "value": "p_month_Jan_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1598 }, @@ -2245,7 +2759,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1616 }, @@ -2254,7 +2770,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1617 }, @@ -2263,7 +2781,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1630 }, @@ -2272,7 +2792,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1642 }, @@ -2281,7 +2803,9 @@ "token": "p_month_Jan_day_25", "value": "p_month_Jan_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1643 }, @@ -2290,7 +2814,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1661 }, @@ -2299,7 +2825,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1662 }, @@ -2308,7 +2836,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1675 }, @@ -2317,7 +2847,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1687 }, @@ -2326,7 +2858,9 @@ "token": "p_month_Jan_day_26", "value": "p_month_Jan_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1688 }, @@ -2335,7 +2869,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1706 }, @@ -2344,7 +2880,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1707 }, @@ -2353,7 +2891,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1720 }, @@ -2362,7 +2902,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1732 }, @@ -2371,7 +2913,9 @@ "token": "p_month_Jan_day_27", "value": "p_month_Jan_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1733 }, @@ -2380,7 +2924,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1751 }, @@ -2389,7 +2935,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1752 }, @@ -2398,7 +2946,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1765 }, @@ -2407,7 +2957,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1777 }, @@ -2416,7 +2968,9 @@ "token": "p_month_Jan_day_28", "value": "p_month_Jan_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1778 }, @@ -2425,7 +2979,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1796 }, @@ -2434,7 +2990,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1797 }, @@ -2443,7 +3001,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1810 }, @@ -2452,7 +3012,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1822 }, @@ -2461,7 +3023,9 @@ "token": "p_month_Jan_day_29", "value": "p_month_Jan_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1823 }, @@ -2470,7 +3034,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1841 }, @@ -2479,7 +3045,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1842 }, @@ -2488,7 +3056,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1855 }, @@ -2497,7 +3067,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1867 }, @@ -2506,7 +3078,9 @@ "token": "p_month_Jan_day_30", "value": "p_month_Jan_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1868 }, @@ -2515,7 +3089,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1886 }, @@ -2524,7 +3100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1887 }, @@ -2533,7 +3111,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1900 }, @@ -2542,7 +3122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1912 }, @@ -2551,7 +3133,9 @@ "token": "p_month_Jan_day_31", "value": "p_month_Jan_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1913 }, @@ -2560,7 +3144,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1931 }, @@ -2569,7 +3155,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1940 }, @@ -2578,7 +3166,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1941 }, @@ -2587,7 +3177,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1942 }, @@ -2596,7 +3188,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1951 }, @@ -2605,7 +3199,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1960 }, @@ -2614,7 +3210,9 @@ "token": "p_month_Feb", "value": "p_month_Feb", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1961 }, @@ -2623,7 +3221,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1972 }, @@ -2632,7 +3232,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1977 }, @@ -2641,7 +3243,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1983 }, @@ -2650,7 +3254,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 1992 }, @@ -2659,7 +3265,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2001 }, @@ -2668,7 +3276,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2002 }, @@ -2677,7 +3287,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 2003 }, @@ -2686,7 +3298,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2004 }, @@ -2695,7 +3309,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2005 }, @@ -2704,7 +3320,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2006 }, @@ -2713,7 +3331,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2007 }, @@ -2722,7 +3342,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2020 }, @@ -2731,7 +3353,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2032 }, @@ -2740,7 +3364,9 @@ "token": "p_month_Feb_day_0", "value": "p_month_Feb_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2033 }, @@ -2749,7 +3375,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2050 }, @@ -2758,7 +3386,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2051 }, @@ -2767,7 +3397,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2064 }, @@ -2776,7 +3408,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2076 }, @@ -2785,7 +3419,9 @@ "token": "p_month_Feb_day_1", "value": "p_month_Feb_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2077 }, @@ -2794,7 +3430,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2094 }, @@ -2803,7 +3441,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2095 }, @@ -2812,7 +3452,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2108 }, @@ -2821,7 +3463,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2120 }, @@ -2830,7 +3474,9 @@ "token": "p_month_Feb_day_2", "value": "p_month_Feb_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2121 }, @@ -2839,7 +3485,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2138 }, @@ -2848,7 +3496,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2139 }, @@ -2857,7 +3507,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2152 }, @@ -2866,7 +3518,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2164 }, @@ -2875,7 +3529,9 @@ "token": "p_month_Feb_day_3", "value": "p_month_Feb_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2165 }, @@ -2884,7 +3540,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2182 }, @@ -2893,7 +3551,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2183 }, @@ -2902,7 +3562,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2196 }, @@ -2911,7 +3573,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2208 }, @@ -2920,7 +3584,9 @@ "token": "p_month_Feb_day_4", "value": "p_month_Feb_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2209 }, @@ -2929,7 +3595,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2226 }, @@ -2938,7 +3606,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2227 }, @@ -2947,7 +3617,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2240 }, @@ -2956,7 +3628,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2252 }, @@ -2965,7 +3639,9 @@ "token": "p_month_Feb_day_5", "value": "p_month_Feb_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2253 }, @@ -2974,7 +3650,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2270 }, @@ -2983,7 +3661,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2271 }, @@ -2992,7 +3672,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2284 }, @@ -3001,7 +3683,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2296 }, @@ -3010,7 +3694,9 @@ "token": "p_month_Feb_day_6", "value": "p_month_Feb_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2297 }, @@ -3019,7 +3705,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2314 }, @@ -3028,7 +3716,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2315 }, @@ -3037,7 +3727,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2328 }, @@ -3046,7 +3738,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2340 }, @@ -3055,7 +3749,9 @@ "token": "p_month_Feb_day_7", "value": "p_month_Feb_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2341 }, @@ -3064,7 +3760,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2358 }, @@ -3073,7 +3771,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2359 }, @@ -3082,7 +3782,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2372 }, @@ -3091,7 +3793,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2384 }, @@ -3100,7 +3804,9 @@ "token": "p_month_Feb_day_8", "value": "p_month_Feb_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2385 }, @@ -3109,7 +3815,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2402 }, @@ -3118,7 +3826,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2403 }, @@ -3127,7 +3837,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2416 }, @@ -3136,7 +3848,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2428 }, @@ -3145,7 +3859,9 @@ "token": "p_month_Feb_day_9", "value": "p_month_Feb_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2429 }, @@ -3154,7 +3870,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2446 }, @@ -3163,7 +3881,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2447 }, @@ -3172,7 +3892,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2460 }, @@ -3181,7 +3903,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2472 }, @@ -3190,7 +3914,9 @@ "token": "p_month_Feb_day_10", "value": "p_month_Feb_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2473 }, @@ -3199,7 +3925,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2491 }, @@ -3208,7 +3936,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2492 }, @@ -3217,7 +3947,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2505 }, @@ -3226,7 +3958,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2517 }, @@ -3235,7 +3969,9 @@ "token": "p_month_Feb_day_11", "value": "p_month_Feb_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2518 }, @@ -3244,7 +3980,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2536 }, @@ -3253,7 +3991,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2537 }, @@ -3262,7 +4002,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2550 }, @@ -3271,7 +4013,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2562 }, @@ -3280,7 +4024,9 @@ "token": "p_month_Feb_day_12", "value": "p_month_Feb_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2563 }, @@ -3289,7 +4035,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2581 }, @@ -3298,7 +4046,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2582 }, @@ -3307,7 +4057,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2595 }, @@ -3316,7 +4068,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2607 }, @@ -3325,7 +4079,9 @@ "token": "p_month_Feb_day_13", "value": "p_month_Feb_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2608 }, @@ -3334,7 +4090,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2626 }, @@ -3343,7 +4101,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2627 }, @@ -3352,7 +4112,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2640 }, @@ -3361,7 +4123,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2652 }, @@ -3370,7 +4134,9 @@ "token": "p_month_Feb_day_14", "value": "p_month_Feb_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2653 }, @@ -3379,7 +4145,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2671 }, @@ -3388,7 +4156,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2672 }, @@ -3397,7 +4167,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2685 }, @@ -3406,7 +4178,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2697 }, @@ -3415,7 +4189,9 @@ "token": "p_month_Feb_day_15", "value": "p_month_Feb_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2698 }, @@ -3424,7 +4200,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2716 }, @@ -3433,7 +4211,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2717 }, @@ -3442,7 +4222,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2730 }, @@ -3451,7 +4233,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2742 }, @@ -3460,7 +4244,9 @@ "token": "p_month_Feb_day_16", "value": "p_month_Feb_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2743 }, @@ -3469,7 +4255,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2761 }, @@ -3478,7 +4266,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2762 }, @@ -3487,7 +4277,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2775 }, @@ -3496,7 +4288,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2787 }, @@ -3505,7 +4299,9 @@ "token": "p_month_Feb_day_17", "value": "p_month_Feb_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2788 }, @@ -3514,7 +4310,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2806 }, @@ -3523,7 +4321,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2807 }, @@ -3532,7 +4332,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2820 }, @@ -3541,7 +4343,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2832 }, @@ -3550,7 +4354,9 @@ "token": "p_month_Feb_day_18", "value": "p_month_Feb_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2833 }, @@ -3559,7 +4365,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2851 }, @@ -3568,7 +4376,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2852 }, @@ -3577,7 +4387,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2865 }, @@ -3586,7 +4398,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2877 }, @@ -3595,7 +4409,9 @@ "token": "p_month_Feb_day_19", "value": "p_month_Feb_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2878 }, @@ -3604,7 +4420,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2896 }, @@ -3613,7 +4431,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2897 }, @@ -3622,7 +4442,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2910 }, @@ -3631,7 +4453,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2922 }, @@ -3640,7 +4464,9 @@ "token": "p_month_Feb_day_20", "value": "p_month_Feb_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2923 }, @@ -3649,7 +4475,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2941 }, @@ -3658,7 +4486,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2942 }, @@ -3667,7 +4497,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 2955 }, @@ -3676,7 +4508,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2967 }, @@ -3685,7 +4519,9 @@ "token": "p_month_Feb_day_21", "value": "p_month_Feb_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 2968 }, @@ -3694,7 +4530,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 2986 }, @@ -3703,7 +4541,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2987 }, @@ -3712,7 +4552,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3000 }, @@ -3721,7 +4563,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3012 }, @@ -3730,7 +4574,9 @@ "token": "p_month_Feb_day_22", "value": "p_month_Feb_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3013 }, @@ -3739,7 +4585,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3031 }, @@ -3748,7 +4596,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3032 }, @@ -3757,7 +4607,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3045 }, @@ -3766,7 +4618,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3057 }, @@ -3775,7 +4629,9 @@ "token": "p_month_Feb_day_23", "value": "p_month_Feb_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3058 }, @@ -3784,7 +4640,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3076 }, @@ -3793,7 +4651,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3077 }, @@ -3802,7 +4662,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3090 }, @@ -3811,7 +4673,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3102 }, @@ -3820,7 +4684,9 @@ "token": "p_month_Feb_day_24", "value": "p_month_Feb_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3103 }, @@ -3829,7 +4695,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3121 }, @@ -3838,7 +4706,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3122 }, @@ -3847,7 +4717,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3135 }, @@ -3856,7 +4728,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3147 }, @@ -3865,7 +4739,9 @@ "token": "p_month_Feb_day_25", "value": "p_month_Feb_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3148 }, @@ -3874,7 +4750,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3166 }, @@ -3883,7 +4761,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3167 }, @@ -3892,7 +4772,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3180 }, @@ -3901,7 +4783,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3192 }, @@ -3910,7 +4794,9 @@ "token": "p_month_Feb_day_26", "value": "p_month_Feb_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3193 }, @@ -3919,7 +4805,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3211 }, @@ -3928,7 +4816,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3212 }, @@ -3937,7 +4827,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3225 }, @@ -3946,7 +4838,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3237 }, @@ -3955,7 +4849,9 @@ "token": "p_month_Feb_day_27", "value": "p_month_Feb_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3238 }, @@ -3964,7 +4860,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3256 }, @@ -3973,7 +4871,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3257 }, @@ -3982,7 +4882,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3270 }, @@ -3991,7 +4893,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3282 }, @@ -4000,7 +4904,9 @@ "token": "p_month_Feb_day_28", "value": "p_month_Feb_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3283 }, @@ -4009,7 +4915,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3301 }, @@ -4018,7 +4926,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3302 }, @@ -4027,7 +4937,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3315 }, @@ -4036,7 +4948,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3327 }, @@ -4045,7 +4959,9 @@ "token": "p_month_Feb_day_29", "value": "p_month_Feb_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3328 }, @@ -4054,7 +4970,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3346 }, @@ -4063,7 +4981,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3347 }, @@ -4072,7 +4992,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3360 }, @@ -4081,7 +5003,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3372 }, @@ -4090,7 +5014,9 @@ "token": "p_month_Feb_day_30", "value": "p_month_Feb_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3373 }, @@ -4099,7 +5025,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3391 }, @@ -4108,7 +5036,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3392 }, @@ -4117,7 +5047,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3405 }, @@ -4126,7 +5058,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3417 }, @@ -4135,7 +5069,9 @@ "token": "p_month_Feb_day_31", "value": "p_month_Feb_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3418 }, @@ -4144,7 +5080,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3436 }, @@ -4153,7 +5091,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3445 }, @@ -4162,7 +5102,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3446 }, @@ -4171,7 +5113,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3447 }, @@ -4180,7 +5124,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3456 }, @@ -4189,7 +5135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3465 }, @@ -4198,7 +5146,9 @@ "token": "p_month_Mar", "value": "p_month_Mar", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3466 }, @@ -4207,7 +5157,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3477 }, @@ -4216,7 +5168,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 3482 }, @@ -4225,7 +5179,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3488 }, @@ -4234,7 +5190,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 3497 }, @@ -4243,7 +5201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3506 }, @@ -4252,7 +5212,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3507 }, @@ -4261,7 +5223,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 3508 }, @@ -4270,7 +5234,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3509 }, @@ -4279,7 +5245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3510 }, @@ -4288,7 +5256,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3511 }, @@ -4297,7 +5267,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3512 }, @@ -4306,7 +5278,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3525 }, @@ -4315,7 +5289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3537 }, @@ -4324,7 +5300,9 @@ "token": "p_month_Mar_day_0", "value": "p_month_Mar_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3538 }, @@ -4333,7 +5311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3555 }, @@ -4342,7 +5322,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3556 }, @@ -4351,7 +5333,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3569 }, @@ -4360,7 +5344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3581 }, @@ -4369,7 +5355,9 @@ "token": "p_month_Mar_day_1", "value": "p_month_Mar_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3582 }, @@ -4378,7 +5366,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3599 }, @@ -4387,7 +5377,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3600 }, @@ -4396,7 +5388,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3613 }, @@ -4405,7 +5399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3625 }, @@ -4414,7 +5410,9 @@ "token": "p_month_Mar_day_2", "value": "p_month_Mar_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3626 }, @@ -4423,7 +5421,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3643 }, @@ -4432,7 +5432,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3644 }, @@ -4441,7 +5443,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3657 }, @@ -4450,7 +5454,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3669 }, @@ -4459,7 +5465,9 @@ "token": "p_month_Mar_day_3", "value": "p_month_Mar_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3670 }, @@ -4468,7 +5476,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3687 }, @@ -4477,7 +5487,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3688 }, @@ -4486,7 +5498,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3701 }, @@ -4495,7 +5509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3713 }, @@ -4504,7 +5520,9 @@ "token": "p_month_Mar_day_4", "value": "p_month_Mar_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3714 }, @@ -4513,7 +5531,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3731 }, @@ -4522,7 +5542,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3732 }, @@ -4531,7 +5553,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3745 }, @@ -4540,7 +5564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3757 }, @@ -4549,7 +5575,9 @@ "token": "p_month_Mar_day_5", "value": "p_month_Mar_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3758 }, @@ -4558,7 +5586,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3775 }, @@ -4567,7 +5597,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3776 }, @@ -4576,7 +5608,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3789 }, @@ -4585,7 +5619,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3801 }, @@ -4594,7 +5630,9 @@ "token": "p_month_Mar_day_6", "value": "p_month_Mar_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3802 }, @@ -4603,7 +5641,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3819 }, @@ -4612,7 +5652,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3820 }, @@ -4621,7 +5663,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3833 }, @@ -4630,7 +5674,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3845 }, @@ -4639,7 +5685,9 @@ "token": "p_month_Mar_day_7", "value": "p_month_Mar_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3846 }, @@ -4648,7 +5696,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3863 }, @@ -4657,7 +5707,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3864 }, @@ -4666,7 +5718,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3877 }, @@ -4675,7 +5729,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3889 }, @@ -4684,7 +5740,9 @@ "token": "p_month_Mar_day_8", "value": "p_month_Mar_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3890 }, @@ -4693,7 +5751,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3907 }, @@ -4702,7 +5762,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3908 }, @@ -4711,7 +5773,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3921 }, @@ -4720,7 +5784,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3933 }, @@ -4729,7 +5795,9 @@ "token": "p_month_Mar_day_9", "value": "p_month_Mar_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3934 }, @@ -4738,7 +5806,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3951 }, @@ -4747,7 +5817,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3952 }, @@ -4756,7 +5828,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 3965 }, @@ -4765,7 +5839,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3977 }, @@ -4774,7 +5850,9 @@ "token": "p_month_Mar_day_10", "value": "p_month_Mar_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 3978 }, @@ -4783,7 +5861,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 3996 }, @@ -4792,7 +5872,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3997 }, @@ -4801,7 +5883,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4010 }, @@ -4810,7 +5894,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4022 }, @@ -4819,7 +5905,9 @@ "token": "p_month_Mar_day_11", "value": "p_month_Mar_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4023 }, @@ -4828,7 +5916,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4041 }, @@ -4837,7 +5927,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4042 }, @@ -4846,7 +5938,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4055 }, @@ -4855,7 +5949,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4067 }, @@ -4864,7 +5960,9 @@ "token": "p_month_Mar_day_12", "value": "p_month_Mar_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4068 }, @@ -4873,7 +5971,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4086 }, @@ -4882,7 +5982,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4087 }, @@ -4891,7 +5993,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4100 }, @@ -4900,7 +6004,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4112 }, @@ -4909,7 +6015,9 @@ "token": "p_month_Mar_day_13", "value": "p_month_Mar_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4113 }, @@ -4918,7 +6026,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4131 }, @@ -4927,7 +6037,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4132 }, @@ -4936,7 +6048,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4145 }, @@ -4945,7 +6059,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4157 }, @@ -4954,7 +6070,9 @@ "token": "p_month_Mar_day_14", "value": "p_month_Mar_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4158 }, @@ -4963,7 +6081,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4176 }, @@ -4972,7 +6092,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4177 }, @@ -4981,7 +6103,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4190 }, @@ -4990,7 +6114,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4202 }, @@ -4999,7 +6125,9 @@ "token": "p_month_Mar_day_15", "value": "p_month_Mar_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4203 }, @@ -5008,7 +6136,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4221 }, @@ -5017,7 +6147,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4222 }, @@ -5026,7 +6158,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4235 }, @@ -5035,7 +6169,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4247 }, @@ -5044,7 +6180,9 @@ "token": "p_month_Mar_day_16", "value": "p_month_Mar_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4248 }, @@ -5053,7 +6191,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4266 }, @@ -5062,7 +6202,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4267 }, @@ -5071,7 +6213,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4280 }, @@ -5080,7 +6224,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4292 }, @@ -5089,7 +6235,9 @@ "token": "p_month_Mar_day_17", "value": "p_month_Mar_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4293 }, @@ -5098,7 +6246,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4311 }, @@ -5107,7 +6257,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4312 }, @@ -5116,7 +6268,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4325 }, @@ -5125,7 +6279,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4337 }, @@ -5134,7 +6290,9 @@ "token": "p_month_Mar_day_18", "value": "p_month_Mar_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4338 }, @@ -5143,7 +6301,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4356 }, @@ -5152,7 +6312,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4357 }, @@ -5161,7 +6323,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4370 }, @@ -5170,7 +6334,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4382 }, @@ -5179,7 +6345,9 @@ "token": "p_month_Mar_day_19", "value": "p_month_Mar_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4383 }, @@ -5188,7 +6356,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4401 }, @@ -5197,7 +6367,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4402 }, @@ -5206,7 +6378,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4415 }, @@ -5215,7 +6389,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4427 }, @@ -5224,7 +6400,9 @@ "token": "p_month_Mar_day_20", "value": "p_month_Mar_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4428 }, @@ -5233,7 +6411,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4446 }, @@ -5242,7 +6422,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4447 }, @@ -5251,7 +6433,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4460 }, @@ -5260,7 +6444,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4472 }, @@ -5269,7 +6455,9 @@ "token": "p_month_Mar_day_21", "value": "p_month_Mar_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4473 }, @@ -5278,7 +6466,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4491 }, @@ -5287,7 +6477,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4492 }, @@ -5296,7 +6488,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4505 }, @@ -5305,7 +6499,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4517 }, @@ -5314,7 +6510,9 @@ "token": "p_month_Mar_day_22", "value": "p_month_Mar_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4518 }, @@ -5323,7 +6521,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4536 }, @@ -5332,7 +6532,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4537 }, @@ -5341,7 +6543,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4550 }, @@ -5350,7 +6554,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4562 }, @@ -5359,7 +6565,9 @@ "token": "p_month_Mar_day_23", "value": "p_month_Mar_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4563 }, @@ -5368,7 +6576,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4581 }, @@ -5377,7 +6587,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4582 }, @@ -5386,7 +6598,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4595 }, @@ -5395,7 +6609,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4607 }, @@ -5404,7 +6620,9 @@ "token": "p_month_Mar_day_24", "value": "p_month_Mar_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4608 }, @@ -5413,7 +6631,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4626 }, @@ -5422,7 +6642,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4627 }, @@ -5431,7 +6653,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4640 }, @@ -5440,7 +6664,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4652 }, @@ -5449,7 +6675,9 @@ "token": "p_month_Mar_day_25", "value": "p_month_Mar_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4653 }, @@ -5458,7 +6686,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4671 }, @@ -5467,7 +6697,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4672 }, @@ -5476,7 +6708,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4685 }, @@ -5485,7 +6719,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4697 }, @@ -5494,7 +6730,9 @@ "token": "p_month_Mar_day_26", "value": "p_month_Mar_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4698 }, @@ -5503,7 +6741,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4716 }, @@ -5512,7 +6752,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4717 }, @@ -5521,7 +6763,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4730 }, @@ -5530,7 +6774,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4742 }, @@ -5539,7 +6785,9 @@ "token": "p_month_Mar_day_27", "value": "p_month_Mar_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4743 }, @@ -5548,7 +6796,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4761 }, @@ -5557,7 +6807,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4762 }, @@ -5566,7 +6818,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4775 }, @@ -5575,7 +6829,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4787 }, @@ -5584,7 +6840,9 @@ "token": "p_month_Mar_day_28", "value": "p_month_Mar_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4788 }, @@ -5593,7 +6851,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4806 }, @@ -5602,7 +6862,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4807 }, @@ -5611,7 +6873,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4820 }, @@ -5620,7 +6884,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4832 }, @@ -5629,7 +6895,9 @@ "token": "p_month_Mar_day_29", "value": "p_month_Mar_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4833 }, @@ -5638,7 +6906,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4851 }, @@ -5647,7 +6917,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4852 }, @@ -5656,7 +6928,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4865 }, @@ -5665,7 +6939,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4877 }, @@ -5674,7 +6950,9 @@ "token": "p_month_Mar_day_30", "value": "p_month_Mar_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4878 }, @@ -5683,7 +6961,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4896 }, @@ -5692,7 +6972,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4897 }, @@ -5701,7 +6983,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4910 }, @@ -5710,7 +6994,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4922 }, @@ -5719,7 +7005,9 @@ "token": "p_month_Mar_day_31", "value": "p_month_Mar_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4923 }, @@ -5728,7 +7016,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4941 }, @@ -5737,7 +7027,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4950 }, @@ -5746,7 +7038,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 4951 }, @@ -5755,7 +7049,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4952 }, @@ -5764,7 +7060,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 4961 }, @@ -5773,7 +7071,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4970 }, @@ -5782,7 +7082,9 @@ "token": "p_month_Apr", "value": "p_month_Apr", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 4971 }, @@ -5791,7 +7093,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4982 }, @@ -5800,7 +7104,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 4987 }, @@ -5809,7 +7115,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 4993 }, @@ -5818,7 +7126,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 5002 }, @@ -5827,7 +7137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5011 }, @@ -5836,7 +7148,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5012 }, @@ -5845,7 +7159,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 5013 }, @@ -5854,7 +7170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5014 }, @@ -5863,7 +7181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5015 }, @@ -5872,7 +7192,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5016 }, @@ -5881,7 +7203,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5017 }, @@ -5890,7 +7214,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5030 }, @@ -5899,7 +7225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5042 }, @@ -5908,7 +7236,9 @@ "token": "p_month_Apr_day_0", "value": "p_month_Apr_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5043 }, @@ -5917,7 +7247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5060 }, @@ -5926,7 +7258,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5061 }, @@ -5935,7 +7269,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5074 }, @@ -5944,7 +7280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5086 }, @@ -5953,7 +7291,9 @@ "token": "p_month_Apr_day_1", "value": "p_month_Apr_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5087 }, @@ -5962,7 +7302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5104 }, @@ -5971,7 +7313,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5105 }, @@ -5980,7 +7324,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5118 }, @@ -5989,7 +7335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5130 }, @@ -5998,7 +7346,9 @@ "token": "p_month_Apr_day_2", "value": "p_month_Apr_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5131 }, @@ -6007,7 +7357,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5148 }, @@ -6016,7 +7368,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5149 }, @@ -6025,7 +7379,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5162 }, @@ -6034,7 +7390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5174 }, @@ -6043,7 +7401,9 @@ "token": "p_month_Apr_day_3", "value": "p_month_Apr_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5175 }, @@ -6052,7 +7412,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5192 }, @@ -6061,7 +7423,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5193 }, @@ -6070,7 +7434,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5206 }, @@ -6079,7 +7445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5218 }, @@ -6088,7 +7456,9 @@ "token": "p_month_Apr_day_4", "value": "p_month_Apr_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5219 }, @@ -6097,7 +7467,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5236 }, @@ -6106,7 +7478,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5237 }, @@ -6115,7 +7489,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5250 }, @@ -6124,7 +7500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5262 }, @@ -6133,7 +7511,9 @@ "token": "p_month_Apr_day_5", "value": "p_month_Apr_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5263 }, @@ -6142,7 +7522,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5280 }, @@ -6151,7 +7533,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5281 }, @@ -6160,7 +7544,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5294 }, @@ -6169,7 +7555,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5306 }, @@ -6178,7 +7566,9 @@ "token": "p_month_Apr_day_6", "value": "p_month_Apr_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5307 }, @@ -6187,7 +7577,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5324 }, @@ -6196,7 +7588,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5325 }, @@ -6205,7 +7599,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5338 }, @@ -6214,7 +7610,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5350 }, @@ -6223,7 +7621,9 @@ "token": "p_month_Apr_day_7", "value": "p_month_Apr_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5351 }, @@ -6232,7 +7632,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5368 }, @@ -6241,7 +7643,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5369 }, @@ -6250,7 +7654,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5382 }, @@ -6259,7 +7665,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5394 }, @@ -6268,7 +7676,9 @@ "token": "p_month_Apr_day_8", "value": "p_month_Apr_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5395 }, @@ -6277,7 +7687,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5412 }, @@ -6286,7 +7698,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5413 }, @@ -6295,7 +7709,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5426 }, @@ -6304,7 +7720,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5438 }, @@ -6313,7 +7731,9 @@ "token": "p_month_Apr_day_9", "value": "p_month_Apr_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5439 }, @@ -6322,7 +7742,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5456 }, @@ -6331,7 +7753,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5457 }, @@ -6340,7 +7764,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5470 }, @@ -6349,7 +7775,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5482 }, @@ -6358,7 +7786,9 @@ "token": "p_month_Apr_day_10", "value": "p_month_Apr_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5483 }, @@ -6367,7 +7797,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5501 }, @@ -6376,7 +7808,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5502 }, @@ -6385,7 +7819,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5515 }, @@ -6394,7 +7830,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5527 }, @@ -6403,7 +7841,9 @@ "token": "p_month_Apr_day_11", "value": "p_month_Apr_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5528 }, @@ -6412,7 +7852,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5546 }, @@ -6421,7 +7863,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5547 }, @@ -6430,7 +7874,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5560 }, @@ -6439,7 +7885,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5572 }, @@ -6448,7 +7896,9 @@ "token": "p_month_Apr_day_12", "value": "p_month_Apr_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5573 }, @@ -6457,7 +7907,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5591 }, @@ -6466,7 +7918,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5592 }, @@ -6475,7 +7929,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5605 }, @@ -6484,7 +7940,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5617 }, @@ -6493,7 +7951,9 @@ "token": "p_month_Apr_day_13", "value": "p_month_Apr_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5618 }, @@ -6502,7 +7962,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5636 }, @@ -6511,7 +7973,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5637 }, @@ -6520,7 +7984,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5650 }, @@ -6529,7 +7995,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5662 }, @@ -6538,7 +8006,9 @@ "token": "p_month_Apr_day_14", "value": "p_month_Apr_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5663 }, @@ -6547,7 +8017,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5681 }, @@ -6556,7 +8028,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5682 }, @@ -6565,7 +8039,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5695 }, @@ -6574,7 +8050,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5707 }, @@ -6583,7 +8061,9 @@ "token": "p_month_Apr_day_15", "value": "p_month_Apr_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5708 }, @@ -6592,7 +8072,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5726 }, @@ -6601,7 +8083,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5727 }, @@ -6610,7 +8094,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5740 }, @@ -6619,7 +8105,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5752 }, @@ -6628,7 +8116,9 @@ "token": "p_month_Apr_day_16", "value": "p_month_Apr_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5753 }, @@ -6637,7 +8127,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5771 }, @@ -6646,7 +8138,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5772 }, @@ -6655,7 +8149,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5785 }, @@ -6664,7 +8160,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5797 }, @@ -6673,7 +8171,9 @@ "token": "p_month_Apr_day_17", "value": "p_month_Apr_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5798 }, @@ -6682,7 +8182,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5816 }, @@ -6691,7 +8193,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5817 }, @@ -6700,7 +8204,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5830 }, @@ -6709,7 +8215,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5842 }, @@ -6718,7 +8226,9 @@ "token": "p_month_Apr_day_18", "value": "p_month_Apr_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5843 }, @@ -6727,7 +8237,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5861 }, @@ -6736,7 +8248,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5862 }, @@ -6745,7 +8259,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5875 }, @@ -6754,7 +8270,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5887 }, @@ -6763,7 +8281,9 @@ "token": "p_month_Apr_day_19", "value": "p_month_Apr_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5888 }, @@ -6772,7 +8292,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5906 }, @@ -6781,7 +8303,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5907 }, @@ -6790,7 +8314,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5920 }, @@ -6799,7 +8325,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5932 }, @@ -6808,7 +8336,9 @@ "token": "p_month_Apr_day_20", "value": "p_month_Apr_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5933 }, @@ -6817,7 +8347,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5951 }, @@ -6826,7 +8358,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5952 }, @@ -6835,7 +8369,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5965 }, @@ -6844,7 +8380,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5977 }, @@ -6853,7 +8391,9 @@ "token": "p_month_Apr_day_21", "value": "p_month_Apr_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 5978 }, @@ -6862,7 +8402,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 5996 }, @@ -6871,7 +8413,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 5997 }, @@ -6880,7 +8424,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6010 }, @@ -6889,7 +8435,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6022 }, @@ -6898,7 +8446,9 @@ "token": "p_month_Apr_day_22", "value": "p_month_Apr_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6023 }, @@ -6907,7 +8457,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6041 }, @@ -6916,7 +8468,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6042 }, @@ -6925,7 +8479,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6055 }, @@ -6934,7 +8490,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6067 }, @@ -6943,7 +8501,9 @@ "token": "p_month_Apr_day_23", "value": "p_month_Apr_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6068 }, @@ -6952,7 +8512,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6086 }, @@ -6961,7 +8523,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6087 }, @@ -6970,7 +8534,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6100 }, @@ -6979,7 +8545,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6112 }, @@ -6988,7 +8556,9 @@ "token": "p_month_Apr_day_24", "value": "p_month_Apr_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6113 }, @@ -6997,7 +8567,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6131 }, @@ -7006,7 +8578,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6132 }, @@ -7015,7 +8589,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6145 }, @@ -7024,7 +8600,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6157 }, @@ -7033,7 +8611,9 @@ "token": "p_month_Apr_day_25", "value": "p_month_Apr_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6158 }, @@ -7042,7 +8622,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6176 }, @@ -7051,7 +8633,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6177 }, @@ -7060,7 +8644,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6190 }, @@ -7069,7 +8655,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6202 }, @@ -7078,7 +8666,9 @@ "token": "p_month_Apr_day_26", "value": "p_month_Apr_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6203 }, @@ -7087,7 +8677,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6221 }, @@ -7096,7 +8688,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6222 }, @@ -7105,7 +8699,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6235 }, @@ -7114,7 +8710,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6247 }, @@ -7123,7 +8721,9 @@ "token": "p_month_Apr_day_27", "value": "p_month_Apr_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6248 }, @@ -7132,7 +8732,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6266 }, @@ -7141,7 +8743,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6267 }, @@ -7150,7 +8754,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6280 }, @@ -7159,7 +8765,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6292 }, @@ -7168,7 +8776,9 @@ "token": "p_month_Apr_day_28", "value": "p_month_Apr_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6293 }, @@ -7177,7 +8787,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6311 }, @@ -7186,7 +8798,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6312 }, @@ -7195,7 +8809,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6325 }, @@ -7204,7 +8820,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6337 }, @@ -7213,7 +8831,9 @@ "token": "p_month_Apr_day_29", "value": "p_month_Apr_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6338 }, @@ -7222,7 +8842,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6356 }, @@ -7231,7 +8853,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6357 }, @@ -7240,7 +8864,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6370 }, @@ -7249,7 +8875,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6382 }, @@ -7258,7 +8886,9 @@ "token": "p_month_Apr_day_30", "value": "p_month_Apr_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6383 }, @@ -7267,7 +8897,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6401 }, @@ -7276,7 +8908,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6402 }, @@ -7285,7 +8919,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6415 }, @@ -7294,7 +8930,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6427 }, @@ -7303,7 +8941,9 @@ "token": "p_month_Apr_day_31", "value": "p_month_Apr_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6428 }, @@ -7312,7 +8952,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6446 }, @@ -7321,7 +8963,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6455 }, @@ -7330,7 +8974,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6456 }, @@ -7339,7 +8985,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6457 }, @@ -7348,7 +8996,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6466 }, @@ -7357,7 +9007,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6475 }, @@ -7366,7 +9018,9 @@ "token": "p_month_Mai", "value": "p_month_Mai", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6476 }, @@ -7375,7 +9029,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6487 }, @@ -7384,7 +9040,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 6492 }, @@ -7393,7 +9051,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6498 }, @@ -7402,7 +9062,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 6507 }, @@ -7411,7 +9073,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6516 }, @@ -7420,7 +9084,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6517 }, @@ -7429,7 +9095,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 6518 }, @@ -7438,7 +9106,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6519 }, @@ -7447,7 +9117,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6520 }, @@ -7456,7 +9128,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6521 }, @@ -7465,7 +9139,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6522 }, @@ -7474,7 +9150,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6535 }, @@ -7483,7 +9161,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6547 }, @@ -7492,7 +9172,9 @@ "token": "p_month_Mai_day_0", "value": "p_month_Mai_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6548 }, @@ -7501,7 +9183,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6565 }, @@ -7510,7 +9194,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6566 }, @@ -7519,7 +9205,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6579 }, @@ -7528,7 +9216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6591 }, @@ -7537,7 +9227,9 @@ "token": "p_month_Mai_day_1", "value": "p_month_Mai_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6592 }, @@ -7546,7 +9238,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6609 }, @@ -7555,7 +9249,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6610 }, @@ -7564,7 +9260,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6623 }, @@ -7573,7 +9271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6635 }, @@ -7582,7 +9282,9 @@ "token": "p_month_Mai_day_2", "value": "p_month_Mai_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6636 }, @@ -7591,7 +9293,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6653 }, @@ -7600,7 +9304,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6654 }, @@ -7609,7 +9315,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6667 }, @@ -7618,7 +9326,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6679 }, @@ -7627,7 +9337,9 @@ "token": "p_month_Mai_day_3", "value": "p_month_Mai_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6680 }, @@ -7636,7 +9348,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6697 }, @@ -7645,7 +9359,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6698 }, @@ -7654,7 +9370,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6711 }, @@ -7663,7 +9381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6723 }, @@ -7672,7 +9392,9 @@ "token": "p_month_Mai_day_4", "value": "p_month_Mai_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6724 }, @@ -7681,7 +9403,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6741 }, @@ -7690,7 +9414,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6742 }, @@ -7699,7 +9425,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6755 }, @@ -7708,7 +9436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6767 }, @@ -7717,7 +9447,9 @@ "token": "p_month_Mai_day_5", "value": "p_month_Mai_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6768 }, @@ -7726,7 +9458,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6785 }, @@ -7735,7 +9469,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6786 }, @@ -7744,7 +9480,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6799 }, @@ -7753,7 +9491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6811 }, @@ -7762,7 +9502,9 @@ "token": "p_month_Mai_day_6", "value": "p_month_Mai_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6812 }, @@ -7771,7 +9513,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6829 }, @@ -7780,7 +9524,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6830 }, @@ -7789,7 +9535,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6843 }, @@ -7798,7 +9546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6855 }, @@ -7807,7 +9557,9 @@ "token": "p_month_Mai_day_7", "value": "p_month_Mai_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6856 }, @@ -7816,7 +9568,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6873 }, @@ -7825,7 +9579,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6874 }, @@ -7834,7 +9590,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6887 }, @@ -7843,7 +9601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6899 }, @@ -7852,7 +9612,9 @@ "token": "p_month_Mai_day_8", "value": "p_month_Mai_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6900 }, @@ -7861,7 +9623,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6917 }, @@ -7870,7 +9634,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6918 }, @@ -7879,7 +9645,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6931 }, @@ -7888,7 +9656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6943 }, @@ -7897,7 +9667,9 @@ "token": "p_month_Mai_day_9", "value": "p_month_Mai_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6944 }, @@ -7906,7 +9678,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 6961 }, @@ -7915,7 +9689,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6962 }, @@ -7924,7 +9700,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6975 }, @@ -7933,7 +9711,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 6987 }, @@ -7942,7 +9722,9 @@ "token": "p_month_Mai_day_10", "value": "p_month_Mai_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 6988 }, @@ -7951,7 +9733,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7006 }, @@ -7960,7 +9744,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7007 }, @@ -7969,7 +9755,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7020 }, @@ -7978,7 +9766,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7032 }, @@ -7987,7 +9777,9 @@ "token": "p_month_Mai_day_11", "value": "p_month_Mai_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7033 }, @@ -7996,7 +9788,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7051 }, @@ -8005,7 +9799,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7052 }, @@ -8014,7 +9810,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7065 }, @@ -8023,7 +9821,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7077 }, @@ -8032,7 +9832,9 @@ "token": "p_month_Mai_day_12", "value": "p_month_Mai_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7078 }, @@ -8041,7 +9843,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7096 }, @@ -8050,7 +9854,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7097 }, @@ -8059,7 +9865,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7110 }, @@ -8068,7 +9876,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7122 }, @@ -8077,7 +9887,9 @@ "token": "p_month_Mai_day_13", "value": "p_month_Mai_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7123 }, @@ -8086,7 +9898,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7141 }, @@ -8095,7 +9909,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7142 }, @@ -8104,7 +9920,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7155 }, @@ -8113,7 +9931,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7167 }, @@ -8122,7 +9942,9 @@ "token": "p_month_Mai_day_14", "value": "p_month_Mai_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7168 }, @@ -8131,7 +9953,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7186 }, @@ -8140,7 +9964,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7187 }, @@ -8149,7 +9975,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7200 }, @@ -8158,7 +9986,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7212 }, @@ -8167,7 +9997,9 @@ "token": "p_month_Mai_day_15", "value": "p_month_Mai_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7213 }, @@ -8176,7 +10008,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7231 }, @@ -8185,7 +10019,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7232 }, @@ -8194,7 +10030,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7245 }, @@ -8203,7 +10041,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7257 }, @@ -8212,7 +10052,9 @@ "token": "p_month_Mai_day_16", "value": "p_month_Mai_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7258 }, @@ -8221,7 +10063,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7276 }, @@ -8230,7 +10074,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7277 }, @@ -8239,7 +10085,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7290 }, @@ -8248,7 +10096,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7302 }, @@ -8257,7 +10107,9 @@ "token": "p_month_Mai_day_17", "value": "p_month_Mai_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7303 }, @@ -8266,7 +10118,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7321 }, @@ -8275,7 +10129,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7322 }, @@ -8284,7 +10140,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7335 }, @@ -8293,7 +10151,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7347 }, @@ -8302,7 +10162,9 @@ "token": "p_month_Mai_day_18", "value": "p_month_Mai_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7348 }, @@ -8311,7 +10173,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7366 }, @@ -8320,7 +10184,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7367 }, @@ -8329,7 +10195,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7380 }, @@ -8338,7 +10206,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7392 }, @@ -8347,7 +10217,9 @@ "token": "p_month_Mai_day_19", "value": "p_month_Mai_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7393 }, @@ -8356,7 +10228,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7411 }, @@ -8365,7 +10239,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7412 }, @@ -8374,7 +10250,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7425 }, @@ -8383,7 +10261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7437 }, @@ -8392,7 +10272,9 @@ "token": "p_month_Mai_day_20", "value": "p_month_Mai_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7438 }, @@ -8401,7 +10283,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7456 }, @@ -8410,7 +10294,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7457 }, @@ -8419,7 +10305,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7470 }, @@ -8428,7 +10316,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7482 }, @@ -8437,7 +10327,9 @@ "token": "p_month_Mai_day_21", "value": "p_month_Mai_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7483 }, @@ -8446,7 +10338,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7501 }, @@ -8455,7 +10349,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7502 }, @@ -8464,7 +10360,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7515 }, @@ -8473,7 +10371,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7527 }, @@ -8482,7 +10382,9 @@ "token": "p_month_Mai_day_22", "value": "p_month_Mai_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7528 }, @@ -8491,7 +10393,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7546 }, @@ -8500,7 +10404,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7547 }, @@ -8509,7 +10415,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7560 }, @@ -8518,7 +10426,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7572 }, @@ -8527,7 +10437,9 @@ "token": "p_month_Mai_day_23", "value": "p_month_Mai_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7573 }, @@ -8536,7 +10448,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7591 }, @@ -8545,7 +10459,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7592 }, @@ -8554,7 +10470,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7605 }, @@ -8563,7 +10481,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7617 }, @@ -8572,7 +10492,9 @@ "token": "p_month_Mai_day_24", "value": "p_month_Mai_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7618 }, @@ -8581,7 +10503,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7636 }, @@ -8590,7 +10514,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7637 }, @@ -8599,7 +10525,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7650 }, @@ -8608,7 +10536,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7662 }, @@ -8617,7 +10547,9 @@ "token": "p_month_Mai_day_25", "value": "p_month_Mai_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7663 }, @@ -8626,7 +10558,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7681 }, @@ -8635,7 +10569,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7682 }, @@ -8644,7 +10580,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7695 }, @@ -8653,7 +10591,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7707 }, @@ -8662,7 +10602,9 @@ "token": "p_month_Mai_day_26", "value": "p_month_Mai_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7708 }, @@ -8671,7 +10613,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7726 }, @@ -8680,7 +10624,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7727 }, @@ -8689,7 +10635,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7740 }, @@ -8698,7 +10646,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7752 }, @@ -8707,7 +10657,9 @@ "token": "p_month_Mai_day_27", "value": "p_month_Mai_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7753 }, @@ -8716,7 +10668,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7771 }, @@ -8725,7 +10679,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7772 }, @@ -8734,7 +10690,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7785 }, @@ -8743,7 +10701,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7797 }, @@ -8752,7 +10712,9 @@ "token": "p_month_Mai_day_28", "value": "p_month_Mai_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7798 }, @@ -8761,7 +10723,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7816 }, @@ -8770,7 +10734,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7817 }, @@ -8779,7 +10745,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7830 }, @@ -8788,7 +10756,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7842 }, @@ -8797,7 +10767,9 @@ "token": "p_month_Mai_day_29", "value": "p_month_Mai_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7843 }, @@ -8806,7 +10778,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7861 }, @@ -8815,7 +10789,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7862 }, @@ -8824,7 +10800,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7875 }, @@ -8833,7 +10811,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7887 }, @@ -8842,7 +10822,9 @@ "token": "p_month_Mai_day_30", "value": "p_month_Mai_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7888 }, @@ -8851,7 +10833,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7906 }, @@ -8860,7 +10844,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7907 }, @@ -8869,7 +10855,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7920 }, @@ -8878,7 +10866,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7932 }, @@ -8887,7 +10877,9 @@ "token": "p_month_Mai_day_31", "value": "p_month_Mai_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7933 }, @@ -8896,7 +10888,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7951 }, @@ -8905,7 +10899,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7960 }, @@ -8914,7 +10910,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 7961 }, @@ -8923,7 +10921,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7962 }, @@ -8932,7 +10932,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7971 }, @@ -8941,7 +10943,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7980 }, @@ -8950,7 +10954,9 @@ "token": "p_month_Jun", "value": "p_month_Jun", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 7981 }, @@ -8959,7 +10965,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 7992 }, @@ -8968,7 +10976,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 7997 }, @@ -8977,7 +10987,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8003 }, @@ -8986,7 +10998,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 8012 }, @@ -8995,7 +11009,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8021 }, @@ -9004,7 +11020,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8022 }, @@ -9013,7 +11031,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 8023 }, @@ -9022,7 +11042,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8024 }, @@ -9031,7 +11053,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8025 }, @@ -9040,7 +11064,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8026 }, @@ -9049,7 +11075,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8027 }, @@ -9058,7 +11086,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8040 }, @@ -9067,7 +11097,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8052 }, @@ -9076,7 +11108,9 @@ "token": "p_month_Jun_day_0", "value": "p_month_Jun_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8053 }, @@ -9085,7 +11119,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8070 }, @@ -9094,7 +11130,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8071 }, @@ -9103,7 +11141,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8084 }, @@ -9112,7 +11152,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8096 }, @@ -9121,7 +11163,9 @@ "token": "p_month_Jun_day_1", "value": "p_month_Jun_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8097 }, @@ -9130,7 +11174,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8114 }, @@ -9139,7 +11185,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8115 }, @@ -9148,7 +11196,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8128 }, @@ -9157,7 +11207,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8140 }, @@ -9166,7 +11218,9 @@ "token": "p_month_Jun_day_2", "value": "p_month_Jun_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8141 }, @@ -9175,7 +11229,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8158 }, @@ -9184,7 +11240,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8159 }, @@ -9193,7 +11251,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8172 }, @@ -9202,7 +11262,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8184 }, @@ -9211,7 +11273,9 @@ "token": "p_month_Jun_day_3", "value": "p_month_Jun_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8185 }, @@ -9220,7 +11284,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8202 }, @@ -9229,7 +11295,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8203 }, @@ -9238,7 +11306,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8216 }, @@ -9247,7 +11317,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8228 }, @@ -9256,7 +11328,9 @@ "token": "p_month_Jun_day_4", "value": "p_month_Jun_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8229 }, @@ -9265,7 +11339,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8246 }, @@ -9274,7 +11350,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8247 }, @@ -9283,7 +11361,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8260 }, @@ -9292,7 +11372,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8272 }, @@ -9301,7 +11383,9 @@ "token": "p_month_Jun_day_5", "value": "p_month_Jun_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8273 }, @@ -9310,7 +11394,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8290 }, @@ -9319,7 +11405,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8291 }, @@ -9328,7 +11416,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8304 }, @@ -9337,7 +11427,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8316 }, @@ -9346,7 +11438,9 @@ "token": "p_month_Jun_day_6", "value": "p_month_Jun_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8317 }, @@ -9355,7 +11449,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8334 }, @@ -9364,7 +11460,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8335 }, @@ -9373,7 +11471,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8348 }, @@ -9382,7 +11482,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8360 }, @@ -9391,7 +11493,9 @@ "token": "p_month_Jun_day_7", "value": "p_month_Jun_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8361 }, @@ -9400,7 +11504,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8378 }, @@ -9409,7 +11515,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8379 }, @@ -9418,7 +11526,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8392 }, @@ -9427,7 +11537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8404 }, @@ -9436,7 +11548,9 @@ "token": "p_month_Jun_day_8", "value": "p_month_Jun_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8405 }, @@ -9445,7 +11559,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8422 }, @@ -9454,7 +11570,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8423 }, @@ -9463,7 +11581,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8436 }, @@ -9472,7 +11592,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8448 }, @@ -9481,7 +11603,9 @@ "token": "p_month_Jun_day_9", "value": "p_month_Jun_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8449 }, @@ -9490,7 +11614,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8466 }, @@ -9499,7 +11625,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8467 }, @@ -9508,7 +11636,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8480 }, @@ -9517,7 +11647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8492 }, @@ -9526,7 +11658,9 @@ "token": "p_month_Jun_day_10", "value": "p_month_Jun_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8493 }, @@ -9535,7 +11669,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8511 }, @@ -9544,7 +11680,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8512 }, @@ -9553,7 +11691,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8525 }, @@ -9562,7 +11702,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8537 }, @@ -9571,7 +11713,9 @@ "token": "p_month_Jun_day_11", "value": "p_month_Jun_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8538 }, @@ -9580,7 +11724,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8556 }, @@ -9589,7 +11735,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8557 }, @@ -9598,7 +11746,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8570 }, @@ -9607,7 +11757,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8582 }, @@ -9616,7 +11768,9 @@ "token": "p_month_Jun_day_12", "value": "p_month_Jun_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8583 }, @@ -9625,7 +11779,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8601 }, @@ -9634,7 +11790,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8602 }, @@ -9643,7 +11801,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8615 }, @@ -9652,7 +11812,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8627 }, @@ -9661,7 +11823,9 @@ "token": "p_month_Jun_day_13", "value": "p_month_Jun_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8628 }, @@ -9670,7 +11834,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8646 }, @@ -9679,7 +11845,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8647 }, @@ -9688,7 +11856,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8660 }, @@ -9697,7 +11867,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8672 }, @@ -9706,7 +11878,9 @@ "token": "p_month_Jun_day_14", "value": "p_month_Jun_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8673 }, @@ -9715,7 +11889,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8691 }, @@ -9724,7 +11900,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8692 }, @@ -9733,7 +11911,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8705 }, @@ -9742,7 +11922,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8717 }, @@ -9751,7 +11933,9 @@ "token": "p_month_Jun_day_15", "value": "p_month_Jun_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8718 }, @@ -9760,7 +11944,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8736 }, @@ -9769,7 +11955,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8737 }, @@ -9778,7 +11966,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8750 }, @@ -9787,7 +11977,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8762 }, @@ -9796,7 +11988,9 @@ "token": "p_month_Jun_day_16", "value": "p_month_Jun_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8763 }, @@ -9805,7 +11999,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8781 }, @@ -9814,7 +12010,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8782 }, @@ -9823,7 +12021,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8795 }, @@ -9832,7 +12032,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8807 }, @@ -9841,7 +12043,9 @@ "token": "p_month_Jun_day_17", "value": "p_month_Jun_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8808 }, @@ -9850,7 +12054,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8826 }, @@ -9859,7 +12065,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8827 }, @@ -9868,7 +12076,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8840 }, @@ -9877,7 +12087,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8852 }, @@ -9886,7 +12098,9 @@ "token": "p_month_Jun_day_18", "value": "p_month_Jun_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8853 }, @@ -9895,7 +12109,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8871 }, @@ -9904,7 +12120,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8872 }, @@ -9913,7 +12131,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8885 }, @@ -9922,7 +12142,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8897 }, @@ -9931,7 +12153,9 @@ "token": "p_month_Jun_day_19", "value": "p_month_Jun_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8898 }, @@ -9940,7 +12164,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8916 }, @@ -9949,7 +12175,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8917 }, @@ -9958,7 +12186,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8930 }, @@ -9967,7 +12197,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8942 }, @@ -9976,7 +12208,9 @@ "token": "p_month_Jun_day_20", "value": "p_month_Jun_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8943 }, @@ -9985,7 +12219,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 8961 }, @@ -9994,7 +12230,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8962 }, @@ -10003,7 +12241,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 8975 }, @@ -10012,7 +12252,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8987 }, @@ -10021,7 +12263,9 @@ "token": "p_month_Jun_day_21", "value": "p_month_Jun_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 8988 }, @@ -10030,7 +12274,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9006 }, @@ -10039,7 +12285,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9007 }, @@ -10048,7 +12296,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9020 }, @@ -10057,7 +12307,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9032 }, @@ -10066,7 +12318,9 @@ "token": "p_month_Jun_day_22", "value": "p_month_Jun_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9033 }, @@ -10075,7 +12329,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9051 }, @@ -10084,7 +12340,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9052 }, @@ -10093,7 +12351,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9065 }, @@ -10102,7 +12362,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9077 }, @@ -10111,7 +12373,9 @@ "token": "p_month_Jun_day_23", "value": "p_month_Jun_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9078 }, @@ -10120,7 +12384,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9096 }, @@ -10129,7 +12395,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9097 }, @@ -10138,7 +12406,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9110 }, @@ -10147,7 +12417,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9122 }, @@ -10156,7 +12428,9 @@ "token": "p_month_Jun_day_24", "value": "p_month_Jun_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9123 }, @@ -10165,7 +12439,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9141 }, @@ -10174,7 +12450,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9142 }, @@ -10183,7 +12461,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9155 }, @@ -10192,7 +12472,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9167 }, @@ -10201,7 +12483,9 @@ "token": "p_month_Jun_day_25", "value": "p_month_Jun_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9168 }, @@ -10210,7 +12494,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9186 }, @@ -10219,7 +12505,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9187 }, @@ -10228,7 +12516,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9200 }, @@ -10237,7 +12527,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9212 }, @@ -10246,7 +12538,9 @@ "token": "p_month_Jun_day_26", "value": "p_month_Jun_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9213 }, @@ -10255,7 +12549,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9231 }, @@ -10264,7 +12560,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9232 }, @@ -10273,7 +12571,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9245 }, @@ -10282,7 +12582,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9257 }, @@ -10291,7 +12593,9 @@ "token": "p_month_Jun_day_27", "value": "p_month_Jun_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9258 }, @@ -10300,7 +12604,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9276 }, @@ -10309,7 +12615,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9277 }, @@ -10318,7 +12626,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9290 }, @@ -10327,7 +12637,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9302 }, @@ -10336,7 +12648,9 @@ "token": "p_month_Jun_day_28", "value": "p_month_Jun_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9303 }, @@ -10345,7 +12659,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9321 }, @@ -10354,7 +12670,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9322 }, @@ -10363,7 +12681,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9335 }, @@ -10372,7 +12692,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9347 }, @@ -10381,7 +12703,9 @@ "token": "p_month_Jun_day_29", "value": "p_month_Jun_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9348 }, @@ -10390,7 +12714,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9366 }, @@ -10399,7 +12725,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9367 }, @@ -10408,7 +12736,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9380 }, @@ -10417,7 +12747,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9392 }, @@ -10426,7 +12758,9 @@ "token": "p_month_Jun_day_30", "value": "p_month_Jun_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9393 }, @@ -10435,7 +12769,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9411 }, @@ -10444,7 +12780,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9412 }, @@ -10453,7 +12791,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9425 }, @@ -10462,7 +12802,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9437 }, @@ -10471,7 +12813,9 @@ "token": "p_month_Jun_day_31", "value": "p_month_Jun_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9438 }, @@ -10480,7 +12824,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9456 }, @@ -10489,7 +12835,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9465 }, @@ -10498,7 +12846,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9466 }, @@ -10507,7 +12857,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9467 }, @@ -10516,7 +12868,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9476 }, @@ -10525,7 +12879,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9485 }, @@ -10534,7 +12890,9 @@ "token": "p_month_Jul", "value": "p_month_Jul", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9486 }, @@ -10543,7 +12901,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9497 }, @@ -10552,7 +12912,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 9502 }, @@ -10561,7 +12923,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9508 }, @@ -10570,7 +12934,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 9517 }, @@ -10579,7 +12945,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9526 }, @@ -10588,7 +12956,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9527 }, @@ -10597,7 +12967,9 @@ "token": "6", "value": 6, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 9528 }, @@ -10606,7 +12978,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9529 }, @@ -10615,7 +12989,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9530 }, @@ -10624,7 +13000,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9531 }, @@ -10633,7 +13011,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9532 }, @@ -10642,7 +13022,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9545 }, @@ -10651,7 +13033,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9557 }, @@ -10660,7 +13044,9 @@ "token": "p_month_Jul_day_0", "value": "p_month_Jul_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9558 }, @@ -10669,7 +13055,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9575 }, @@ -10678,7 +13066,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9576 }, @@ -10687,7 +13077,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9589 }, @@ -10696,7 +13088,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9601 }, @@ -10705,7 +13099,9 @@ "token": "p_month_Jul_day_1", "value": "p_month_Jul_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9602 }, @@ -10714,7 +13110,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9619 }, @@ -10723,7 +13121,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9620 }, @@ -10732,7 +13132,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9633 }, @@ -10741,7 +13143,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9645 }, @@ -10750,7 +13154,9 @@ "token": "p_month_Jul_day_2", "value": "p_month_Jul_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9646 }, @@ -10759,7 +13165,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9663 }, @@ -10768,7 +13176,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9664 }, @@ -10777,7 +13187,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9677 }, @@ -10786,7 +13198,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9689 }, @@ -10795,7 +13209,9 @@ "token": "p_month_Jul_day_3", "value": "p_month_Jul_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9690 }, @@ -10804,7 +13220,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9707 }, @@ -10813,7 +13231,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9708 }, @@ -10822,7 +13242,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9721 }, @@ -10831,7 +13253,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9733 }, @@ -10840,7 +13264,9 @@ "token": "p_month_Jul_day_4", "value": "p_month_Jul_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9734 }, @@ -10849,7 +13275,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9751 }, @@ -10858,7 +13286,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9752 }, @@ -10867,7 +13297,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9765 }, @@ -10876,7 +13308,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9777 }, @@ -10885,7 +13319,9 @@ "token": "p_month_Jul_day_5", "value": "p_month_Jul_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9778 }, @@ -10894,7 +13330,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9795 }, @@ -10903,7 +13341,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9796 }, @@ -10912,7 +13352,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9809 }, @@ -10921,7 +13363,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9821 }, @@ -10930,7 +13374,9 @@ "token": "p_month_Jul_day_6", "value": "p_month_Jul_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9822 }, @@ -10939,7 +13385,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9839 }, @@ -10948,7 +13396,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9840 }, @@ -10957,7 +13407,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9853 }, @@ -10966,7 +13418,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9865 }, @@ -10975,7 +13429,9 @@ "token": "p_month_Jul_day_7", "value": "p_month_Jul_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9866 }, @@ -10984,7 +13440,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9883 }, @@ -10993,7 +13451,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9884 }, @@ -11002,7 +13462,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9897 }, @@ -11011,7 +13473,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9909 }, @@ -11020,7 +13484,9 @@ "token": "p_month_Jul_day_8", "value": "p_month_Jul_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9910 }, @@ -11029,7 +13495,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9927 }, @@ -11038,7 +13506,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9928 }, @@ -11047,7 +13517,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9941 }, @@ -11056,7 +13528,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9953 }, @@ -11065,7 +13539,9 @@ "token": "p_month_Jul_day_9", "value": "p_month_Jul_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9954 }, @@ -11074,7 +13550,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 9971 }, @@ -11083,7 +13561,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9972 }, @@ -11092,7 +13572,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 9985 }, @@ -11101,7 +13583,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9997 }, @@ -11110,7 +13594,9 @@ "token": "p_month_Jul_day_10", "value": "p_month_Jul_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 9998 }, @@ -11119,7 +13605,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10016 }, @@ -11128,7 +13616,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10017 }, @@ -11137,7 +13627,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10030 }, @@ -11146,7 +13638,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10042 }, @@ -11155,7 +13649,9 @@ "token": "p_month_Jul_day_11", "value": "p_month_Jul_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10043 }, @@ -11164,7 +13660,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10061 }, @@ -11173,7 +13671,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10062 }, @@ -11182,7 +13682,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10075 }, @@ -11191,7 +13693,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10087 }, @@ -11200,7 +13704,9 @@ "token": "p_month_Jul_day_12", "value": "p_month_Jul_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10088 }, @@ -11209,7 +13715,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10106 }, @@ -11218,7 +13726,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10107 }, @@ -11227,7 +13737,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10120 }, @@ -11236,7 +13748,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10132 }, @@ -11245,7 +13759,9 @@ "token": "p_month_Jul_day_13", "value": "p_month_Jul_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10133 }, @@ -11254,7 +13770,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10151 }, @@ -11263,7 +13781,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10152 }, @@ -11272,7 +13792,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10165 }, @@ -11281,7 +13803,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10177 }, @@ -11290,7 +13814,9 @@ "token": "p_month_Jul_day_14", "value": "p_month_Jul_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10178 }, @@ -11299,7 +13825,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10196 }, @@ -11308,7 +13836,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10197 }, @@ -11317,7 +13847,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10210 }, @@ -11326,7 +13858,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10222 }, @@ -11335,7 +13869,9 @@ "token": "p_month_Jul_day_15", "value": "p_month_Jul_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10223 }, @@ -11344,7 +13880,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10241 }, @@ -11353,7 +13891,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10242 }, @@ -11362,7 +13902,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10255 }, @@ -11371,7 +13913,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10267 }, @@ -11380,7 +13924,9 @@ "token": "p_month_Jul_day_16", "value": "p_month_Jul_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10268 }, @@ -11389,7 +13935,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10286 }, @@ -11398,7 +13946,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10287 }, @@ -11407,7 +13957,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10300 }, @@ -11416,7 +13968,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10312 }, @@ -11425,7 +13979,9 @@ "token": "p_month_Jul_day_17", "value": "p_month_Jul_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10313 }, @@ -11434,7 +13990,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10331 }, @@ -11443,7 +14001,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10332 }, @@ -11452,7 +14012,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10345 }, @@ -11461,7 +14023,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10357 }, @@ -11470,7 +14034,9 @@ "token": "p_month_Jul_day_18", "value": "p_month_Jul_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10358 }, @@ -11479,7 +14045,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10376 }, @@ -11488,7 +14056,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10377 }, @@ -11497,7 +14067,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10390 }, @@ -11506,7 +14078,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10402 }, @@ -11515,7 +14089,9 @@ "token": "p_month_Jul_day_19", "value": "p_month_Jul_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10403 }, @@ -11524,7 +14100,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10421 }, @@ -11533,7 +14111,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10422 }, @@ -11542,7 +14122,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10435 }, @@ -11551,7 +14133,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10447 }, @@ -11560,7 +14144,9 @@ "token": "p_month_Jul_day_20", "value": "p_month_Jul_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10448 }, @@ -11569,7 +14155,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10466 }, @@ -11578,7 +14166,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10467 }, @@ -11587,7 +14177,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10480 }, @@ -11596,7 +14188,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10492 }, @@ -11605,7 +14199,9 @@ "token": "p_month_Jul_day_21", "value": "p_month_Jul_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10493 }, @@ -11614,7 +14210,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10511 }, @@ -11623,7 +14221,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10512 }, @@ -11632,7 +14232,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10525 }, @@ -11641,7 +14243,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10537 }, @@ -11650,7 +14254,9 @@ "token": "p_month_Jul_day_22", "value": "p_month_Jul_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10538 }, @@ -11659,7 +14265,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10556 }, @@ -11668,7 +14276,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10557 }, @@ -11677,7 +14287,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10570 }, @@ -11686,7 +14298,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10582 }, @@ -11695,7 +14309,9 @@ "token": "p_month_Jul_day_23", "value": "p_month_Jul_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10583 }, @@ -11704,7 +14320,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10601 }, @@ -11713,7 +14331,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10602 }, @@ -11722,7 +14342,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10615 }, @@ -11731,7 +14353,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10627 }, @@ -11740,7 +14364,9 @@ "token": "p_month_Jul_day_24", "value": "p_month_Jul_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10628 }, @@ -11749,7 +14375,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10646 }, @@ -11758,7 +14386,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10647 }, @@ -11767,7 +14397,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10660 }, @@ -11776,7 +14408,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10672 }, @@ -11785,7 +14419,9 @@ "token": "p_month_Jul_day_25", "value": "p_month_Jul_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10673 }, @@ -11794,7 +14430,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10691 }, @@ -11803,7 +14441,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10692 }, @@ -11812,7 +14452,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10705 }, @@ -11821,7 +14463,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10717 }, @@ -11830,7 +14474,9 @@ "token": "p_month_Jul_day_26", "value": "p_month_Jul_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10718 }, @@ -11839,7 +14485,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10736 }, @@ -11848,7 +14496,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10737 }, @@ -11857,7 +14507,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10750 }, @@ -11866,7 +14518,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10762 }, @@ -11875,7 +14529,9 @@ "token": "p_month_Jul_day_27", "value": "p_month_Jul_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10763 }, @@ -11884,7 +14540,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10781 }, @@ -11893,7 +14551,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10782 }, @@ -11902,7 +14562,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10795 }, @@ -11911,7 +14573,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10807 }, @@ -11920,7 +14584,9 @@ "token": "p_month_Jul_day_28", "value": "p_month_Jul_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10808 }, @@ -11929,7 +14595,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10826 }, @@ -11938,7 +14606,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10827 }, @@ -11947,7 +14617,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10840 }, @@ -11956,7 +14628,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10852 }, @@ -11965,7 +14639,9 @@ "token": "p_month_Jul_day_29", "value": "p_month_Jul_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10853 }, @@ -11974,7 +14650,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10871 }, @@ -11983,7 +14661,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10872 }, @@ -11992,7 +14672,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10885 }, @@ -12001,7 +14683,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10897 }, @@ -12010,7 +14694,9 @@ "token": "p_month_Jul_day_30", "value": "p_month_Jul_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10898 }, @@ -12019,7 +14705,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10916 }, @@ -12028,7 +14716,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10917 }, @@ -12037,7 +14727,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10930 }, @@ -12046,7 +14738,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10942 }, @@ -12055,7 +14749,9 @@ "token": "p_month_Jul_day_31", "value": "p_month_Jul_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10943 }, @@ -12064,7 +14760,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10961 }, @@ -12073,7 +14771,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10970 }, @@ -12082,7 +14782,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 10971 }, @@ -12091,7 +14793,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10972 }, @@ -12100,7 +14804,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10981 }, @@ -12109,7 +14815,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10990 }, @@ -12118,7 +14826,9 @@ "token": "p_month_Aug", "value": "p_month_Aug", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 10991 }, @@ -12127,7 +14837,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11002 }, @@ -12136,7 +14848,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 11007 }, @@ -12145,7 +14859,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11013 }, @@ -12154,7 +14870,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 11022 }, @@ -12163,7 +14881,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11031 }, @@ -12172,7 +14892,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11032 }, @@ -12181,7 +14903,9 @@ "token": "7", "value": 7, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 11033 }, @@ -12190,7 +14914,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11034 }, @@ -12199,7 +14925,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11035 }, @@ -12208,7 +14936,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11036 }, @@ -12217,7 +14947,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11037 }, @@ -12226,7 +14958,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11050 }, @@ -12235,7 +14969,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11062 }, @@ -12244,7 +14980,9 @@ "token": "p_month_Aug_day_0", "value": "p_month_Aug_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11063 }, @@ -12253,7 +14991,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11080 }, @@ -12262,7 +15002,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11081 }, @@ -12271,7 +15013,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11094 }, @@ -12280,7 +15024,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11106 }, @@ -12289,7 +15035,9 @@ "token": "p_month_Aug_day_1", "value": "p_month_Aug_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11107 }, @@ -12298,7 +15046,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11124 }, @@ -12307,7 +15057,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11125 }, @@ -12316,7 +15068,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11138 }, @@ -12325,7 +15079,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11150 }, @@ -12334,7 +15090,9 @@ "token": "p_month_Aug_day_2", "value": "p_month_Aug_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11151 }, @@ -12343,7 +15101,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11168 }, @@ -12352,7 +15112,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11169 }, @@ -12361,7 +15123,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11182 }, @@ -12370,7 +15134,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11194 }, @@ -12379,7 +15145,9 @@ "token": "p_month_Aug_day_3", "value": "p_month_Aug_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11195 }, @@ -12388,7 +15156,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11212 }, @@ -12397,7 +15167,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11213 }, @@ -12406,7 +15178,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11226 }, @@ -12415,7 +15189,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11238 }, @@ -12424,7 +15200,9 @@ "token": "p_month_Aug_day_4", "value": "p_month_Aug_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11239 }, @@ -12433,7 +15211,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11256 }, @@ -12442,7 +15222,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11257 }, @@ -12451,7 +15233,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11270 }, @@ -12460,7 +15244,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11282 }, @@ -12469,7 +15255,9 @@ "token": "p_month_Aug_day_5", "value": "p_month_Aug_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11283 }, @@ -12478,7 +15266,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11300 }, @@ -12487,7 +15277,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11301 }, @@ -12496,7 +15288,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11314 }, @@ -12505,7 +15299,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11326 }, @@ -12514,7 +15310,9 @@ "token": "p_month_Aug_day_6", "value": "p_month_Aug_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11327 }, @@ -12523,7 +15321,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11344 }, @@ -12532,7 +15332,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11345 }, @@ -12541,7 +15343,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11358 }, @@ -12550,7 +15354,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11370 }, @@ -12559,7 +15365,9 @@ "token": "p_month_Aug_day_7", "value": "p_month_Aug_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11371 }, @@ -12568,7 +15376,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11388 }, @@ -12577,7 +15387,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11389 }, @@ -12586,7 +15398,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11402 }, @@ -12595,7 +15409,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11414 }, @@ -12604,7 +15420,9 @@ "token": "p_month_Aug_day_8", "value": "p_month_Aug_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11415 }, @@ -12613,7 +15431,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11432 }, @@ -12622,7 +15442,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11433 }, @@ -12631,7 +15453,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11446 }, @@ -12640,7 +15464,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11458 }, @@ -12649,7 +15475,9 @@ "token": "p_month_Aug_day_9", "value": "p_month_Aug_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11459 }, @@ -12658,7 +15486,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11476 }, @@ -12667,7 +15497,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11477 }, @@ -12676,7 +15508,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11490 }, @@ -12685,7 +15519,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11502 }, @@ -12694,7 +15530,9 @@ "token": "p_month_Aug_day_10", "value": "p_month_Aug_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11503 }, @@ -12703,7 +15541,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11521 }, @@ -12712,7 +15552,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11522 }, @@ -12721,7 +15563,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11535 }, @@ -12730,7 +15574,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11547 }, @@ -12739,7 +15585,9 @@ "token": "p_month_Aug_day_11", "value": "p_month_Aug_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11548 }, @@ -12748,7 +15596,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11566 }, @@ -12757,7 +15607,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11567 }, @@ -12766,7 +15618,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11580 }, @@ -12775,7 +15629,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11592 }, @@ -12784,7 +15640,9 @@ "token": "p_month_Aug_day_12", "value": "p_month_Aug_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11593 }, @@ -12793,7 +15651,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11611 }, @@ -12802,7 +15662,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11612 }, @@ -12811,7 +15673,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11625 }, @@ -12820,7 +15684,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11637 }, @@ -12829,7 +15695,9 @@ "token": "p_month_Aug_day_13", "value": "p_month_Aug_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11638 }, @@ -12838,7 +15706,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11656 }, @@ -12847,7 +15717,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11657 }, @@ -12856,7 +15728,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11670 }, @@ -12865,7 +15739,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11682 }, @@ -12874,7 +15750,9 @@ "token": "p_month_Aug_day_14", "value": "p_month_Aug_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11683 }, @@ -12883,7 +15761,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11701 }, @@ -12892,7 +15772,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11702 }, @@ -12901,7 +15783,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11715 }, @@ -12910,7 +15794,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11727 }, @@ -12919,7 +15805,9 @@ "token": "p_month_Aug_day_15", "value": "p_month_Aug_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11728 }, @@ -12928,7 +15816,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11746 }, @@ -12937,7 +15827,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11747 }, @@ -12946,7 +15838,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11760 }, @@ -12955,7 +15849,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11772 }, @@ -12964,7 +15860,9 @@ "token": "p_month_Aug_day_16", "value": "p_month_Aug_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11773 }, @@ -12973,7 +15871,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11791 }, @@ -12982,7 +15882,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11792 }, @@ -12991,7 +15893,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11805 }, @@ -13000,7 +15904,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11817 }, @@ -13009,7 +15915,9 @@ "token": "p_month_Aug_day_17", "value": "p_month_Aug_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11818 }, @@ -13018,7 +15926,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11836 }, @@ -13027,7 +15937,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11837 }, @@ -13036,7 +15948,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11850 }, @@ -13045,7 +15959,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11862 }, @@ -13054,7 +15970,9 @@ "token": "p_month_Aug_day_18", "value": "p_month_Aug_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11863 }, @@ -13063,7 +15981,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11881 }, @@ -13072,7 +15992,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11882 }, @@ -13081,7 +16003,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11895 }, @@ -13090,7 +16014,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11907 }, @@ -13099,7 +16025,9 @@ "token": "p_month_Aug_day_19", "value": "p_month_Aug_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11908 }, @@ -13108,7 +16036,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11926 }, @@ -13117,7 +16047,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11927 }, @@ -13126,7 +16058,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11940 }, @@ -13135,7 +16069,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11952 }, @@ -13144,7 +16080,9 @@ "token": "p_month_Aug_day_20", "value": "p_month_Aug_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11953 }, @@ -13153,7 +16091,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 11971 }, @@ -13162,7 +16102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11972 }, @@ -13171,7 +16113,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11985 }, @@ -13180,7 +16124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11997 }, @@ -13189,7 +16135,9 @@ "token": "p_month_Aug_day_21", "value": "p_month_Aug_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 11998 }, @@ -13198,7 +16146,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12016 }, @@ -13207,7 +16157,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12017 }, @@ -13216,7 +16168,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12030 }, @@ -13225,7 +16179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12042 }, @@ -13234,7 +16190,9 @@ "token": "p_month_Aug_day_22", "value": "p_month_Aug_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12043 }, @@ -13243,7 +16201,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12061 }, @@ -13252,7 +16212,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12062 }, @@ -13261,7 +16223,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12075 }, @@ -13270,7 +16234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12087 }, @@ -13279,7 +16245,9 @@ "token": "p_month_Aug_day_23", "value": "p_month_Aug_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12088 }, @@ -13288,7 +16256,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12106 }, @@ -13297,7 +16267,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12107 }, @@ -13306,7 +16278,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12120 }, @@ -13315,7 +16289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12132 }, @@ -13324,7 +16300,9 @@ "token": "p_month_Aug_day_24", "value": "p_month_Aug_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12133 }, @@ -13333,7 +16311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12151 }, @@ -13342,7 +16322,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12152 }, @@ -13351,7 +16333,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12165 }, @@ -13360,7 +16344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12177 }, @@ -13369,7 +16355,9 @@ "token": "p_month_Aug_day_25", "value": "p_month_Aug_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12178 }, @@ -13378,7 +16366,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12196 }, @@ -13387,7 +16377,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12197 }, @@ -13396,7 +16388,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12210 }, @@ -13405,7 +16399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12222 }, @@ -13414,7 +16410,9 @@ "token": "p_month_Aug_day_26", "value": "p_month_Aug_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12223 }, @@ -13423,7 +16421,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12241 }, @@ -13432,7 +16432,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12242 }, @@ -13441,7 +16443,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12255 }, @@ -13450,7 +16454,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12267 }, @@ -13459,7 +16465,9 @@ "token": "p_month_Aug_day_27", "value": "p_month_Aug_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12268 }, @@ -13468,7 +16476,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12286 }, @@ -13477,7 +16487,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12287 }, @@ -13486,7 +16498,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12300 }, @@ -13495,7 +16509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12312 }, @@ -13504,7 +16520,9 @@ "token": "p_month_Aug_day_28", "value": "p_month_Aug_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12313 }, @@ -13513,7 +16531,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12331 }, @@ -13522,7 +16542,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12332 }, @@ -13531,7 +16553,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12345 }, @@ -13540,7 +16564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12357 }, @@ -13549,7 +16575,9 @@ "token": "p_month_Aug_day_29", "value": "p_month_Aug_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12358 }, @@ -13558,7 +16586,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12376 }, @@ -13567,7 +16597,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12377 }, @@ -13576,7 +16608,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12390 }, @@ -13585,7 +16619,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12402 }, @@ -13594,7 +16630,9 @@ "token": "p_month_Aug_day_30", "value": "p_month_Aug_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12403 }, @@ -13603,7 +16641,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12421 }, @@ -13612,7 +16652,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12422 }, @@ -13621,7 +16663,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12435 }, @@ -13630,7 +16674,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12447 }, @@ -13639,7 +16685,9 @@ "token": "p_month_Aug_day_31", "value": "p_month_Aug_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12448 }, @@ -13648,7 +16696,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12466 }, @@ -13657,7 +16707,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12475 }, @@ -13666,7 +16718,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12476 }, @@ -13675,7 +16729,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12477 }, @@ -13684,7 +16740,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 12486 }, @@ -13693,7 +16751,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12495 }, @@ -13702,7 +16762,9 @@ "token": "p_month_Sep", "value": "p_month_Sep", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12496 }, @@ -13711,7 +16773,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12507 }, @@ -13720,7 +16784,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 12512 }, @@ -13729,7 +16795,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12518 }, @@ -13738,7 +16806,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 12527 }, @@ -13747,7 +16817,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12536 }, @@ -13756,7 +16828,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12537 }, @@ -13765,7 +16839,9 @@ "token": "8", "value": 8, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 12538 }, @@ -13774,7 +16850,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12539 }, @@ -13783,7 +16861,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12540 }, @@ -13792,7 +16872,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12541 }, @@ -13801,7 +16883,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12542 }, @@ -13810,7 +16894,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12555 }, @@ -13819,7 +16905,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12567 }, @@ -13828,7 +16916,9 @@ "token": "p_month_Sep_day_0", "value": "p_month_Sep_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12568 }, @@ -13837,7 +16927,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12585 }, @@ -13846,7 +16938,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12586 }, @@ -13855,7 +16949,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12599 }, @@ -13864,7 +16960,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12611 }, @@ -13873,7 +16971,9 @@ "token": "p_month_Sep_day_1", "value": "p_month_Sep_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12612 }, @@ -13882,7 +16982,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12629 }, @@ -13891,7 +16993,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12630 }, @@ -13900,7 +17004,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12643 }, @@ -13909,7 +17015,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12655 }, @@ -13918,7 +17026,9 @@ "token": "p_month_Sep_day_2", "value": "p_month_Sep_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12656 }, @@ -13927,7 +17037,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12673 }, @@ -13936,7 +17048,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12674 }, @@ -13945,7 +17059,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12687 }, @@ -13954,7 +17070,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12699 }, @@ -13963,7 +17081,9 @@ "token": "p_month_Sep_day_3", "value": "p_month_Sep_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12700 }, @@ -13972,7 +17092,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12717 }, @@ -13981,7 +17103,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12718 }, @@ -13990,7 +17114,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12731 }, @@ -13999,7 +17125,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12743 }, @@ -14008,7 +17136,9 @@ "token": "p_month_Sep_day_4", "value": "p_month_Sep_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12744 }, @@ -14017,7 +17147,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12761 }, @@ -14026,7 +17158,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12762 }, @@ -14035,7 +17169,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12775 }, @@ -14044,7 +17180,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12787 }, @@ -14053,7 +17191,9 @@ "token": "p_month_Sep_day_5", "value": "p_month_Sep_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12788 }, @@ -14062,7 +17202,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12805 }, @@ -14071,7 +17213,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12806 }, @@ -14080,7 +17224,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12819 }, @@ -14089,7 +17235,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12831 }, @@ -14098,7 +17246,9 @@ "token": "p_month_Sep_day_6", "value": "p_month_Sep_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12832 }, @@ -14107,7 +17257,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12849 }, @@ -14116,7 +17268,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12850 }, @@ -14125,7 +17279,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12863 }, @@ -14134,7 +17290,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12875 }, @@ -14143,7 +17301,9 @@ "token": "p_month_Sep_day_7", "value": "p_month_Sep_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12876 }, @@ -14152,7 +17312,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12893 }, @@ -14161,7 +17323,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12894 }, @@ -14170,7 +17334,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12907 }, @@ -14179,7 +17345,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12919 }, @@ -14188,7 +17356,9 @@ "token": "p_month_Sep_day_8", "value": "p_month_Sep_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12920 }, @@ -14197,7 +17367,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12937 }, @@ -14206,7 +17378,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12938 }, @@ -14215,7 +17389,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12951 }, @@ -14224,7 +17400,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12963 }, @@ -14233,7 +17411,9 @@ "token": "p_month_Sep_day_9", "value": "p_month_Sep_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 12964 }, @@ -14242,7 +17422,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 12981 }, @@ -14251,7 +17433,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12982 }, @@ -14260,7 +17444,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12995 }, @@ -14269,7 +17455,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13007 }, @@ -14278,7 +17466,9 @@ "token": "p_month_Sep_day_10", "value": "p_month_Sep_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13008 }, @@ -14287,7 +17477,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13026 }, @@ -14296,7 +17488,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13027 }, @@ -14305,7 +17499,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13040 }, @@ -14314,7 +17510,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13052 }, @@ -14323,7 +17521,9 @@ "token": "p_month_Sep_day_11", "value": "p_month_Sep_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13053 }, @@ -14332,7 +17532,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13071 }, @@ -14341,7 +17543,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13072 }, @@ -14350,7 +17554,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13085 }, @@ -14359,7 +17565,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13097 }, @@ -14368,7 +17576,9 @@ "token": "p_month_Sep_day_12", "value": "p_month_Sep_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13098 }, @@ -14377,7 +17587,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13116 }, @@ -14386,7 +17598,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13117 }, @@ -14395,7 +17609,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13130 }, @@ -14404,7 +17620,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13142 }, @@ -14413,7 +17631,9 @@ "token": "p_month_Sep_day_13", "value": "p_month_Sep_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13143 }, @@ -14422,7 +17642,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13161 }, @@ -14431,7 +17653,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13162 }, @@ -14440,7 +17664,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13175 }, @@ -14449,7 +17675,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13187 }, @@ -14458,7 +17686,9 @@ "token": "p_month_Sep_day_14", "value": "p_month_Sep_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13188 }, @@ -14467,7 +17697,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13206 }, @@ -14476,7 +17708,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13207 }, @@ -14485,7 +17719,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13220 }, @@ -14494,7 +17730,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13232 }, @@ -14503,7 +17741,9 @@ "token": "p_month_Sep_day_15", "value": "p_month_Sep_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13233 }, @@ -14512,7 +17752,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13251 }, @@ -14521,7 +17763,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13252 }, @@ -14530,7 +17774,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13265 }, @@ -14539,7 +17785,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13277 }, @@ -14548,7 +17796,9 @@ "token": "p_month_Sep_day_16", "value": "p_month_Sep_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13278 }, @@ -14557,7 +17807,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13296 }, @@ -14566,7 +17818,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13297 }, @@ -14575,7 +17829,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13310 }, @@ -14584,7 +17840,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13322 }, @@ -14593,7 +17851,9 @@ "token": "p_month_Sep_day_17", "value": "p_month_Sep_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13323 }, @@ -14602,7 +17862,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13341 }, @@ -14611,7 +17873,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13342 }, @@ -14620,7 +17884,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13355 }, @@ -14629,7 +17895,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13367 }, @@ -14638,7 +17906,9 @@ "token": "p_month_Sep_day_18", "value": "p_month_Sep_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13368 }, @@ -14647,7 +17917,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13386 }, @@ -14656,7 +17928,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13387 }, @@ -14665,7 +17939,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13400 }, @@ -14674,7 +17950,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13412 }, @@ -14683,7 +17961,9 @@ "token": "p_month_Sep_day_19", "value": "p_month_Sep_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13413 }, @@ -14692,7 +17972,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13431 }, @@ -14701,7 +17983,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13432 }, @@ -14710,7 +17994,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13445 }, @@ -14719,7 +18005,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13457 }, @@ -14728,7 +18016,9 @@ "token": "p_month_Sep_day_20", "value": "p_month_Sep_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13458 }, @@ -14737,7 +18027,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13476 }, @@ -14746,7 +18038,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13477 }, @@ -14755,7 +18049,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13490 }, @@ -14764,7 +18060,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13502 }, @@ -14773,7 +18071,9 @@ "token": "p_month_Sep_day_21", "value": "p_month_Sep_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13503 }, @@ -14782,7 +18082,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13521 }, @@ -14791,7 +18093,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13522 }, @@ -14800,7 +18104,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13535 }, @@ -14809,7 +18115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13547 }, @@ -14818,7 +18126,9 @@ "token": "p_month_Sep_day_22", "value": "p_month_Sep_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13548 }, @@ -14827,7 +18137,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13566 }, @@ -14836,7 +18148,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13567 }, @@ -14845,7 +18159,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13580 }, @@ -14854,7 +18170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13592 }, @@ -14863,7 +18181,9 @@ "token": "p_month_Sep_day_23", "value": "p_month_Sep_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13593 }, @@ -14872,7 +18192,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13611 }, @@ -14881,7 +18203,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13612 }, @@ -14890,7 +18214,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13625 }, @@ -14899,7 +18225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13637 }, @@ -14908,7 +18236,9 @@ "token": "p_month_Sep_day_24", "value": "p_month_Sep_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13638 }, @@ -14917,7 +18247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13656 }, @@ -14926,7 +18258,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13657 }, @@ -14935,7 +18269,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13670 }, @@ -14944,7 +18280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13682 }, @@ -14953,7 +18291,9 @@ "token": "p_month_Sep_day_25", "value": "p_month_Sep_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13683 }, @@ -14962,7 +18302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13701 }, @@ -14971,7 +18313,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13702 }, @@ -14980,7 +18324,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13715 }, @@ -14989,7 +18335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13727 }, @@ -14998,7 +18346,9 @@ "token": "p_month_Sep_day_26", "value": "p_month_Sep_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13728 }, @@ -15007,7 +18357,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13746 }, @@ -15016,7 +18368,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13747 }, @@ -15025,7 +18379,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13760 }, @@ -15034,7 +18390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13772 }, @@ -15043,7 +18401,9 @@ "token": "p_month_Sep_day_27", "value": "p_month_Sep_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13773 }, @@ -15052,7 +18412,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13791 }, @@ -15061,7 +18423,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13792 }, @@ -15070,7 +18434,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13805 }, @@ -15079,7 +18445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13817 }, @@ -15088,7 +18456,9 @@ "token": "p_month_Sep_day_28", "value": "p_month_Sep_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13818 }, @@ -15097,7 +18467,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13836 }, @@ -15106,7 +18478,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13837 }, @@ -15115,7 +18489,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13850 }, @@ -15124,7 +18500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13862 }, @@ -15133,7 +18511,9 @@ "token": "p_month_Sep_day_29", "value": "p_month_Sep_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13863 }, @@ -15142,7 +18522,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13881 }, @@ -15151,7 +18533,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13882 }, @@ -15160,7 +18544,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13895 }, @@ -15169,7 +18555,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13907 }, @@ -15178,7 +18566,9 @@ "token": "p_month_Sep_day_30", "value": "p_month_Sep_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13908 }, @@ -15187,7 +18577,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13926 }, @@ -15196,7 +18588,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13927 }, @@ -15205,7 +18599,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13940 }, @@ -15214,7 +18610,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13952 }, @@ -15223,7 +18621,9 @@ "token": "p_month_Sep_day_31", "value": "p_month_Sep_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 13953 }, @@ -15232,7 +18632,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13971 }, @@ -15241,7 +18643,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13980 }, @@ -15250,7 +18654,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 13981 }, @@ -15259,7 +18665,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13982 }, @@ -15268,7 +18676,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13991 }, @@ -15277,7 +18687,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14000 }, @@ -15286,7 +18698,9 @@ "token": "p_month_Oct", "value": "p_month_Oct", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14001 }, @@ -15295,7 +18709,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14012 }, @@ -15304,7 +18720,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 14017 }, @@ -15313,7 +18731,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14023 }, @@ -15322,7 +18742,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 14032 }, @@ -15331,7 +18753,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14041 }, @@ -15340,7 +18764,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14042 }, @@ -15349,7 +18775,9 @@ "token": "9", "value": 9, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 14043 }, @@ -15358,7 +18786,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14044 }, @@ -15367,7 +18797,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14045 }, @@ -15376,7 +18808,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14046 }, @@ -15385,7 +18819,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14047 }, @@ -15394,7 +18830,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14060 }, @@ -15403,7 +18841,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14072 }, @@ -15412,7 +18852,9 @@ "token": "p_month_Oct_day_0", "value": "p_month_Oct_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14073 }, @@ -15421,7 +18863,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14090 }, @@ -15430,7 +18874,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14091 }, @@ -15439,7 +18885,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14104 }, @@ -15448,7 +18896,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14116 }, @@ -15457,7 +18907,9 @@ "token": "p_month_Oct_day_1", "value": "p_month_Oct_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14117 }, @@ -15466,7 +18918,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14134 }, @@ -15475,7 +18929,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14135 }, @@ -15484,7 +18940,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14148 }, @@ -15493,7 +18951,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14160 }, @@ -15502,7 +18962,9 @@ "token": "p_month_Oct_day_2", "value": "p_month_Oct_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14161 }, @@ -15511,7 +18973,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14178 }, @@ -15520,7 +18984,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14179 }, @@ -15529,7 +18995,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14192 }, @@ -15538,7 +19006,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14204 }, @@ -15547,7 +19017,9 @@ "token": "p_month_Oct_day_3", "value": "p_month_Oct_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14205 }, @@ -15556,7 +19028,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14222 }, @@ -15565,7 +19039,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14223 }, @@ -15574,7 +19050,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14236 }, @@ -15583,7 +19061,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14248 }, @@ -15592,7 +19072,9 @@ "token": "p_month_Oct_day_4", "value": "p_month_Oct_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14249 }, @@ -15601,7 +19083,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14266 }, @@ -15610,7 +19094,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14267 }, @@ -15619,7 +19105,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14280 }, @@ -15628,7 +19116,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14292 }, @@ -15637,7 +19127,9 @@ "token": "p_month_Oct_day_5", "value": "p_month_Oct_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14293 }, @@ -15646,7 +19138,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14310 }, @@ -15655,7 +19149,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14311 }, @@ -15664,7 +19160,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14324 }, @@ -15673,7 +19171,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14336 }, @@ -15682,7 +19182,9 @@ "token": "p_month_Oct_day_6", "value": "p_month_Oct_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14337 }, @@ -15691,7 +19193,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14354 }, @@ -15700,7 +19204,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14355 }, @@ -15709,7 +19215,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14368 }, @@ -15718,7 +19226,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14380 }, @@ -15727,7 +19237,9 @@ "token": "p_month_Oct_day_7", "value": "p_month_Oct_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14381 }, @@ -15736,7 +19248,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14398 }, @@ -15745,7 +19259,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14399 }, @@ -15754,7 +19270,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14412 }, @@ -15763,7 +19281,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14424 }, @@ -15772,7 +19292,9 @@ "token": "p_month_Oct_day_8", "value": "p_month_Oct_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14425 }, @@ -15781,7 +19303,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14442 }, @@ -15790,7 +19314,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14443 }, @@ -15799,7 +19325,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14456 }, @@ -15808,7 +19336,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14468 }, @@ -15817,7 +19347,9 @@ "token": "p_month_Oct_day_9", "value": "p_month_Oct_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14469 }, @@ -15826,7 +19358,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14486 }, @@ -15835,7 +19369,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14487 }, @@ -15844,7 +19380,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14500 }, @@ -15853,7 +19391,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14512 }, @@ -15862,7 +19402,9 @@ "token": "p_month_Oct_day_10", "value": "p_month_Oct_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14513 }, @@ -15871,7 +19413,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14531 }, @@ -15880,7 +19424,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14532 }, @@ -15889,7 +19435,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14545 }, @@ -15898,7 +19446,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14557 }, @@ -15907,7 +19457,9 @@ "token": "p_month_Oct_day_11", "value": "p_month_Oct_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14558 }, @@ -15916,7 +19468,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14576 }, @@ -15925,7 +19479,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14577 }, @@ -15934,7 +19490,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14590 }, @@ -15943,7 +19501,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14602 }, @@ -15952,7 +19512,9 @@ "token": "p_month_Oct_day_12", "value": "p_month_Oct_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14603 }, @@ -15961,7 +19523,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14621 }, @@ -15970,7 +19534,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14622 }, @@ -15979,7 +19545,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14635 }, @@ -15988,7 +19556,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14647 }, @@ -15997,7 +19567,9 @@ "token": "p_month_Oct_day_13", "value": "p_month_Oct_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14648 }, @@ -16006,7 +19578,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14666 }, @@ -16015,7 +19589,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14667 }, @@ -16024,7 +19600,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14680 }, @@ -16033,7 +19611,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14692 }, @@ -16042,7 +19622,9 @@ "token": "p_month_Oct_day_14", "value": "p_month_Oct_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14693 }, @@ -16051,7 +19633,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14711 }, @@ -16060,7 +19644,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14712 }, @@ -16069,7 +19655,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14725 }, @@ -16078,7 +19666,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14737 }, @@ -16087,7 +19677,9 @@ "token": "p_month_Oct_day_15", "value": "p_month_Oct_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14738 }, @@ -16096,7 +19688,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14756 }, @@ -16105,7 +19699,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14757 }, @@ -16114,7 +19710,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14770 }, @@ -16123,7 +19721,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14782 }, @@ -16132,7 +19732,9 @@ "token": "p_month_Oct_day_16", "value": "p_month_Oct_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14783 }, @@ -16141,7 +19743,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14801 }, @@ -16150,7 +19754,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14802 }, @@ -16159,7 +19765,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14815 }, @@ -16168,7 +19776,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14827 }, @@ -16177,7 +19787,9 @@ "token": "p_month_Oct_day_17", "value": "p_month_Oct_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14828 }, @@ -16186,7 +19798,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14846 }, @@ -16195,7 +19809,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14847 }, @@ -16204,7 +19820,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14860 }, @@ -16213,7 +19831,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14872 }, @@ -16222,7 +19842,9 @@ "token": "p_month_Oct_day_18", "value": "p_month_Oct_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14873 }, @@ -16231,7 +19853,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14891 }, @@ -16240,7 +19864,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14892 }, @@ -16249,7 +19875,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14905 }, @@ -16258,7 +19886,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14917 }, @@ -16267,7 +19897,9 @@ "token": "p_month_Oct_day_19", "value": "p_month_Oct_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14918 }, @@ -16276,7 +19908,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14936 }, @@ -16285,7 +19919,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14937 }, @@ -16294,7 +19930,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14950 }, @@ -16303,7 +19941,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14962 }, @@ -16312,7 +19952,9 @@ "token": "p_month_Oct_day_20", "value": "p_month_Oct_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 14963 }, @@ -16321,7 +19963,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 14981 }, @@ -16330,7 +19974,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14982 }, @@ -16339,7 +19985,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 14995 }, @@ -16348,7 +19996,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15007 }, @@ -16357,7 +20007,9 @@ "token": "p_month_Oct_day_21", "value": "p_month_Oct_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15008 }, @@ -16366,7 +20018,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15026 }, @@ -16375,7 +20029,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15027 }, @@ -16384,7 +20040,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15040 }, @@ -16393,7 +20051,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15052 }, @@ -16402,7 +20062,9 @@ "token": "p_month_Oct_day_22", "value": "p_month_Oct_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15053 }, @@ -16411,7 +20073,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15071 }, @@ -16420,7 +20084,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15072 }, @@ -16429,7 +20095,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15085 }, @@ -16438,7 +20106,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15097 }, @@ -16447,7 +20117,9 @@ "token": "p_month_Oct_day_23", "value": "p_month_Oct_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15098 }, @@ -16456,7 +20128,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15116 }, @@ -16465,7 +20139,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15117 }, @@ -16474,7 +20150,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15130 }, @@ -16483,7 +20161,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15142 }, @@ -16492,7 +20172,9 @@ "token": "p_month_Oct_day_24", "value": "p_month_Oct_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15143 }, @@ -16501,7 +20183,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15161 }, @@ -16510,7 +20194,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15162 }, @@ -16519,7 +20205,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15175 }, @@ -16528,7 +20216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15187 }, @@ -16537,7 +20227,9 @@ "token": "p_month_Oct_day_25", "value": "p_month_Oct_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15188 }, @@ -16546,7 +20238,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15206 }, @@ -16555,7 +20249,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15207 }, @@ -16564,7 +20260,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15220 }, @@ -16573,7 +20271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15232 }, @@ -16582,7 +20282,9 @@ "token": "p_month_Oct_day_26", "value": "p_month_Oct_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15233 }, @@ -16591,7 +20293,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15251 }, @@ -16600,7 +20304,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15252 }, @@ -16609,7 +20315,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15265 }, @@ -16618,7 +20326,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15277 }, @@ -16627,7 +20337,9 @@ "token": "p_month_Oct_day_27", "value": "p_month_Oct_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15278 }, @@ -16636,7 +20348,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15296 }, @@ -16645,7 +20359,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15297 }, @@ -16654,7 +20370,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15310 }, @@ -16663,7 +20381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15322 }, @@ -16672,7 +20392,9 @@ "token": "p_month_Oct_day_28", "value": "p_month_Oct_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15323 }, @@ -16681,7 +20403,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15341 }, @@ -16690,7 +20414,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15342 }, @@ -16699,7 +20425,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15355 }, @@ -16708,7 +20436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15367 }, @@ -16717,7 +20447,9 @@ "token": "p_month_Oct_day_29", "value": "p_month_Oct_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15368 }, @@ -16726,7 +20458,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15386 }, @@ -16735,7 +20469,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15387 }, @@ -16744,7 +20480,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15400 }, @@ -16753,7 +20491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15412 }, @@ -16762,7 +20502,9 @@ "token": "p_month_Oct_day_30", "value": "p_month_Oct_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15413 }, @@ -16771,7 +20513,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15431 }, @@ -16780,7 +20524,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15432 }, @@ -16789,7 +20535,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15445 }, @@ -16798,7 +20546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15457 }, @@ -16807,7 +20557,9 @@ "token": "p_month_Oct_day_31", "value": "p_month_Oct_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15458 }, @@ -16816,7 +20568,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15476 }, @@ -16825,7 +20579,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15485 }, @@ -16834,7 +20590,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15486 }, @@ -16843,7 +20601,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15487 }, @@ -16852,7 +20612,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15496 }, @@ -16861,7 +20623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15505 }, @@ -16870,7 +20634,9 @@ "token": "p_month_Nov", "value": "p_month_Nov", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15506 }, @@ -16879,7 +20645,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15517 }, @@ -16888,7 +20656,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 15522 }, @@ -16897,7 +20667,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15528 }, @@ -16906,7 +20678,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 15537 }, @@ -16915,7 +20689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15546 }, @@ -16924,7 +20700,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15547 }, @@ -16933,7 +20711,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 15548 }, @@ -16942,7 +20722,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15550 }, @@ -16951,7 +20733,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15551 }, @@ -16960,7 +20744,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15552 }, @@ -16969,7 +20755,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15553 }, @@ -16978,7 +20766,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15566 }, @@ -16987,7 +20777,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15578 }, @@ -16996,7 +20788,9 @@ "token": "p_month_Nov_day_0", "value": "p_month_Nov_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15579 }, @@ -17005,7 +20799,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15596 }, @@ -17014,7 +20810,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15597 }, @@ -17023,7 +20821,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15610 }, @@ -17032,7 +20832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15622 }, @@ -17041,7 +20843,9 @@ "token": "p_month_Nov_day_1", "value": "p_month_Nov_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15623 }, @@ -17050,7 +20854,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15640 }, @@ -17059,7 +20865,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15641 }, @@ -17068,7 +20876,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15654 }, @@ -17077,7 +20887,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15666 }, @@ -17086,7 +20898,9 @@ "token": "p_month_Nov_day_2", "value": "p_month_Nov_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15667 }, @@ -17095,7 +20909,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15684 }, @@ -17104,7 +20920,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15685 }, @@ -17113,7 +20931,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15698 }, @@ -17122,7 +20942,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15710 }, @@ -17131,7 +20953,9 @@ "token": "p_month_Nov_day_3", "value": "p_month_Nov_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15711 }, @@ -17140,7 +20964,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15728 }, @@ -17149,7 +20975,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15729 }, @@ -17158,7 +20986,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15742 }, @@ -17167,7 +20997,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15754 }, @@ -17176,7 +21008,9 @@ "token": "p_month_Nov_day_4", "value": "p_month_Nov_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15755 }, @@ -17185,7 +21019,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15772 }, @@ -17194,7 +21030,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15773 }, @@ -17203,7 +21041,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15786 }, @@ -17212,7 +21052,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15798 }, @@ -17221,7 +21063,9 @@ "token": "p_month_Nov_day_5", "value": "p_month_Nov_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15799 }, @@ -17230,7 +21074,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15816 }, @@ -17239,7 +21085,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15817 }, @@ -17248,7 +21096,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15830 }, @@ -17257,7 +21107,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15842 }, @@ -17266,7 +21118,9 @@ "token": "p_month_Nov_day_6", "value": "p_month_Nov_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15843 }, @@ -17275,7 +21129,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15860 }, @@ -17284,7 +21140,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15861 }, @@ -17293,7 +21151,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15874 }, @@ -17302,7 +21162,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15886 }, @@ -17311,7 +21173,9 @@ "token": "p_month_Nov_day_7", "value": "p_month_Nov_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15887 }, @@ -17320,7 +21184,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15904 }, @@ -17329,7 +21195,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15905 }, @@ -17338,7 +21206,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15918 }, @@ -17347,7 +21217,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15930 }, @@ -17356,7 +21228,9 @@ "token": "p_month_Nov_day_8", "value": "p_month_Nov_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15931 }, @@ -17365,7 +21239,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15948 }, @@ -17374,7 +21250,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15949 }, @@ -17383,7 +21261,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15962 }, @@ -17392,7 +21272,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15974 }, @@ -17401,7 +21283,9 @@ "token": "p_month_Nov_day_9", "value": "p_month_Nov_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 15975 }, @@ -17410,7 +21294,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 15992 }, @@ -17419,7 +21305,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15993 }, @@ -17428,7 +21316,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16006 }, @@ -17437,7 +21327,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16018 }, @@ -17446,7 +21338,9 @@ "token": "p_month_Nov_day_10", "value": "p_month_Nov_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16019 }, @@ -17455,7 +21349,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16037 }, @@ -17464,7 +21360,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16038 }, @@ -17473,7 +21371,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16051 }, @@ -17482,7 +21382,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16063 }, @@ -17491,7 +21393,9 @@ "token": "p_month_Nov_day_11", "value": "p_month_Nov_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16064 }, @@ -17500,7 +21404,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16082 }, @@ -17509,7 +21415,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16083 }, @@ -17518,7 +21426,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16096 }, @@ -17527,7 +21437,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16108 }, @@ -17536,7 +21448,9 @@ "token": "p_month_Nov_day_12", "value": "p_month_Nov_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16109 }, @@ -17545,7 +21459,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16127 }, @@ -17554,7 +21470,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16128 }, @@ -17563,7 +21481,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16141 }, @@ -17572,7 +21492,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16153 }, @@ -17581,7 +21503,9 @@ "token": "p_month_Nov_day_13", "value": "p_month_Nov_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16154 }, @@ -17590,7 +21514,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16172 }, @@ -17599,7 +21525,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16173 }, @@ -17608,7 +21536,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16186 }, @@ -17617,7 +21547,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16198 }, @@ -17626,7 +21558,9 @@ "token": "p_month_Nov_day_14", "value": "p_month_Nov_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16199 }, @@ -17635,7 +21569,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16217 }, @@ -17644,7 +21580,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16218 }, @@ -17653,7 +21591,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16231 }, @@ -17662,7 +21602,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16243 }, @@ -17671,7 +21613,9 @@ "token": "p_month_Nov_day_15", "value": "p_month_Nov_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16244 }, @@ -17680,7 +21624,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16262 }, @@ -17689,7 +21635,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16263 }, @@ -17698,7 +21646,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16276 }, @@ -17707,7 +21657,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16288 }, @@ -17716,7 +21668,9 @@ "token": "p_month_Nov_day_16", "value": "p_month_Nov_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16289 }, @@ -17725,7 +21679,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16307 }, @@ -17734,7 +21690,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16308 }, @@ -17743,7 +21701,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16321 }, @@ -17752,7 +21712,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16333 }, @@ -17761,7 +21723,9 @@ "token": "p_month_Nov_day_17", "value": "p_month_Nov_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16334 }, @@ -17770,7 +21734,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16352 }, @@ -17779,7 +21745,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16353 }, @@ -17788,7 +21756,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16366 }, @@ -17797,7 +21767,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16378 }, @@ -17806,7 +21778,9 @@ "token": "p_month_Nov_day_18", "value": "p_month_Nov_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16379 }, @@ -17815,7 +21789,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16397 }, @@ -17824,7 +21800,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16398 }, @@ -17833,7 +21811,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16411 }, @@ -17842,7 +21822,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16423 }, @@ -17851,7 +21833,9 @@ "token": "p_month_Nov_day_19", "value": "p_month_Nov_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16424 }, @@ -17860,7 +21844,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16442 }, @@ -17869,7 +21855,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16443 }, @@ -17878,7 +21866,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16456 }, @@ -17887,7 +21877,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16468 }, @@ -17896,7 +21888,9 @@ "token": "p_month_Nov_day_20", "value": "p_month_Nov_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16469 }, @@ -17905,7 +21899,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16487 }, @@ -17914,7 +21910,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16488 }, @@ -17923,7 +21921,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16501 }, @@ -17932,7 +21932,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16513 }, @@ -17941,7 +21943,9 @@ "token": "p_month_Nov_day_21", "value": "p_month_Nov_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16514 }, @@ -17950,7 +21954,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16532 }, @@ -17959,7 +21965,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16533 }, @@ -17968,7 +21976,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16546 }, @@ -17977,7 +21987,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16558 }, @@ -17986,7 +21998,9 @@ "token": "p_month_Nov_day_22", "value": "p_month_Nov_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16559 }, @@ -17995,7 +22009,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16577 }, @@ -18004,7 +22020,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16578 }, @@ -18013,7 +22031,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16591 }, @@ -18022,7 +22042,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16603 }, @@ -18031,7 +22053,9 @@ "token": "p_month_Nov_day_23", "value": "p_month_Nov_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16604 }, @@ -18040,7 +22064,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16622 }, @@ -18049,7 +22075,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16623 }, @@ -18058,7 +22086,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16636 }, @@ -18067,7 +22097,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16648 }, @@ -18076,7 +22108,9 @@ "token": "p_month_Nov_day_24", "value": "p_month_Nov_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16649 }, @@ -18085,7 +22119,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16667 }, @@ -18094,7 +22130,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16668 }, @@ -18103,7 +22141,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16681 }, @@ -18112,7 +22152,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16693 }, @@ -18121,7 +22163,9 @@ "token": "p_month_Nov_day_25", "value": "p_month_Nov_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16694 }, @@ -18130,7 +22174,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16712 }, @@ -18139,7 +22185,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16713 }, @@ -18148,7 +22196,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16726 }, @@ -18157,7 +22207,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16738 }, @@ -18166,7 +22218,9 @@ "token": "p_month_Nov_day_26", "value": "p_month_Nov_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16739 }, @@ -18175,7 +22229,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16757 }, @@ -18184,7 +22240,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16758 }, @@ -18193,7 +22251,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16771 }, @@ -18202,7 +22262,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16783 }, @@ -18211,7 +22273,9 @@ "token": "p_month_Nov_day_27", "value": "p_month_Nov_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16784 }, @@ -18220,7 +22284,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16802 }, @@ -18229,7 +22295,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16803 }, @@ -18238,7 +22306,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16816 }, @@ -18247,7 +22317,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16828 }, @@ -18256,7 +22328,9 @@ "token": "p_month_Nov_day_28", "value": "p_month_Nov_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16829 }, @@ -18265,7 +22339,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16847 }, @@ -18274,7 +22350,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16848 }, @@ -18283,7 +22361,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16861 }, @@ -18292,7 +22372,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16873 }, @@ -18301,7 +22383,9 @@ "token": "p_month_Nov_day_29", "value": "p_month_Nov_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16874 }, @@ -18310,7 +22394,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16892 }, @@ -18319,7 +22405,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16893 }, @@ -18328,7 +22416,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16906 }, @@ -18337,7 +22427,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16918 }, @@ -18346,7 +22438,9 @@ "token": "p_month_Nov_day_30", "value": "p_month_Nov_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16919 }, @@ -18355,7 +22449,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16937 }, @@ -18364,7 +22460,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16938 }, @@ -18373,7 +22471,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16951 }, @@ -18382,7 +22482,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16963 }, @@ -18391,7 +22493,9 @@ "token": "p_month_Nov_day_31", "value": "p_month_Nov_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 16964 }, @@ -18400,7 +22504,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16982 }, @@ -18409,7 +22515,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16991 }, @@ -18418,7 +22526,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 16992 }, @@ -18427,7 +22537,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16993 }, @@ -18436,7 +22548,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17002 }, @@ -18445,7 +22559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17011 }, @@ -18454,7 +22570,9 @@ "token": "p_month_Dec", "value": "p_month_Dec", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17012 }, @@ -18463,7 +22581,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17023 }, @@ -18472,7 +22592,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 17028 }, @@ -18481,7 +22603,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17034 }, @@ -18490,7 +22614,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 17043 }, @@ -18499,7 +22625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17052 }, @@ -18508,7 +22636,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17053 }, @@ -18517,7 +22647,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 17054 }, @@ -18526,7 +22658,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17056 }, @@ -18535,7 +22669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17057 }, @@ -18544,7 +22680,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17058 }, @@ -18553,7 +22691,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17059 }, @@ -18562,7 +22702,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17072 }, @@ -18571,7 +22713,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17084 }, @@ -18580,7 +22724,9 @@ "token": "p_month_Dec_day_0", "value": "p_month_Dec_day_0", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17085 }, @@ -18589,7 +22735,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17102 }, @@ -18598,7 +22746,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17103 }, @@ -18607,7 +22757,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17116 }, @@ -18616,7 +22768,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17128 }, @@ -18625,7 +22779,9 @@ "token": "p_month_Dec_day_1", "value": "p_month_Dec_day_1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17129 }, @@ -18634,7 +22790,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17146 }, @@ -18643,7 +22801,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17147 }, @@ -18652,7 +22812,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17160 }, @@ -18661,7 +22823,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17172 }, @@ -18670,7 +22834,9 @@ "token": "p_month_Dec_day_2", "value": "p_month_Dec_day_2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17173 }, @@ -18679,7 +22845,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17190 }, @@ -18688,7 +22856,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17191 }, @@ -18697,7 +22867,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17204 }, @@ -18706,7 +22878,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17216 }, @@ -18715,7 +22889,9 @@ "token": "p_month_Dec_day_3", "value": "p_month_Dec_day_3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17217 }, @@ -18724,7 +22900,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17234 }, @@ -18733,7 +22911,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17235 }, @@ -18742,7 +22922,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17248 }, @@ -18751,7 +22933,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17260 }, @@ -18760,7 +22944,9 @@ "token": "p_month_Dec_day_4", "value": "p_month_Dec_day_4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17261 }, @@ -18769,7 +22955,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17278 }, @@ -18778,7 +22966,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17279 }, @@ -18787,7 +22977,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17292 }, @@ -18796,7 +22988,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17304 }, @@ -18805,7 +22999,9 @@ "token": "p_month_Dec_day_5", "value": "p_month_Dec_day_5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17305 }, @@ -18814,7 +23010,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17322 }, @@ -18823,7 +23021,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17323 }, @@ -18832,7 +23032,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17336 }, @@ -18841,7 +23043,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17348 }, @@ -18850,7 +23054,9 @@ "token": "p_month_Dec_day_6", "value": "p_month_Dec_day_6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17349 }, @@ -18859,7 +23065,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17366 }, @@ -18868,7 +23076,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17367 }, @@ -18877,7 +23087,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17380 }, @@ -18886,7 +23098,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17392 }, @@ -18895,7 +23109,9 @@ "token": "p_month_Dec_day_7", "value": "p_month_Dec_day_7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17393 }, @@ -18904,7 +23120,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17410 }, @@ -18913,7 +23131,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17411 }, @@ -18922,7 +23142,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17424 }, @@ -18931,7 +23153,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17436 }, @@ -18940,7 +23164,9 @@ "token": "p_month_Dec_day_8", "value": "p_month_Dec_day_8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17437 }, @@ -18949,7 +23175,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17454 }, @@ -18958,7 +23186,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17455 }, @@ -18967,7 +23197,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17468 }, @@ -18976,7 +23208,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17480 }, @@ -18985,7 +23219,9 @@ "token": "p_month_Dec_day_9", "value": "p_month_Dec_day_9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17481 }, @@ -18994,7 +23230,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17498 }, @@ -19003,7 +23241,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17499 }, @@ -19012,7 +23252,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17512 }, @@ -19021,7 +23263,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17524 }, @@ -19030,7 +23274,9 @@ "token": "p_month_Dec_day_10", "value": "p_month_Dec_day_10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17525 }, @@ -19039,7 +23285,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17543 }, @@ -19048,7 +23296,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17544 }, @@ -19057,7 +23307,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17557 }, @@ -19066,7 +23318,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17569 }, @@ -19075,7 +23329,9 @@ "token": "p_month_Dec_day_11", "value": "p_month_Dec_day_11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17570 }, @@ -19084,7 +23340,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17588 }, @@ -19093,7 +23351,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17589 }, @@ -19102,7 +23362,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17602 }, @@ -19111,7 +23373,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17614 }, @@ -19120,7 +23384,9 @@ "token": "p_month_Dec_day_12", "value": "p_month_Dec_day_12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17615 }, @@ -19129,7 +23395,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17633 }, @@ -19138,7 +23406,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17634 }, @@ -19147,7 +23417,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17647 }, @@ -19156,7 +23428,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17659 }, @@ -19165,7 +23439,9 @@ "token": "p_month_Dec_day_13", "value": "p_month_Dec_day_13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17660 }, @@ -19174,7 +23450,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17678 }, @@ -19183,7 +23461,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17679 }, @@ -19192,7 +23472,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17692 }, @@ -19201,7 +23483,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17704 }, @@ -19210,7 +23494,9 @@ "token": "p_month_Dec_day_14", "value": "p_month_Dec_day_14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17705 }, @@ -19219,7 +23505,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17723 }, @@ -19228,7 +23516,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17724 }, @@ -19237,7 +23527,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17737 }, @@ -19246,7 +23538,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17749 }, @@ -19255,7 +23549,9 @@ "token": "p_month_Dec_day_15", "value": "p_month_Dec_day_15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17750 }, @@ -19264,7 +23560,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17768 }, @@ -19273,7 +23571,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17769 }, @@ -19282,7 +23582,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17782 }, @@ -19291,7 +23593,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17794 }, @@ -19300,7 +23604,9 @@ "token": "p_month_Dec_day_16", "value": "p_month_Dec_day_16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17795 }, @@ -19309,7 +23615,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17813 }, @@ -19318,7 +23626,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17814 }, @@ -19327,7 +23637,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17827 }, @@ -19336,7 +23648,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17839 }, @@ -19345,7 +23659,9 @@ "token": "p_month_Dec_day_17", "value": "p_month_Dec_day_17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17840 }, @@ -19354,7 +23670,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17858 }, @@ -19363,7 +23681,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17859 }, @@ -19372,7 +23692,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17872 }, @@ -19381,7 +23703,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17884 }, @@ -19390,7 +23714,9 @@ "token": "p_month_Dec_day_18", "value": "p_month_Dec_day_18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17885 }, @@ -19399,7 +23725,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17903 }, @@ -19408,7 +23736,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17904 }, @@ -19417,7 +23747,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17917 }, @@ -19426,7 +23758,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17929 }, @@ -19435,7 +23769,9 @@ "token": "p_month_Dec_day_19", "value": "p_month_Dec_day_19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17930 }, @@ -19444,7 +23780,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17948 }, @@ -19453,7 +23791,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17949 }, @@ -19462,7 +23802,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17962 }, @@ -19471,7 +23813,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17974 }, @@ -19480,7 +23824,9 @@ "token": "p_month_Dec_day_20", "value": "p_month_Dec_day_20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 17975 }, @@ -19489,7 +23835,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 17993 }, @@ -19498,7 +23846,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17994 }, @@ -19507,7 +23857,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18007 }, @@ -19516,7 +23868,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18019 }, @@ -19525,7 +23879,9 @@ "token": "p_month_Dec_day_21", "value": "p_month_Dec_day_21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18020 }, @@ -19534,7 +23890,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18038 }, @@ -19543,7 +23901,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18039 }, @@ -19552,7 +23912,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18052 }, @@ -19561,7 +23923,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18064 }, @@ -19570,7 +23934,9 @@ "token": "p_month_Dec_day_22", "value": "p_month_Dec_day_22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18065 }, @@ -19579,7 +23945,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18083 }, @@ -19588,7 +23956,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18084 }, @@ -19597,7 +23967,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18097 }, @@ -19606,7 +23978,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18109 }, @@ -19615,7 +23989,9 @@ "token": "p_month_Dec_day_23", "value": "p_month_Dec_day_23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18110 }, @@ -19624,7 +24000,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18128 }, @@ -19633,7 +24011,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18129 }, @@ -19642,7 +24022,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18142 }, @@ -19651,7 +24033,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18154 }, @@ -19660,7 +24044,9 @@ "token": "p_month_Dec_day_24", "value": "p_month_Dec_day_24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18155 }, @@ -19669,7 +24055,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18173 }, @@ -19678,7 +24066,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18174 }, @@ -19687,7 +24077,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18187 }, @@ -19696,7 +24088,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18199 }, @@ -19705,7 +24099,9 @@ "token": "p_month_Dec_day_25", "value": "p_month_Dec_day_25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18200 }, @@ -19714,7 +24110,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18218 }, @@ -19723,7 +24121,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18219 }, @@ -19732,7 +24132,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18232 }, @@ -19741,7 +24143,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18244 }, @@ -19750,7 +24154,9 @@ "token": "p_month_Dec_day_26", "value": "p_month_Dec_day_26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18245 }, @@ -19759,7 +24165,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18263 }, @@ -19768,7 +24176,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18264 }, @@ -19777,7 +24187,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18277 }, @@ -19786,7 +24198,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18289 }, @@ -19795,7 +24209,9 @@ "token": "p_month_Dec_day_27", "value": "p_month_Dec_day_27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18290 }, @@ -19804,7 +24220,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18308 }, @@ -19813,7 +24231,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18309 }, @@ -19822,7 +24242,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18322 }, @@ -19831,7 +24253,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18334 }, @@ -19840,7 +24264,9 @@ "token": "p_month_Dec_day_28", "value": "p_month_Dec_day_28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18335 }, @@ -19849,7 +24275,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18353 }, @@ -19858,7 +24286,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18354 }, @@ -19867,7 +24297,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18367 }, @@ -19876,7 +24308,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18379 }, @@ -19885,7 +24319,9 @@ "token": "p_month_Dec_day_29", "value": "p_month_Dec_day_29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18380 }, @@ -19894,7 +24330,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18398 }, @@ -19903,7 +24341,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18399 }, @@ -19912,7 +24352,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18412 }, @@ -19921,7 +24363,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18424 }, @@ -19930,7 +24374,9 @@ "token": "p_month_Dec_day_30", "value": "p_month_Dec_day_30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18425 }, @@ -19939,7 +24385,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18443 }, @@ -19948,7 +24396,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18444 }, @@ -19957,7 +24407,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 18457 }, @@ -19966,7 +24418,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18469 }, @@ -19975,7 +24429,9 @@ "token": "p_month_Dec_day_31", "value": "p_month_Dec_day_31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 18470 }, @@ -19984,7 +24440,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18488 }, @@ -19993,7 +24451,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18497 }, @@ -20002,7 +24462,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18498 }, @@ -20011,30 +24473,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 18499 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 2224, - "idx": 2224 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -20096,7 +24562,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -20128,7 +24595,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -20160,7 +24628,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -20188,7 +24657,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -20216,6 +24686,44 @@ "partitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Jan", "type": "LESS THAN", @@ -20232,6 +24740,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_0", "type": null, @@ -20244,6 +24790,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_1", "type": null, @@ -20256,6 +24840,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_2", "type": null, @@ -20268,6 +24890,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_3", "type": null, @@ -20280,6 +24940,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_4", "type": null, @@ -20292,6 +24990,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_5", "type": null, @@ -20304,6 +25040,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_6", "type": null, @@ -20316,6 +25090,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_7", "type": null, @@ -20328,6 +25140,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_8", "type": null, @@ -20340,6 +25190,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_9", "type": null, @@ -20352,6 +25240,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_10", "type": null, @@ -20364,6 +25290,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_11", "type": null, @@ -20376,6 +25340,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_12", "type": null, @@ -20388,6 +25390,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_13", "type": null, @@ -20400,6 +25440,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_14", "type": null, @@ -20412,6 +25490,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_15", "type": null, @@ -20424,6 +25540,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_16", "type": null, @@ -20436,6 +25590,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_17", "type": null, @@ -20448,6 +25640,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_18", "type": null, @@ -20460,6 +25690,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_19", "type": null, @@ -20472,6 +25740,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_20", "type": null, @@ -20484,6 +25790,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_21", "type": null, @@ -20496,6 +25840,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_22", "type": null, @@ -20508,6 +25890,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_23", "type": null, @@ -20520,6 +25940,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_24", "type": null, @@ -20532,6 +25990,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_25", "type": null, @@ -20544,6 +26040,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_26", "type": null, @@ -20556,6 +26090,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_27", "type": null, @@ -20568,6 +26140,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_28", "type": null, @@ -20580,6 +26190,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_29", "type": null, @@ -20592,6 +26240,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_30", "type": null, @@ -20604,6 +26290,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jan_day_31", "type": null, @@ -20622,6 +26346,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Feb", "type": "LESS THAN", @@ -20638,6 +26400,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_0", "type": null, @@ -20650,6 +26450,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_1", "type": null, @@ -20662,6 +26500,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_2", "type": null, @@ -20674,6 +26550,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_3", "type": null, @@ -20686,6 +26600,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_4", "type": null, @@ -20698,6 +26650,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_5", "type": null, @@ -20710,6 +26700,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_6", "type": null, @@ -20722,6 +26750,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_7", "type": null, @@ -20734,6 +26800,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_8", "type": null, @@ -20746,6 +26850,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_9", "type": null, @@ -20758,6 +26900,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_10", "type": null, @@ -20770,6 +26950,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_11", "type": null, @@ -20782,6 +27000,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_12", "type": null, @@ -20794,6 +27050,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_13", "type": null, @@ -20806,6 +27100,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_14", "type": null, @@ -20818,6 +27150,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_15", "type": null, @@ -20830,6 +27200,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_16", "type": null, @@ -20842,6 +27250,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_17", "type": null, @@ -20854,6 +27300,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_18", "type": null, @@ -20866,6 +27350,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_19", "type": null, @@ -20878,6 +27400,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_20", "type": null, @@ -20890,6 +27450,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_21", "type": null, @@ -20902,6 +27500,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_22", "type": null, @@ -20914,6 +27550,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_23", "type": null, @@ -20926,6 +27600,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_24", "type": null, @@ -20938,6 +27650,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_25", "type": null, @@ -20950,6 +27700,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_26", "type": null, @@ -20962,6 +27750,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_27", "type": null, @@ -20974,6 +27800,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_28", "type": null, @@ -20986,6 +27850,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_29", "type": null, @@ -20998,6 +27900,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_30", "type": null, @@ -21010,6 +27950,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Feb_day_31", "type": null, @@ -21028,6 +28006,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Mar", "type": "LESS THAN", @@ -21044,6 +28060,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_0", "type": null, @@ -21056,6 +28110,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_1", "type": null, @@ -21068,6 +28160,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_2", "type": null, @@ -21080,6 +28210,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_3", "type": null, @@ -21092,6 +28260,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_4", "type": null, @@ -21104,6 +28310,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_5", "type": null, @@ -21116,6 +28360,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_6", "type": null, @@ -21128,6 +28410,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_7", "type": null, @@ -21140,6 +28460,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_8", "type": null, @@ -21152,6 +28510,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_9", "type": null, @@ -21164,6 +28560,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_10", "type": null, @@ -21176,6 +28610,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_11", "type": null, @@ -21188,6 +28660,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_12", "type": null, @@ -21200,6 +28710,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_13", "type": null, @@ -21212,6 +28760,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_14", "type": null, @@ -21224,6 +28810,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_15", "type": null, @@ -21236,6 +28860,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_16", "type": null, @@ -21248,6 +28910,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_17", "type": null, @@ -21260,6 +28960,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_18", "type": null, @@ -21272,6 +29010,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_19", "type": null, @@ -21284,6 +29060,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_20", "type": null, @@ -21296,6 +29110,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_21", "type": null, @@ -21308,6 +29160,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_22", "type": null, @@ -21320,6 +29210,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_23", "type": null, @@ -21332,6 +29260,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_24", "type": null, @@ -21344,6 +29310,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_25", "type": null, @@ -21356,6 +29360,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_26", "type": null, @@ -21368,6 +29410,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_27", "type": null, @@ -21380,6 +29460,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_28", "type": null, @@ -21392,6 +29510,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_29", "type": null, @@ -21404,6 +29560,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_30", "type": null, @@ -21416,6 +29610,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mar_day_31", "type": null, @@ -21434,6 +29666,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Apr", "type": "LESS THAN", @@ -21450,6 +29720,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_0", "type": null, @@ -21462,6 +29770,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_1", "type": null, @@ -21474,6 +29820,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_2", "type": null, @@ -21486,6 +29870,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_3", "type": null, @@ -21498,6 +29920,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_4", "type": null, @@ -21510,6 +29970,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_5", "type": null, @@ -21522,6 +30020,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_6", "type": null, @@ -21534,6 +30070,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_7", "type": null, @@ -21546,6 +30120,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_8", "type": null, @@ -21558,6 +30170,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_9", "type": null, @@ -21570,6 +30220,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_10", "type": null, @@ -21582,6 +30270,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_11", "type": null, @@ -21594,6 +30320,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_12", "type": null, @@ -21606,6 +30370,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_13", "type": null, @@ -21618,6 +30420,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_14", "type": null, @@ -21630,6 +30470,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_15", "type": null, @@ -21642,6 +30520,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_16", "type": null, @@ -21654,6 +30570,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_17", "type": null, @@ -21666,6 +30620,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_18", "type": null, @@ -21678,6 +30670,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_19", "type": null, @@ -21690,6 +30720,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_20", "type": null, @@ -21702,6 +30770,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_21", "type": null, @@ -21714,6 +30820,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_22", "type": null, @@ -21726,6 +30870,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_23", "type": null, @@ -21738,6 +30920,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_24", "type": null, @@ -21750,6 +30970,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_25", "type": null, @@ -21762,6 +31020,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_26", "type": null, @@ -21774,6 +31070,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_27", "type": null, @@ -21786,6 +31120,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_28", "type": null, @@ -21798,6 +31170,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_29", "type": null, @@ -21810,6 +31220,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_30", "type": null, @@ -21822,6 +31270,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Apr_day_31", "type": null, @@ -21840,6 +31326,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Mai", "type": "LESS THAN", @@ -21856,6 +31380,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_0", "type": null, @@ -21868,6 +31430,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_1", "type": null, @@ -21880,6 +31480,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_2", "type": null, @@ -21892,6 +31530,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_3", "type": null, @@ -21904,6 +31580,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_4", "type": null, @@ -21916,6 +31630,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_5", "type": null, @@ -21928,6 +31680,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_6", "type": null, @@ -21940,6 +31730,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_7", "type": null, @@ -21952,6 +31780,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_8", "type": null, @@ -21964,6 +31830,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_9", "type": null, @@ -21976,6 +31880,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_10", "type": null, @@ -21988,6 +31930,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_11", "type": null, @@ -22000,6 +31980,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_12", "type": null, @@ -22012,6 +32030,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_13", "type": null, @@ -22024,6 +32080,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_14", "type": null, @@ -22036,6 +32130,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_15", "type": null, @@ -22048,6 +32180,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_16", "type": null, @@ -22060,6 +32230,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_17", "type": null, @@ -22072,6 +32280,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_18", "type": null, @@ -22084,6 +32330,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_19", "type": null, @@ -22096,6 +32380,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_20", "type": null, @@ -22108,6 +32430,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_21", "type": null, @@ -22120,6 +32480,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_22", "type": null, @@ -22132,6 +32530,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_23", "type": null, @@ -22144,6 +32580,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_24", "type": null, @@ -22156,6 +32630,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_25", "type": null, @@ -22168,6 +32680,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_26", "type": null, @@ -22180,6 +32730,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_27", "type": null, @@ -22192,6 +32780,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_28", "type": null, @@ -22204,6 +32830,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_29", "type": null, @@ -22216,6 +32880,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_30", "type": null, @@ -22228,6 +32930,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Mai_day_31", "type": null, @@ -22246,6 +32986,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Jun", "type": "LESS THAN", @@ -22262,6 +33040,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_0", "type": null, @@ -22274,6 +33090,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_1", "type": null, @@ -22286,6 +33140,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_2", "type": null, @@ -22298,6 +33190,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_3", "type": null, @@ -22310,6 +33240,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_4", "type": null, @@ -22322,6 +33290,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_5", "type": null, @@ -22334,6 +33340,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_6", "type": null, @@ -22346,6 +33390,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_7", "type": null, @@ -22358,6 +33440,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_8", "type": null, @@ -22370,6 +33490,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_9", "type": null, @@ -22382,6 +33540,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_10", "type": null, @@ -22394,6 +33590,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_11", "type": null, @@ -22406,6 +33640,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_12", "type": null, @@ -22418,6 +33690,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_13", "type": null, @@ -22430,6 +33740,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_14", "type": null, @@ -22442,6 +33790,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_15", "type": null, @@ -22454,6 +33840,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_16", "type": null, @@ -22466,6 +33890,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_17", "type": null, @@ -22478,6 +33940,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_18", "type": null, @@ -22490,6 +33990,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_19", "type": null, @@ -22502,6 +34040,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_20", "type": null, @@ -22514,6 +34090,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_21", "type": null, @@ -22526,6 +34140,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_22", "type": null, @@ -22538,6 +34190,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_23", "type": null, @@ -22550,6 +34240,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_24", "type": null, @@ -22562,6 +34290,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_25", "type": null, @@ -22574,6 +34340,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_26", "type": null, @@ -22586,6 +34390,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_27", "type": null, @@ -22598,6 +34440,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_28", "type": null, @@ -22610,6 +34490,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_29", "type": null, @@ -22622,6 +34540,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_30", "type": null, @@ -22634,6 +34590,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jun_day_31", "type": null, @@ -22652,6 +34646,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Jul", "type": "LESS THAN", @@ -22668,6 +34700,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_0", "type": null, @@ -22680,6 +34750,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_1", "type": null, @@ -22692,6 +34800,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_2", "type": null, @@ -22704,6 +34850,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_3", "type": null, @@ -22716,6 +34900,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_4", "type": null, @@ -22728,6 +34950,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_5", "type": null, @@ -22740,6 +35000,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_6", "type": null, @@ -22752,6 +35050,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_7", "type": null, @@ -22764,6 +35100,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_8", "type": null, @@ -22776,6 +35150,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_9", "type": null, @@ -22788,6 +35200,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_10", "type": null, @@ -22800,6 +35250,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_11", "type": null, @@ -22812,6 +35300,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_12", "type": null, @@ -22824,6 +35350,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_13", "type": null, @@ -22836,6 +35400,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_14", "type": null, @@ -22848,6 +35450,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_15", "type": null, @@ -22860,6 +35500,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_16", "type": null, @@ -22872,6 +35550,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_17", "type": null, @@ -22884,6 +35600,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_18", "type": null, @@ -22896,6 +35650,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_19", "type": null, @@ -22908,6 +35700,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_20", "type": null, @@ -22920,6 +35750,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_21", "type": null, @@ -22932,6 +35800,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_22", "type": null, @@ -22944,6 +35850,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_23", "type": null, @@ -22956,6 +35900,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_24", "type": null, @@ -22968,6 +35950,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_25", "type": null, @@ -22980,6 +36000,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_26", "type": null, @@ -22992,6 +36050,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_27", "type": null, @@ -23004,6 +36100,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_28", "type": null, @@ -23016,6 +36150,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_29", "type": null, @@ -23028,6 +36200,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_30", "type": null, @@ -23040,6 +36250,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Jul_day_31", "type": null, @@ -23058,6 +36306,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Aug", "type": "LESS THAN", @@ -23074,6 +36360,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_0", "type": null, @@ -23086,6 +36410,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_1", "type": null, @@ -23098,6 +36460,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_2", "type": null, @@ -23110,6 +36510,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_3", "type": null, @@ -23122,6 +36560,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_4", "type": null, @@ -23134,6 +36610,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_5", "type": null, @@ -23146,6 +36660,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_6", "type": null, @@ -23158,6 +36710,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_7", "type": null, @@ -23170,6 +36760,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_8", "type": null, @@ -23182,6 +36810,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_9", "type": null, @@ -23194,6 +36860,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_10", "type": null, @@ -23206,6 +36910,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_11", "type": null, @@ -23218,6 +36960,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_12", "type": null, @@ -23230,6 +37010,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_13", "type": null, @@ -23242,6 +37060,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_14", "type": null, @@ -23254,6 +37110,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_15", "type": null, @@ -23266,6 +37160,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_16", "type": null, @@ -23278,6 +37210,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_17", "type": null, @@ -23290,6 +37260,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_18", "type": null, @@ -23302,6 +37310,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_19", "type": null, @@ -23314,6 +37360,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_20", "type": null, @@ -23326,6 +37410,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_21", "type": null, @@ -23338,6 +37460,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_22", "type": null, @@ -23350,6 +37510,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_23", "type": null, @@ -23362,6 +37560,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_24", "type": null, @@ -23374,6 +37610,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_25", "type": null, @@ -23386,6 +37660,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_26", "type": null, @@ -23398,6 +37710,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_27", "type": null, @@ -23410,6 +37760,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_28", "type": null, @@ -23422,6 +37810,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_29", "type": null, @@ -23434,6 +37860,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_30", "type": null, @@ -23446,6 +37910,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Aug_day_31", "type": null, @@ -23464,6 +37966,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Sep", "type": "LESS THAN", @@ -23480,6 +38020,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_0", "type": null, @@ -23492,6 +38070,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_1", "type": null, @@ -23504,6 +38120,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_2", "type": null, @@ -23516,6 +38170,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_3", "type": null, @@ -23528,6 +38220,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_4", "type": null, @@ -23540,6 +38270,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_5", "type": null, @@ -23552,6 +38320,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_6", "type": null, @@ -23564,6 +38370,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_7", "type": null, @@ -23576,6 +38420,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_8", "type": null, @@ -23588,6 +38470,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_9", "type": null, @@ -23600,6 +38520,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_10", "type": null, @@ -23612,6 +38570,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_11", "type": null, @@ -23624,6 +38620,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_12", "type": null, @@ -23636,6 +38670,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_13", "type": null, @@ -23648,6 +38720,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_14", "type": null, @@ -23660,6 +38770,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_15", "type": null, @@ -23672,6 +38820,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_16", "type": null, @@ -23684,6 +38870,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_17", "type": null, @@ -23696,6 +38920,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_18", "type": null, @@ -23708,6 +38970,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_19", "type": null, @@ -23720,6 +39020,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_20", "type": null, @@ -23732,6 +39070,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_21", "type": null, @@ -23744,6 +39120,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_22", "type": null, @@ -23756,6 +39170,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_23", "type": null, @@ -23768,6 +39220,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_24", "type": null, @@ -23780,6 +39270,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_25", "type": null, @@ -23792,6 +39320,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_26", "type": null, @@ -23804,6 +39370,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_27", "type": null, @@ -23816,6 +39420,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_28", "type": null, @@ -23828,6 +39470,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_29", "type": null, @@ -23840,6 +39520,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_30", "type": null, @@ -23852,6 +39570,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Sep_day_31", "type": null, @@ -23870,6 +39626,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Oct", "type": "LESS THAN", @@ -23886,6 +39680,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_0", "type": null, @@ -23898,6 +39730,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_1", "type": null, @@ -23910,6 +39780,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_2", "type": null, @@ -23922,6 +39830,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_3", "type": null, @@ -23934,6 +39880,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_4", "type": null, @@ -23946,6 +39930,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_5", "type": null, @@ -23958,6 +39980,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_6", "type": null, @@ -23970,6 +40030,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_7", "type": null, @@ -23982,6 +40080,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_8", "type": null, @@ -23994,6 +40130,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_9", "type": null, @@ -24006,6 +40180,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_10", "type": null, @@ -24018,6 +40230,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_11", "type": null, @@ -24030,6 +40280,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_12", "type": null, @@ -24042,6 +40330,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_13", "type": null, @@ -24054,6 +40380,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_14", "type": null, @@ -24066,6 +40430,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_15", "type": null, @@ -24078,6 +40480,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_16", "type": null, @@ -24090,6 +40530,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_17", "type": null, @@ -24102,6 +40580,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_18", "type": null, @@ -24114,6 +40630,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_19", "type": null, @@ -24126,6 +40680,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_20", "type": null, @@ -24138,6 +40730,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_21", "type": null, @@ -24150,6 +40780,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_22", "type": null, @@ -24162,6 +40830,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_23", "type": null, @@ -24174,6 +40880,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_24", "type": null, @@ -24186,6 +40930,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_25", "type": null, @@ -24198,6 +40980,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_26", "type": null, @@ -24210,6 +41030,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_27", "type": null, @@ -24222,6 +41080,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_28", "type": null, @@ -24234,6 +41130,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_29", "type": null, @@ -24246,6 +41180,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_30", "type": null, @@ -24258,6 +41230,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Oct_day_31", "type": null, @@ -24276,6 +41286,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Nov", "type": "LESS THAN", @@ -24292,6 +41340,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_0", "type": null, @@ -24304,6 +41390,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_1", "type": null, @@ -24316,6 +41440,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_2", "type": null, @@ -24328,6 +41490,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_3", "type": null, @@ -24340,6 +41540,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_4", "type": null, @@ -24352,6 +41590,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_5", "type": null, @@ -24364,6 +41640,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_6", "type": null, @@ -24376,6 +41690,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_7", "type": null, @@ -24388,6 +41740,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_8", "type": null, @@ -24400,6 +41790,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_9", "type": null, @@ -24412,6 +41840,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_10", "type": null, @@ -24424,6 +41890,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_11", "type": null, @@ -24436,6 +41940,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_12", "type": null, @@ -24448,6 +41990,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_13", "type": null, @@ -24460,6 +42040,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_14", "type": null, @@ -24472,6 +42090,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_15", "type": null, @@ -24484,6 +42140,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_16", "type": null, @@ -24496,6 +42190,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_17", "type": null, @@ -24508,6 +42240,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_18", "type": null, @@ -24520,6 +42290,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_19", "type": null, @@ -24532,6 +42340,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_20", "type": null, @@ -24544,6 +42390,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_21", "type": null, @@ -24556,6 +42440,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_22", "type": null, @@ -24568,6 +42490,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_23", "type": null, @@ -24580,6 +42540,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_24", "type": null, @@ -24592,6 +42590,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_25", "type": null, @@ -24604,6 +42640,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_26", "type": null, @@ -24616,6 +42690,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_27", "type": null, @@ -24628,6 +42740,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_28", "type": null, @@ -24640,6 +42790,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_29", "type": null, @@ -24652,6 +42840,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_30", "type": null, @@ -24664,6 +42890,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Nov_day_31", "type": null, @@ -24682,6 +42946,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p_month_Dec", "type": "LESS THAN", @@ -24698,6 +43000,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_0", "type": null, @@ -24710,6 +43050,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_1", "type": null, @@ -24722,6 +43100,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_2", "type": null, @@ -24734,6 +43150,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_3", "type": null, @@ -24746,6 +43200,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_4", "type": null, @@ -24758,6 +43250,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_5", "type": null, @@ -24770,6 +43300,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_6", "type": null, @@ -24782,6 +43350,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_7", "type": null, @@ -24794,6 +43400,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_8", "type": null, @@ -24806,6 +43450,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_9", "type": null, @@ -24818,6 +43500,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_10", "type": null, @@ -24830,6 +43550,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_11", "type": null, @@ -24842,6 +43600,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_12", "type": null, @@ -24854,6 +43650,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_13", "type": null, @@ -24866,6 +43700,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_14", "type": null, @@ -24878,6 +43750,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_15", "type": null, @@ -24890,6 +43800,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_16", "type": null, @@ -24902,6 +43850,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_17", "type": null, @@ -24914,6 +43900,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_18", "type": null, @@ -24926,6 +43950,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_19", "type": null, @@ -24938,6 +44000,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_20", "type": null, @@ -24950,6 +44050,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_21", "type": null, @@ -24962,6 +44100,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_22", "type": null, @@ -24974,6 +44150,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_23", "type": null, @@ -24986,6 +44200,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_24", "type": null, @@ -24998,6 +44250,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_25", "type": null, @@ -25010,6 +44300,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_26", "type": null, @@ -25022,6 +44350,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_27", "type": null, @@ -25034,6 +44400,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_28", "type": null, @@ -25046,6 +44450,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_29", "type": null, @@ -25058,6 +44500,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_30", "type": null, @@ -25070,6 +44550,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "p_month_Dec_day_31", "type": null, @@ -25101,9 +44619,7 @@ "last": 2222 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable12.out b/tests/data/parser/parseCreateTable12.out index 43ce41aba..63b2408e8 100644 --- a/tests/data/parser/parseCreateTable12.out +++ b/tests/data/parser/parseCreateTable12.out @@ -2,18 +2,26 @@ "query": "CREATE OR REPLACE TABLE t1 (v1 INT)\n PARTITION BY KEY (v1)\n PARTITIONS 2;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE OR REPLACE TABLE t1 (v1 INT)\n PARTITION BY KEY (v1)\n PARTITIONS 2;", "len": 75, "last": 75, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 27, + "idx": 27, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "OR REPLACE", "value": "OR REPLACE", "keyword": "OR REPLACE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -49,7 +65,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +87,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 24 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 27 }, @@ -94,7 +124,9 @@ "token": "v1", "value": "v1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 28 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -112,7 +146,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 31 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 34 }, @@ -130,7 +168,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -139,7 +179,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 38 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -157,7 +201,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 51 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 55 }, @@ -184,7 +234,9 @@ "token": "v1", "value": "v1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 56 }, @@ -193,7 +245,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 58 }, @@ -202,7 +256,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -211,7 +267,9 @@ "token": "PARTITIONS", "value": "PARTITIONS", "keyword": "PARTITIONS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 62 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -229,7 +289,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 73 }, @@ -238,30 +302,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 74 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": null } - ], - "count": 27, - "idx": 27 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -294,7 +362,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -327,9 +396,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable13.out b/tests/data/parser/parseCreateTable13.out index ea949de31..357ebfd55 100644 --- a/tests/data/parser/parseCreateTable13.out +++ b/tests/data/parser/parseCreateTable13.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE autos (\n auto_id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,\n make VARCHAR(128),\n year INTEGER,\n mileage INTEGER\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE autos (\n auto_id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,\n make VARCHAR(128),\n year INTEGER,\n mileage INTEGER\n);", "len": 138, "last": 138, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 41, + "idx": 41, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "autos", "value": "autos", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": "auto_id", "value": "auto_id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +135,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 33 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -121,7 +157,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +179,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 46 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -157,7 +201,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 55 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -175,7 +223,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 70 }, @@ -184,7 +234,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 73 }, @@ -193,7 +245,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -202,7 +256,9 @@ "token": "make", "value": "make", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 79 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -220,7 +278,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 84 }, @@ -229,7 +289,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 91 }, @@ -238,7 +300,11 @@ "token": "128", "value": 128, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 92 }, @@ -247,7 +313,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 95 }, @@ -256,7 +324,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 96 }, @@ -265,7 +335,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -274,7 +346,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 102 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -292,7 +368,9 @@ "token": "INTEGER", "value": "INTEGER", "keyword": "INTEGER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 107 }, @@ -301,7 +379,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 114 }, @@ -310,7 +390,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -319,7 +401,9 @@ "token": "mileage", "value": "mileage", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 120 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -337,7 +423,9 @@ "token": "INTEGER", "value": "INTEGER", "keyword": "INTEGER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 128 }, @@ -346,7 +434,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -355,7 +445,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 136 }, @@ -364,30 +456,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 137 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@47" + }, "flags": 0, "position": null } - ], - "count": 41, - "idx": 41 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -422,7 +518,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -448,7 +545,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -468,7 +566,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -488,7 +587,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -520,9 +620,7 @@ "last": 39 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable14.out b/tests/data/parser/parseCreateTable14.out index 0a96bf97c..f42373d60 100644 --- a/tests/data/parser/parseCreateTable14.out +++ b/tests/data/parser/parseCreateTable14.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE autos (\n auto_id INT UNSIGNED NOT NULL KEY,\n make VARCHAR(128),\n year INTEGER,\n mileage INTEGER\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE autos (\n auto_id INT UNSIGNED NOT NULL KEY,\n make VARCHAR(128),\n year INTEGER,\n mileage INTEGER\n);", "len": 123, "last": 123, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 39, + "idx": 39, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "autos", "value": "autos", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": "auto_id", "value": "auto_id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +135,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 33 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -121,7 +157,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +179,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 46 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -157,7 +201,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 55 }, @@ -166,7 +212,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 58 }, @@ -175,7 +223,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -184,7 +234,9 @@ "token": "make", "value": "make", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 64 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -202,7 +256,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 69 }, @@ -211,7 +267,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 76 }, @@ -220,7 +278,11 @@ "token": "128", "value": 128, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 77 }, @@ -229,7 +291,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 80 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 81 }, @@ -247,7 +313,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -256,7 +324,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 87 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -274,7 +346,9 @@ "token": "INTEGER", "value": "INTEGER", "keyword": "INTEGER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 92 }, @@ -283,7 +357,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 99 }, @@ -292,7 +368,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -301,7 +379,9 @@ "token": "mileage", "value": "mileage", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 105 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -319,7 +401,9 @@ "token": "INTEGER", "value": "INTEGER", "keyword": "INTEGER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 113 }, @@ -328,7 +412,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -337,7 +423,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 121 }, @@ -346,30 +434,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 122 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@45" + }, "flags": 0, "position": null } - ], - "count": 39, - "idx": 39 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -404,7 +496,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -429,7 +522,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -449,7 +543,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -469,7 +564,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -501,9 +597,7 @@ "last": 37 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable15.out b/tests/data/parser/parseCreateTable15.out index 8d60f1659..8425bc2cf 100644 --- a/tests/data/parser/parseCreateTable15.out +++ b/tests/data/parser/parseCreateTable15.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE autos (\n auto_id INT UNSIGNED ZEROFILL NOT NULL KEY,\n make VARCHAR(128),\n year INTEGER,\n mileage INTEGER\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE autos (\n auto_id INT UNSIGNED ZEROFILL NOT NULL KEY,\n make VARCHAR(128),\n year INTEGER,\n mileage INTEGER\n);", "len": 132, "last": 132, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 41, + "idx": 41, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "autos", "value": "autos", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": "auto_id", "value": "auto_id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +135,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 33 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -121,7 +157,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +179,9 @@ "token": "ZEROFILL", "value": "ZEROFILL", "keyword": "ZEROFILL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -157,7 +201,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 55 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -175,7 +223,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 64 }, @@ -184,7 +234,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 67 }, @@ -193,7 +245,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -202,7 +256,9 @@ "token": "make", "value": "make", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 73 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -220,7 +278,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 78 }, @@ -229,7 +289,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 85 }, @@ -238,7 +300,11 @@ "token": "128", "value": 128, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 86 }, @@ -247,7 +313,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 89 }, @@ -256,7 +324,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 90 }, @@ -265,7 +335,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -274,7 +346,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 96 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -292,7 +368,9 @@ "token": "INTEGER", "value": "INTEGER", "keyword": "INTEGER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 101 }, @@ -301,7 +379,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 108 }, @@ -310,7 +390,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -319,7 +401,9 @@ "token": "mileage", "value": "mileage", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 114 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -337,7 +423,9 @@ "token": "INTEGER", "value": "INTEGER", "keyword": "INTEGER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 122 }, @@ -346,7 +434,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -355,7 +445,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 130 }, @@ -364,30 +456,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 131 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@47" + }, "flags": 0, "position": null } - ], - "count": 41, - "idx": 41 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -423,7 +519,8 @@ "4": "UNSIGNED", "5": "ZEROFILL" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -448,7 +545,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -468,7 +566,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -488,7 +587,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -520,9 +620,7 @@ "last": 39 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable16.out b/tests/data/parser/parseCreateTable16.out index 2bb8f761c..484b0878f 100644 --- a/tests/data/parser/parseCreateTable16.out +++ b/tests/data/parser/parseCreateTable16.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE test (\n user_id INT,\n INDEX `test` (user_id ASC)\n)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE test (\n user_id INT,\n INDEX `test` (user_id ASC)\n)", "len": 65, "last": 65, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "user_id", "value": "user_id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -103,7 +135,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 30 }, @@ -112,7 +146,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 33 }, @@ -121,7 +157,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 37 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +190,11 @@ "token": "`test`", "value": "test", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 43 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -166,7 +214,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 50 }, @@ -175,7 +225,9 @@ "token": "user_id", "value": "user_id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 51 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -193,7 +247,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 59 }, @@ -202,7 +258,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 62 }, @@ -211,7 +269,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -220,30 +280,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 64 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -276,7 +340,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -332,9 +397,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable17.out b/tests/data/parser/parseCreateTable17.out index 4d017723d..5f8aaf461 100644 --- a/tests/data/parser/parseCreateTable17.out +++ b/tests/data/parser/parseCreateTable17.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `autos8` (\n `auto_id` int(10) UNSIGNED NOT NULL UNIQUE KEY,\n `make` varchar(128) DEFAULT NULL,\n `year` int(11) DEFAULT NULL,\n `mileage` int(11) DEFAULT NULL,\n `city` point NOT NULL,\n SPATIAL INDEX `city_index` (`city`)\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `autos8` (\n `auto_id` int(10) UNSIGNED NOT NULL UNIQUE KEY,\n `make` varchar(128) DEFAULT NULL,\n `year` int(11) DEFAULT NULL,\n `mileage` int(11) DEFAULT NULL,\n `city` point NOT NULL,\n SPATIAL INDEX `city_index` (`city`)\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;", "len": 323, "last": 323, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 94, + "idx": 94, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`autos8`", "value": "autos8", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 22 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +113,9 @@ "token": "`auto_id`", "value": "auto_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 28 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +135,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 38 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 41 }, @@ -121,7 +157,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 42 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 44 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -148,7 +192,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -166,7 +214,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 55 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -184,7 +236,9 @@ "token": "UNIQUE KEY", "value": "UNIQUE KEY", "keyword": "UNIQUE KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 64 }, @@ -193,7 +247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 74 }, @@ -202,7 +258,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -211,7 +269,9 @@ "token": "`make`", "value": "make", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 80 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -229,7 +291,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 87 }, @@ -238,7 +302,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 94 }, @@ -247,7 +313,9 @@ "token": "128", "value": 128, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 95 }, @@ -256,7 +324,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 98 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -274,7 +346,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 100 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -292,7 +368,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -301,7 +379,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 112 }, @@ -310,7 +390,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -319,7 +401,9 @@ "token": "`year`", "value": "year", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 118 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -337,7 +423,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 125 }, @@ -346,7 +434,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 128 }, @@ -355,7 +445,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 129 }, @@ -364,7 +456,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 131 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -382,7 +478,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 133 }, @@ -391,7 +489,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -400,7 +500,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 141 }, @@ -409,7 +511,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 145 }, @@ -418,7 +522,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 146 }, @@ -427,7 +533,9 @@ "token": "`mileage`", "value": "mileage", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 151 }, @@ -436,7 +544,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -445,7 +555,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 161 }, @@ -454,7 +566,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 164 }, @@ -463,7 +577,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 165 }, @@ -472,7 +588,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 167 }, @@ -481,7 +599,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 168 }, @@ -490,7 +610,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 169 }, @@ -499,7 +621,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -508,7 +632,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 177 }, @@ -517,7 +643,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 181 }, @@ -526,7 +654,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -535,7 +665,9 @@ "token": "`city`", "value": "city", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 187 }, @@ -544,7 +676,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 193 }, @@ -553,7 +687,9 @@ "token": "point", "value": "point", "keyword": "POINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 194 }, @@ -562,7 +698,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -571,7 +709,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 200 }, @@ -580,7 +720,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 208 }, @@ -589,7 +731,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 209 }, @@ -598,7 +742,9 @@ "token": "SPATIAL INDEX", "value": "SPATIAL INDEX", "keyword": "SPATIAL INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 214 }, @@ -607,7 +753,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 227 }, @@ -616,7 +764,9 @@ "token": "`city_index`", "value": "city_index", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 228 }, @@ -625,7 +775,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 240 }, @@ -634,7 +786,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 241 }, @@ -643,7 +797,9 @@ "token": "`city`", "value": "city", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 242 }, @@ -652,7 +808,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 248 }, @@ -661,7 +819,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 249 }, @@ -670,7 +830,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 250 }, @@ -679,7 +841,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 251 }, @@ -688,7 +852,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 252 }, @@ -697,7 +863,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 258 }, @@ -706,7 +874,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 259 }, @@ -715,7 +885,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 260 }, @@ -724,7 +896,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 261 }, @@ -733,7 +909,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 267 }, @@ -742,7 +920,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 268 }, @@ -751,7 +931,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 283 }, @@ -760,7 +942,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 284 }, @@ -769,7 +953,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -778,7 +964,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@87" + }, "flags": 0, "position": 286 }, @@ -787,7 +975,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 293 }, @@ -796,7 +986,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 294 }, @@ -805,7 +997,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 301 }, @@ -814,7 +1008,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 302 }, @@ -823,7 +1019,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 303 }, @@ -832,7 +1030,9 @@ "token": "utf8mb4_general_ci", "value": "utf8mb4_general_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@87" + }, "flags": 0, "position": 304 }, @@ -841,30 +1041,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 322 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@101" + }, "flags": 0, "position": null } - ], - "count": 94, - "idx": 94 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -920,7 +1124,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -945,7 +1150,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -983,7 +1189,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1021,7 +1228,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1057,7 +1265,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1114,9 +1323,7 @@ "last": 92 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable18.out b/tests/data/parser/parseCreateTable18.out index 7ae808eda..71d49cd20 100644 --- a/tests/data/parser/parseCreateTable18.out +++ b/tests/data/parser/parseCreateTable18.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE test (\n id INT UNSIGNED NOT NULL AUTO_INCREMENT,\n data VARCHAR(64) DEFAULT NULL,\n ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n PRIMARY KEY (id)\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE test (\n id INT UNSIGNED NOT NULL AUTO_INCREMENT,\n data VARCHAR(64) DEFAULT NULL,\n ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n PRIMARY KEY (id)\n);", "len": 196, "last": 196, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 55, + "idx": 55, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -103,7 +135,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 25 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -121,7 +157,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 38 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -157,7 +201,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 47 }, @@ -166,7 +212,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 61 }, @@ -175,7 +223,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -184,7 +234,9 @@ "token": "data", "value": "data", "keyword": "DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 65 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -202,7 +256,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 70 }, @@ -211,7 +267,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 77 }, @@ -220,7 +278,11 @@ "token": "64", "value": 64, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 78 }, @@ -229,7 +291,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 80 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -247,7 +313,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 82 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -265,7 +335,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 90 }, @@ -274,7 +346,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 94 }, @@ -283,7 +357,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -292,7 +368,9 @@ "token": "ts", "value": "ts", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 98 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -310,7 +390,9 @@ "token": "TIMESTAMP", "value": "TIMESTAMP", "keyword": "TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 101 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -328,7 +412,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 111 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -346,7 +434,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 120 }, @@ -355,7 +445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -364,7 +456,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 128 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -382,7 +478,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 146 }, @@ -391,7 +489,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -400,7 +500,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 156 }, @@ -409,7 +511,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 173 }, @@ -418,7 +522,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -427,7 +533,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 177 }, @@ -436,7 +544,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 188 }, @@ -445,7 +555,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 189 }, @@ -454,7 +566,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 190 }, @@ -463,7 +577,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 192 }, @@ -472,7 +588,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 193 }, @@ -481,7 +599,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 194 }, @@ -490,30 +610,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 195 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@61" + }, "flags": 0, "position": null } - ], - "count": 55, - "idx": 55 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -548,7 +672,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -573,7 +698,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -609,7 +735,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -696,9 +823,7 @@ "last": 53 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable2.out b/tests/data/parser/parseCreateTable2.out index 0f8e6d37d..4883b6d02 100644 --- a/tests/data/parser/parseCreateTable2.out +++ b/tests/data/parser/parseCreateTable2.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `payment` (\n `payment_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,\n `customer_id` smallint(5) unsigned NOT NULL,\n `staff_id` tinyint(3) unsigned NOT NULL,\n `rental_id` int(11) DEFAULT NULL,\n `amount` decimal(5,2) NOT NULL,\n `payment_date` datetime NOT NULL,\n `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n PRIMARY KEY (`payment_id`),\n KEY `idx_fk_staff_id` (`staff_id`),\n KEY `idx_fk_customer_id` (`customer_id`),\n KEY `fk_payment_rental` (`rental_id`),\n CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE,\n CONSTRAINT `fk_payment_rental` FOREIGN KEY (`rental_id`) REFERENCES `rental` (`rental_id`) ON DELETE SET NULL ON UPDATE CASCADE,\n CONSTRAINT `fk_payment_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE\n) ENGINE=InnoDB AUTO_INCREMENT=16050 DEFAULT CHARSET=utf8", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `payment` (\n `payment_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,\n `customer_id` smallint(5) unsigned NOT NULL,\n `staff_id` tinyint(3) unsigned NOT NULL,\n `rental_id` int(11) DEFAULT NULL,\n `amount` decimal(5,2) NOT NULL,\n `payment_date` datetime NOT NULL,\n `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n PRIMARY KEY (`payment_id`),\n KEY `idx_fk_staff_id` (`staff_id`),\n KEY `idx_fk_customer_id` (`customer_id`),\n KEY `fk_payment_rental` (`rental_id`),\n CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE,\n CONSTRAINT `fk_payment_rental` FOREIGN KEY (`rental_id`) REFERENCES `rental` (`rental_id`) ON DELETE SET NULL ON UPDATE CASCADE,\n CONSTRAINT `fk_payment_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE\n) ENGINE=InnoDB AUTO_INCREMENT=16050 DEFAULT CHARSET=utf8", "len": 940, "last": 940, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 212, + "idx": 212, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`payment`", "value": "payment", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +113,9 @@ "token": "`payment_id`", "value": "payment_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +135,9 @@ "token": "smallint", "value": "SMALLINT", "keyword": "SMALLINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 40 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 48 }, @@ -121,7 +157,11 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 49 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 50 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -148,7 +192,9 @@ "token": "unsigned", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -166,7 +214,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 61 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +236,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 70 }, @@ -193,7 +247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 84 }, @@ -202,7 +258,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -211,7 +269,9 @@ "token": "`customer_id`", "value": "customer_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 88 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -229,7 +291,9 @@ "token": "smallint", "value": "SMALLINT", "keyword": "SMALLINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 102 }, @@ -238,7 +302,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 110 }, @@ -247,7 +313,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 111 }, @@ -256,7 +324,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 112 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -274,7 +346,9 @@ "token": "unsigned", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 114 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -292,7 +368,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 123 }, @@ -301,7 +379,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 131 }, @@ -310,7 +390,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -319,7 +401,9 @@ "token": "`staff_id`", "value": "staff_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 135 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -337,7 +423,9 @@ "token": "tinyint", "value": "TINYINT", "keyword": "TINYINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 146 }, @@ -346,7 +434,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 153 }, @@ -355,7 +445,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 154 }, @@ -364,7 +456,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 155 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -382,7 +478,9 @@ "token": "unsigned", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 157 }, @@ -391,7 +489,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 165 }, @@ -400,7 +500,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 166 }, @@ -409,7 +511,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 174 }, @@ -418,7 +522,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 175 }, @@ -427,7 +533,9 @@ "token": "`rental_id`", "value": "rental_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 178 }, @@ -436,7 +544,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 189 }, @@ -445,7 +555,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 190 }, @@ -454,7 +566,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 193 }, @@ -463,7 +577,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 194 }, @@ -472,7 +588,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 196 }, @@ -481,7 +599,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 197 }, @@ -490,7 +610,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 198 }, @@ -499,7 +621,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 205 }, @@ -508,7 +632,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 206 }, @@ -517,7 +643,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 210 }, @@ -526,7 +654,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 211 }, @@ -535,7 +665,9 @@ "token": "`amount`", "value": "amount", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 214 }, @@ -544,7 +676,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 222 }, @@ -553,7 +687,9 @@ "token": "decimal", "value": "DECIMAL", "keyword": "DECIMAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 223 }, @@ -562,7 +698,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 230 }, @@ -571,7 +709,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 231 }, @@ -580,7 +720,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 232 }, @@ -589,7 +731,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 233 }, @@ -598,7 +742,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 234 }, @@ -607,7 +753,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 235 }, @@ -616,7 +764,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 236 }, @@ -625,7 +775,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 244 }, @@ -634,7 +786,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 245 }, @@ -643,7 +797,9 @@ "token": "`payment_date`", "value": "payment_date", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 248 }, @@ -652,7 +808,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 262 }, @@ -661,7 +819,9 @@ "token": "datetime", "value": "datetime", "keyword": "DATETIME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 263 }, @@ -670,7 +830,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 271 }, @@ -679,7 +841,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 272 }, @@ -688,7 +852,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 280 }, @@ -697,7 +863,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 281 }, @@ -706,7 +874,9 @@ "token": "`last_update`", "value": "last_update", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 284 }, @@ -715,7 +885,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 297 }, @@ -724,7 +896,9 @@ "token": "timestamp", "value": "timestamp", "keyword": "TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 298 }, @@ -733,7 +907,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 307 }, @@ -742,7 +918,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 308 }, @@ -751,7 +929,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 316 }, @@ -760,7 +940,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 317 }, @@ -769,7 +951,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 324 }, @@ -778,7 +962,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 325 }, @@ -787,7 +973,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 342 }, @@ -796,7 +984,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 343 }, @@ -805,7 +995,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 352 }, @@ -814,7 +1006,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 353 }, @@ -823,7 +1017,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 370 }, @@ -832,7 +1028,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 371 }, @@ -841,7 +1039,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 374 }, @@ -850,7 +1050,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 385 }, @@ -859,7 +1061,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 386 }, @@ -868,7 +1072,9 @@ "token": "`payment_id`", "value": "payment_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 387 }, @@ -877,7 +1083,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 399 }, @@ -886,7 +1094,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 400 }, @@ -895,7 +1105,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 401 }, @@ -904,7 +1116,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 404 }, @@ -913,7 +1127,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 407 }, @@ -922,7 +1138,9 @@ "token": "`idx_fk_staff_id`", "value": "idx_fk_staff_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 408 }, @@ -931,7 +1149,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 425 }, @@ -940,7 +1160,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 426 }, @@ -949,7 +1171,9 @@ "token": "`staff_id`", "value": "staff_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 427 }, @@ -958,7 +1182,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 437 }, @@ -967,7 +1193,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 438 }, @@ -976,7 +1204,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 439 }, @@ -985,7 +1215,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 442 }, @@ -994,7 +1226,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 445 }, @@ -1003,7 +1237,9 @@ "token": "`idx_fk_customer_id`", "value": "idx_fk_customer_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 446 }, @@ -1012,7 +1248,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 466 }, @@ -1021,7 +1259,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 467 }, @@ -1030,7 +1270,9 @@ "token": "`customer_id`", "value": "customer_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 468 }, @@ -1039,7 +1281,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 481 }, @@ -1048,7 +1292,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 482 }, @@ -1057,7 +1303,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 483 }, @@ -1066,7 +1314,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 486 }, @@ -1075,7 +1325,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 489 }, @@ -1084,7 +1336,9 @@ "token": "`fk_payment_rental`", "value": "fk_payment_rental", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 490 }, @@ -1093,7 +1347,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 509 }, @@ -1102,7 +1358,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 510 }, @@ -1111,7 +1369,9 @@ "token": "`rental_id`", "value": "rental_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 511 }, @@ -1120,7 +1380,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 522 }, @@ -1129,7 +1391,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 523 }, @@ -1138,7 +1402,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 524 }, @@ -1147,7 +1413,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 527 }, @@ -1156,7 +1424,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 537 }, @@ -1165,7 +1435,9 @@ "token": "`fk_payment_customer`", "value": "fk_payment_customer", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 538 }, @@ -1174,7 +1446,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 559 }, @@ -1183,7 +1457,9 @@ "token": "FOREIGN KEY", "value": "FOREIGN KEY", "keyword": "FOREIGN KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 560 }, @@ -1192,7 +1468,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 571 }, @@ -1201,7 +1479,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 572 }, @@ -1210,7 +1490,9 @@ "token": "`customer_id`", "value": "customer_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 573 }, @@ -1219,7 +1501,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 586 }, @@ -1228,7 +1512,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 587 }, @@ -1237,7 +1523,9 @@ "token": "REFERENCES", "value": "REFERENCES", "keyword": "REFERENCES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 588 }, @@ -1246,7 +1534,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 598 }, @@ -1255,7 +1545,9 @@ "token": "`customer`", "value": "customer", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 599 }, @@ -1264,7 +1556,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 609 }, @@ -1273,7 +1567,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 610 }, @@ -1282,7 +1578,9 @@ "token": "`customer_id`", "value": "customer_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 611 }, @@ -1291,7 +1589,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 624 }, @@ -1300,7 +1600,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 625 }, @@ -1309,7 +1611,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 626 }, @@ -1318,7 +1622,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 635 }, @@ -1327,7 +1633,9 @@ "token": "CASCADE", "value": "CASCADE", "keyword": "CASCADE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 636 }, @@ -1336,7 +1644,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 643 }, @@ -1345,7 +1655,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 644 }, @@ -1354,7 +1666,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 647 }, @@ -1363,7 +1677,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 657 }, @@ -1372,7 +1688,9 @@ "token": "`fk_payment_rental`", "value": "fk_payment_rental", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 658 }, @@ -1381,7 +1699,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 677 }, @@ -1390,7 +1710,9 @@ "token": "FOREIGN KEY", "value": "FOREIGN KEY", "keyword": "FOREIGN KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 678 }, @@ -1399,7 +1721,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 689 }, @@ -1408,7 +1732,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 690 }, @@ -1417,7 +1743,9 @@ "token": "`rental_id`", "value": "rental_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 691 }, @@ -1426,7 +1754,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 702 }, @@ -1435,7 +1765,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 703 }, @@ -1444,7 +1776,9 @@ "token": "REFERENCES", "value": "REFERENCES", "keyword": "REFERENCES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 704 }, @@ -1453,7 +1787,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 714 }, @@ -1462,7 +1798,9 @@ "token": "`rental`", "value": "rental", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 715 }, @@ -1471,7 +1809,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 723 }, @@ -1480,7 +1820,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 724 }, @@ -1489,7 +1831,9 @@ "token": "`rental_id`", "value": "rental_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 725 }, @@ -1498,7 +1842,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 736 }, @@ -1507,7 +1853,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 737 }, @@ -1516,7 +1864,9 @@ "token": "ON DELETE", "value": "ON DELETE", "keyword": "ON DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 738 }, @@ -1525,7 +1875,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 747 }, @@ -1534,7 +1886,9 @@ "token": "SET NULL", "value": "SET NULL", "keyword": "SET NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 748 }, @@ -1543,7 +1897,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 756 }, @@ -1552,7 +1908,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 757 }, @@ -1561,7 +1919,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 766 }, @@ -1570,7 +1930,9 @@ "token": "CASCADE", "value": "CASCADE", "keyword": "CASCADE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 767 }, @@ -1579,7 +1941,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 774 }, @@ -1588,7 +1952,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 775 }, @@ -1597,7 +1963,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 778 }, @@ -1606,7 +1974,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 788 }, @@ -1615,7 +1985,9 @@ "token": "`fk_payment_staff`", "value": "fk_payment_staff", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 789 }, @@ -1624,7 +1996,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 807 }, @@ -1633,7 +2007,9 @@ "token": "FOREIGN KEY", "value": "FOREIGN KEY", "keyword": "FOREIGN KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 808 }, @@ -1642,7 +2018,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 819 }, @@ -1651,7 +2029,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 820 }, @@ -1660,7 +2040,9 @@ "token": "`staff_id`", "value": "staff_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 821 }, @@ -1669,7 +2051,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 831 }, @@ -1678,7 +2062,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 832 }, @@ -1687,7 +2073,9 @@ "token": "REFERENCES", "value": "REFERENCES", "keyword": "REFERENCES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 833 }, @@ -1696,7 +2084,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 843 }, @@ -1705,7 +2095,9 @@ "token": "`staff`", "value": "staff", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 844 }, @@ -1714,7 +2106,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 851 }, @@ -1723,7 +2117,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 852 }, @@ -1732,7 +2128,9 @@ "token": "`staff_id`", "value": "staff_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 853 }, @@ -1741,7 +2139,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 863 }, @@ -1750,7 +2150,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 864 }, @@ -1759,7 +2161,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 865 }, @@ -1768,7 +2172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 874 }, @@ -1777,7 +2183,9 @@ "token": "CASCADE", "value": "CASCADE", "keyword": "CASCADE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 875 }, @@ -1786,7 +2194,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 882 }, @@ -1795,7 +2205,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 883 }, @@ -1804,7 +2216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 884 }, @@ -1813,7 +2227,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 885 }, @@ -1822,7 +2238,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 891 }, @@ -1831,7 +2249,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 892 }, @@ -1840,7 +2262,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 898 }, @@ -1849,7 +2273,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 899 }, @@ -1858,7 +2284,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 913 }, @@ -1867,7 +2295,9 @@ "token": "16050", "value": 16050, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 914 }, @@ -1876,7 +2306,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 919 }, @@ -1885,7 +2317,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 920 }, @@ -1894,7 +2328,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 935 }, @@ -1903,30 +2339,34 @@ "token": "utf8", "value": "utf8", "keyword": null, - "type": 0, + "type": { + "@type": "@210" + }, "flags": 0, "position": 936 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 212, - "idx": 212 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1982,7 +2422,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -2009,7 +2450,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -2035,7 +2477,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -2059,7 +2502,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -2098,7 +2542,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -2120,7 +2565,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -2142,7 +2588,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -2451,9 +2898,7 @@ "last": 211 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable3.out b/tests/data/parser/parseCreateTable3.out index 54c5928e1..af704d406 100644 --- a/tests/data/parser/parseCreateTable3.out +++ b/tests/data/parser/parseCreateTable3.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE table1 (\n a INT NOT NULL,\n b VARCHAR(32),\n c INT AS (a mod 10) VIRTUAL,\n d VARCHAR(5) AS (left(b,5)) PERSISTENT\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE table1 (\n a INT NOT NULL,\n b VARCHAR(32),\n c INT AS (a mod 10) VIRTUAL,\n d VARCHAR(5) AS (left(b,5)) PERSISTENT\n);", "len": 139, "last": 139, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 63, + "idx": 63, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 20 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 26 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 28 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 32 }, @@ -130,7 +168,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 40 }, @@ -139,7 +179,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 46 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -166,7 +212,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 48 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 55 }, @@ -184,7 +234,11 @@ "token": "32", "value": 32, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 56 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 58 }, @@ -202,7 +258,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 59 }, @@ -211,7 +269,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -220,7 +280,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 65 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -238,7 +302,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 67 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -256,7 +324,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -274,7 +346,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 74 }, @@ -283,7 +357,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 75 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -301,7 +379,9 @@ "token": "mod", "value": "MOD", "keyword": "MOD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 77 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -319,7 +401,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 81 }, @@ -328,7 +412,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 83 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -346,7 +434,9 @@ "token": "VIRTUAL", "value": "VIRTUAL", "keyword": "VIRTUAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 85 }, @@ -355,7 +445,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 92 }, @@ -364,7 +456,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -373,7 +467,9 @@ "token": "d", "value": "d", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 98 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -391,7 +489,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 100 }, @@ -400,7 +500,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 107 }, @@ -409,7 +511,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 108 }, @@ -418,7 +522,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 109 }, @@ -427,7 +533,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -436,7 +544,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 111 }, @@ -445,7 +555,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -454,7 +566,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 114 }, @@ -463,7 +577,9 @@ "token": "left", "value": "LEFT", "keyword": "LEFT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 115 }, @@ -472,7 +588,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 119 }, @@ -481,7 +599,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 120 }, @@ -490,7 +610,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 121 }, @@ -499,7 +621,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 122 }, @@ -508,7 +632,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 123 }, @@ -517,7 +643,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 124 }, @@ -526,7 +654,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -535,7 +665,9 @@ "token": "PERSISTENT", "value": "PERSISTENT", "keyword": "PERSISTENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 126 }, @@ -544,7 +676,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 136 }, @@ -553,7 +687,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 137 }, @@ -562,30 +698,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 138 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@69" + }, "flags": 0, "position": null } - ], - "count": 63, - "idx": 63 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -618,7 +758,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -642,7 +783,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -662,7 +804,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -701,7 +844,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -750,9 +894,7 @@ "last": 61 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable4.out b/tests/data/parser/parseCreateTable4.out index 8a77bf365..566728f98 100644 --- a/tests/data/parser/parseCreateTable4.out +++ b/tests/data/parser/parseCreateTable4.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE ts(id INT, purchased DATE)\nPARTITION BY /* comment */ RANGE(YEAR(purchased))\nPARTITIONS 3\nSUBPARTITION BY HASH(TO_DAYS(purchased))\nSUBPARTITIONS 2(\nPARTITION p0\nVALUES LESS THAN(1990)(\n SUBPARTITION s0,\n SUBPARTITION s1\n),\nPARTITION p1\nVALUES LESS THAN(2000)(\n SUBPARTITION s2,\n SUBPARTITION s3\n),\nPARTITION p2\nVALUES LESS THAN MAXVALUE(\n SUBPARTITION s4,\n SUBPARTITION s5\n)\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE ts(id INT, purchased DATE)\nPARTITION BY /* comment */ RANGE(YEAR(purchased))\nPARTITIONS 3\nSUBPARTITION BY HASH(TO_DAYS(purchased))\nSUBPARTITIONS 2(\nPARTITION p0\nVALUES LESS THAN(1990)(\n SUBPARTITION s0,\n SUBPARTITION s1\n),\nPARTITION p1\nVALUES LESS THAN(2000)(\n SUBPARTITION s2,\n SUBPARTITION s3\n),\nPARTITION p2\nVALUES LESS THAN MAXVALUE(\n SUBPARTITION s4,\n SUBPARTITION s5\n)\n);", "len": 408, "last": 408, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 120, + "idx": 120, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "ts", "value": "ts", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 15 }, @@ -67,7 +91,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 16 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +113,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 19 }, @@ -94,7 +124,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 22 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -112,7 +146,9 @@ "token": "purchased", "value": "purchased", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 24 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -130,7 +168,9 @@ "token": "DATE", "value": "DATE", "keyword": "DATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 34 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 38 }, @@ -148,7 +190,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -157,7 +201,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 40 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -175,7 +223,11 @@ "token": "/* comment */", "value": "/* comment */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 53 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -193,7 +247,9 @@ "token": "RANGE", "value": "RANGE", "keyword": "RANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -202,7 +258,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 72 }, @@ -211,7 +269,9 @@ "token": "YEAR", "value": "YEAR", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 73 }, @@ -220,7 +280,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 77 }, @@ -229,7 +291,9 @@ "token": "purchased", "value": "purchased", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 78 }, @@ -238,7 +302,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 87 }, @@ -247,7 +313,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 88 }, @@ -256,7 +324,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -265,7 +335,9 @@ "token": "PARTITIONS", "value": "PARTITIONS", "keyword": "PARTITIONS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 90 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -283,7 +357,11 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 101 }, @@ -292,7 +370,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -301,7 +381,9 @@ "token": "SUBPARTITION BY", "value": "SUBPARTITION BY", "keyword": "SUBPARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 103 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -319,7 +403,9 @@ "token": "HASH", "value": "HASH", "keyword": "HASH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 119 }, @@ -328,7 +414,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 123 }, @@ -337,7 +425,9 @@ "token": "TO_DAYS", "value": "TO_DAYS", "keyword": "TO_DAYS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 124 }, @@ -346,7 +436,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 131 }, @@ -355,7 +447,9 @@ "token": "purchased", "value": "purchased", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 132 }, @@ -364,7 +458,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 141 }, @@ -373,7 +469,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 142 }, @@ -382,7 +480,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, @@ -391,7 +491,9 @@ "token": "SUBPARTITIONS", "value": "SUBPARTITIONS", "keyword": "SUBPARTITIONS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 144 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -409,7 +513,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@38" + }, "flags": 0, "position": 158 }, @@ -418,7 +524,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 159 }, @@ -427,7 +535,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -436,7 +546,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 161 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 170 }, @@ -454,7 +568,9 @@ "token": "p0", "value": "p0", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 171 }, @@ -463,7 +579,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -472,7 +590,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 174 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 180 }, @@ -490,7 +612,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 181 }, @@ -499,7 +623,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 190 }, @@ -508,7 +634,9 @@ "token": "1990", "value": 1990, "keyword": null, - "type": 6, + "type": { + "@type": "@38" + }, "flags": 0, "position": 191 }, @@ -517,7 +645,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 195 }, @@ -526,7 +656,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 196 }, @@ -535,7 +667,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 197 }, @@ -544,7 +678,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 202 }, @@ -553,7 +689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 214 }, @@ -562,7 +700,9 @@ "token": "s0", "value": "s0", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 215 }, @@ -571,7 +711,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 217 }, @@ -580,7 +722,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 218 }, @@ -589,7 +733,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 223 }, @@ -598,7 +744,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 235 }, @@ -607,7 +755,9 @@ "token": "s1", "value": "s1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 236 }, @@ -616,7 +766,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 238 }, @@ -625,7 +777,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 239 }, @@ -634,7 +788,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 240 }, @@ -643,7 +799,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 241 }, @@ -652,7 +810,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 242 }, @@ -661,7 +821,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 251 }, @@ -670,7 +832,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 252 }, @@ -679,7 +843,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 254 }, @@ -688,7 +854,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 255 }, @@ -697,7 +865,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 261 }, @@ -706,7 +876,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 262 }, @@ -715,7 +887,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 271 }, @@ -724,7 +898,9 @@ "token": "2000", "value": 2000, "keyword": null, - "type": 6, + "type": { + "@type": "@38" + }, "flags": 0, "position": 272 }, @@ -733,7 +909,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 276 }, @@ -742,7 +920,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 277 }, @@ -751,7 +931,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 278 }, @@ -760,7 +942,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 283 }, @@ -769,7 +953,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 295 }, @@ -778,7 +964,9 @@ "token": "s2", "value": "s2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 296 }, @@ -787,7 +975,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 298 }, @@ -796,7 +986,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 299 }, @@ -805,7 +997,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 304 }, @@ -814,7 +1008,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 316 }, @@ -823,7 +1019,9 @@ "token": "s3", "value": "s3", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 317 }, @@ -832,7 +1030,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 319 }, @@ -841,7 +1041,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 320 }, @@ -850,7 +1052,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 321 }, @@ -859,7 +1063,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 322 }, @@ -868,7 +1074,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 323 }, @@ -877,7 +1085,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 332 }, @@ -886,7 +1096,9 @@ "token": "p2", "value": "p2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 333 }, @@ -895,7 +1107,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 335 }, @@ -904,7 +1118,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 336 }, @@ -913,7 +1129,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 342 }, @@ -922,7 +1140,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 343 }, @@ -931,7 +1151,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 352 }, @@ -940,7 +1162,9 @@ "token": "MAXVALUE", "value": "MAXVALUE", "keyword": "MAXVALUE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 353 }, @@ -949,7 +1173,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 361 }, @@ -958,7 +1184,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 362 }, @@ -967,7 +1195,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 367 }, @@ -976,7 +1206,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 379 }, @@ -985,7 +1217,9 @@ "token": "s4", "value": "s4", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 380 }, @@ -994,7 +1228,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 382 }, @@ -1003,7 +1239,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 383 }, @@ -1012,7 +1250,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 388 }, @@ -1021,7 +1261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 400 }, @@ -1030,7 +1272,9 @@ "token": "s5", "value": "s5", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 401 }, @@ -1039,7 +1283,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 403 }, @@ -1048,7 +1294,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 404 }, @@ -1057,7 +1305,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 405 }, @@ -1066,7 +1316,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 406 }, @@ -1075,30 +1327,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 407 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@127" + }, "flags": 0, "position": null } - ], - "count": 120, - "idx": 120 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1131,7 +1387,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1151,7 +1408,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1171,6 +1429,44 @@ "partitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p0", "type": "LESS THAN", @@ -1187,6 +1483,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s0", "type": null, @@ -1199,6 +1533,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s1", "type": null, @@ -1217,6 +1589,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p1", "type": "LESS THAN", @@ -1233,6 +1643,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s2", "type": null, @@ -1245,6 +1693,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s3", "type": null, @@ -1263,6 +1749,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p2", "type": "LESS THAN", @@ -1270,6 +1794,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s4", "type": null, @@ -1282,6 +1844,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s5", "type": null, @@ -1313,9 +1913,7 @@ "last": 117 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable5.out b/tests/data/parser/parseCreateTable5.out index c5afbb0eb..d68b0ce4e 100644 --- a/tests/data/parser/parseCreateTable5.out +++ b/tests/data/parser/parseCreateTable5.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE new_table (`INT` VARCHAR(50) DEFAULT NULL);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE new_table (`INT` VARCHAR(50) DEFAULT NULL);", "len": 56, "last": 56, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "new_table", "value": "new_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -76,7 +102,11 @@ "token": "`INT`", "value": "INT", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 24 }, @@ -85,7 +115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -94,7 +126,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 30 }, @@ -103,7 +137,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 37 }, @@ -112,7 +148,11 @@ "token": "50", "value": 50, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 38 }, @@ -121,7 +161,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 40 }, @@ -130,7 +172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -139,7 +183,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 42 }, @@ -148,7 +194,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -157,7 +205,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -166,7 +216,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 54 }, @@ -175,30 +227,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 55 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@27" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -233,7 +289,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -281,9 +338,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable6.out b/tests/data/parser/parseCreateTable6.out index 6e8fb6065..1be8a8391 100644 --- a/tests/data/parser/parseCreateTable6.out +++ b/tests/data/parser/parseCreateTable6.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE new_table (ACTION VARCHAR(50) DEFAULT NULL);\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE new_table (ACTION VARCHAR(50) DEFAULT NULL);\n", "len": 58, "last": 58, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "new_table", "value": "new_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -76,7 +102,9 @@ "token": "ACTION", "value": "ACTION", "keyword": "ACTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -94,7 +124,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 31 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 38 }, @@ -112,7 +146,11 @@ "token": "50", "value": 50, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 39 }, @@ -121,7 +159,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 41 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -139,7 +181,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 43 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -157,7 +203,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 51 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 55 }, @@ -175,7 +225,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 56 }, @@ -184,30 +238,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@26" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -242,7 +298,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -290,9 +347,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable7.out b/tests/data/parser/parseCreateTable7.out index eedf4d720..4beda1605 100644 --- a/tests/data/parser/parseCreateTable7.out +++ b/tests/data/parser/parseCreateTable7.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `ts` (\n `id` int(11) DEFAULT NULL,\n `purchased` date DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4\nPARTITION BY RANGE (YEAR(purchased))\nSUBPARTITION BY HASH (TO_DAYS(purchased))\n(\nPARTITION p0 VALUES LESS THAN (1990) (\nSUBPARTITION s0 ENGINE=InnoDB,\nSUBPARTITION s1 ENGINE=InnoDB\n),\nPARTITION p1 VALUES LESS THAN (2000) (\nSUBPARTITION s2 ENGINE=InnoDB,\nSUBPARTITION s3 ENGINE=InnoDB\n),\nPARTITION p2 VALUES LESS THAN MAXVALUE (\nSUBPARTITION s4 ENGINE=InnoDB,\nSUBPARTITION s5 ENGINE=InnoDB\n)\n);\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `ts` (\n `id` int(11) DEFAULT NULL,\n `purchased` date DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4\nPARTITION BY RANGE (YEAR(purchased))\nSUBPARTITION BY HASH (TO_DAYS(purchased))\n(\nPARTITION p0 VALUES LESS THAN (1990) (\nSUBPARTITION s0 ENGINE=InnoDB,\nSUBPARTITION s1 ENGINE=InnoDB\n),\nPARTITION p1 VALUES LESS THAN (2000) (\nSUBPARTITION s2 ENGINE=InnoDB,\nSUBPARTITION s3 ENGINE=InnoDB\n),\nPARTITION p2 VALUES LESS THAN MAXVALUE (\nSUBPARTITION s4 ENGINE=InnoDB,\nSUBPARTITION s5 ENGINE=InnoDB\n)\n);\n", "len": 518, "last": 518, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 165, + "idx": 165, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`ts`", "value": "ts", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 27 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 30 }, @@ -121,7 +157,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 31 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 33 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -148,7 +192,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 35 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -166,7 +214,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -175,7 +225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 47 }, @@ -184,7 +236,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -193,7 +247,9 @@ "token": "`purchased`", "value": "purchased", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 51 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -211,7 +269,9 @@ "token": "date", "value": "date", "keyword": "DATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 63 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -229,7 +291,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 68 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -247,7 +313,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -256,7 +324,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -265,7 +335,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 81 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -283,7 +357,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 83 }, @@ -292,7 +368,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 89 }, @@ -301,7 +379,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 90 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -319,7 +403,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 97 }, @@ -328,7 +414,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 112 }, @@ -337,7 +425,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 113 }, @@ -346,7 +436,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -355,7 +447,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 121 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -373,7 +469,9 @@ "token": "RANGE", "value": "RANGE", "keyword": "RANGE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 134 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -391,7 +491,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 140 }, @@ -400,7 +502,9 @@ "token": "YEAR", "value": "YEAR", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 141 }, @@ -409,7 +513,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 145 }, @@ -418,7 +524,9 @@ "token": "purchased", "value": "purchased", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 146 }, @@ -427,7 +535,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 155 }, @@ -436,7 +546,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 156 }, @@ -445,7 +557,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -454,7 +568,9 @@ "token": "SUBPARTITION BY", "value": "SUBPARTITION BY", "keyword": "SUBPARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 158 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -472,7 +590,9 @@ "token": "HASH", "value": "HASH", "keyword": "HASH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 174 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 178 }, @@ -490,7 +612,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 179 }, @@ -499,7 +623,9 @@ "token": "TO_DAYS", "value": "TO_DAYS", "keyword": "TO_DAYS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 180 }, @@ -508,7 +634,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 187 }, @@ -517,7 +645,9 @@ "token": "purchased", "value": "purchased", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 188 }, @@ -526,7 +656,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 197 }, @@ -535,7 +667,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 198 }, @@ -544,7 +678,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -553,7 +689,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 200 }, @@ -562,7 +700,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 201 }, @@ -571,7 +711,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 202 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 211 }, @@ -589,7 +733,9 @@ "token": "p0", "value": "p0", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 212 }, @@ -598,7 +744,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 214 }, @@ -607,7 +755,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 215 }, @@ -616,7 +766,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 221 }, @@ -625,7 +777,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 222 }, @@ -634,7 +788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 231 }, @@ -643,7 +799,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 232 }, @@ -652,7 +810,9 @@ "token": "1990", "value": 1990, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 233 }, @@ -661,7 +821,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 237 }, @@ -670,7 +832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 238 }, @@ -679,7 +843,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 240 }, @@ -688,7 +854,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 241 }, @@ -697,7 +865,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 242 }, @@ -706,7 +876,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 254 }, @@ -715,7 +887,9 @@ "token": "s0", "value": "s0", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 255 }, @@ -724,7 +898,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 257 }, @@ -733,7 +909,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 258 }, @@ -742,7 +920,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 264 }, @@ -751,7 +931,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 265 }, @@ -760,7 +942,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 271 }, @@ -769,7 +953,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 272 }, @@ -778,7 +964,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 273 }, @@ -787,7 +975,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -796,7 +986,9 @@ "token": "s1", "value": "s1", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 286 }, @@ -805,7 +997,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 288 }, @@ -814,7 +1008,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 289 }, @@ -823,7 +1019,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 295 }, @@ -832,7 +1030,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 296 }, @@ -841,7 +1041,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 302 }, @@ -850,7 +1052,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 303 }, @@ -859,7 +1063,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 304 }, @@ -868,7 +1074,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 305 }, @@ -877,7 +1085,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 306 }, @@ -886,7 +1096,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 315 }, @@ -895,7 +1107,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 316 }, @@ -904,7 +1118,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 318 }, @@ -913,7 +1129,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 319 }, @@ -922,7 +1140,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 325 }, @@ -931,7 +1151,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 326 }, @@ -940,7 +1162,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 335 }, @@ -949,7 +1173,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 336 }, @@ -958,7 +1184,9 @@ "token": "2000", "value": 2000, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 337 }, @@ -967,7 +1195,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 341 }, @@ -976,7 +1206,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 342 }, @@ -985,7 +1217,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 344 }, @@ -994,7 +1228,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 345 }, @@ -1003,7 +1239,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 346 }, @@ -1012,7 +1250,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 358 }, @@ -1021,7 +1261,9 @@ "token": "s2", "value": "s2", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 359 }, @@ -1030,7 +1272,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 361 }, @@ -1039,7 +1283,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 362 }, @@ -1048,7 +1294,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 368 }, @@ -1057,7 +1305,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 369 }, @@ -1066,7 +1316,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 375 }, @@ -1075,7 +1327,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 376 }, @@ -1084,7 +1338,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 377 }, @@ -1093,7 +1349,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 389 }, @@ -1102,7 +1360,9 @@ "token": "s3", "value": "s3", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 390 }, @@ -1111,7 +1371,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 392 }, @@ -1120,7 +1382,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 393 }, @@ -1129,7 +1393,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 399 }, @@ -1138,7 +1404,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 400 }, @@ -1147,7 +1415,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 406 }, @@ -1156,7 +1426,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 407 }, @@ -1165,7 +1437,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 408 }, @@ -1174,7 +1448,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 409 }, @@ -1183,7 +1459,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 410 }, @@ -1192,7 +1470,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 419 }, @@ -1201,7 +1481,9 @@ "token": "p2", "value": "p2", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 420 }, @@ -1210,7 +1492,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 422 }, @@ -1219,7 +1503,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 423 }, @@ -1228,7 +1514,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 429 }, @@ -1237,7 +1525,9 @@ "token": "LESS THAN", "value": "LESS THAN", "keyword": "LESS THAN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 430 }, @@ -1246,7 +1536,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 439 }, @@ -1255,7 +1547,9 @@ "token": "MAXVALUE", "value": "MAXVALUE", "keyword": "MAXVALUE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 440 }, @@ -1264,7 +1558,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 448 }, @@ -1273,7 +1569,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 450 }, @@ -1282,7 +1580,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 451 }, @@ -1291,7 +1591,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 452 }, @@ -1300,7 +1602,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 464 }, @@ -1309,7 +1613,9 @@ "token": "s4", "value": "s4", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 465 }, @@ -1318,7 +1624,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 467 }, @@ -1327,7 +1635,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 468 }, @@ -1336,7 +1646,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 474 }, @@ -1345,7 +1657,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 475 }, @@ -1354,7 +1668,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 481 }, @@ -1363,7 +1679,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 482 }, @@ -1372,7 +1690,9 @@ "token": "SUBPARTITION", "value": "SUBPARTITION", "keyword": "SUBPARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 483 }, @@ -1381,7 +1701,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 495 }, @@ -1390,7 +1712,9 @@ "token": "s5", "value": "s5", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 496 }, @@ -1399,7 +1723,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 498 }, @@ -1408,7 +1734,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 499 }, @@ -1417,7 +1745,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 505 }, @@ -1426,7 +1756,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@40" + }, "flags": 0, "position": 506 }, @@ -1435,7 +1767,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 512 }, @@ -1444,7 +1778,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 513 }, @@ -1453,7 +1789,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 514 }, @@ -1462,7 +1800,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 515 }, @@ -1471,7 +1811,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 516 }, @@ -1480,30 +1824,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 517 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@171" + }, "flags": 0, "position": null } - ], - "count": 165, - "idx": 165 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1551,7 +1897,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1587,7 +1934,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1623,6 +1971,44 @@ "partitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p0", "type": "LESS THAN", @@ -1639,6 +2025,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s0", "type": null, @@ -1658,6 +2082,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s1", "type": null, @@ -1683,6 +2145,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p1", "type": "LESS THAN", @@ -1699,6 +2199,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s2", "type": null, @@ -1718,6 +2256,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s3", "type": null, @@ -1743,6 +2319,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p2", "type": "LESS THAN", @@ -1750,6 +2364,44 @@ "subpartitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s4", "type": null, @@ -1769,6 +2421,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": true, "name": "s5", "type": null, @@ -1807,9 +2497,7 @@ "last": 161 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable8.out b/tests/data/parser/parseCreateTable8.out index 15592f0d1..477ef6eb0 100644 --- a/tests/data/parser/parseCreateTable8.out +++ b/tests/data/parser/parseCreateTable8.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `test1` (\n `amultipoint` multipoint DEFAULT NULL,\n `amultipolygon` multipolygon DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `test1` (\n `amultipoint` multipoint DEFAULT NULL,\n `amultipolygon` multipolygon DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", "len": 145, "last": 145, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 35, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`test1`", "value": "test1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +113,9 @@ "token": "`amultipoint`", "value": "amultipoint", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 24 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +135,9 @@ "token": "multipoint", "value": "multipoint", "keyword": "MULTIPOINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 38 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -121,7 +157,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 49 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -139,7 +179,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 57 }, @@ -148,7 +190,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 61 }, @@ -157,7 +201,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -166,7 +212,9 @@ "token": "`amultipolygon`", "value": "amultipolygon", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 64 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -184,7 +234,9 @@ "token": "multipolygon", "value": "multipolygon", "keyword": "MULTIPOLYGON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 80 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -202,7 +256,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 93 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -220,7 +278,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 101 }, @@ -229,7 +289,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 105 }, @@ -238,7 +300,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 106 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -256,7 +322,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 108 }, @@ -265,7 +333,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 114 }, @@ -274,7 +344,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 115 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -292,7 +368,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 122 }, @@ -301,7 +379,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 137 }, @@ -310,30 +390,34 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@36" + }, "flags": 0, "position": 138 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 35, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -379,7 +463,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -415,7 +500,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -463,9 +549,7 @@ "last": 34 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTable9.out b/tests/data/parser/parseCreateTable9.out index 7a9f3a58d..03759e612 100644 --- a/tests/data/parser/parseCreateTable9.out +++ b/tests/data/parser/parseCreateTable9.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `trips` (\n `id` bigint(20) UNSIGNED NOT NULL COMMENT 'Unique trip Id',\n `trip_code` int(11) UNSIGNED NOT NULL COMMENT 'Trip code',\n `trip_category` int(11) UNSIGNED NOT NULL COMMENT 'Trip category',\n `trip_date` date NOT NULL COMMENT 'The trip date'\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'The trips' PARTITION BY LIST(trip_category) SUBPARTITION BY HASH(DAY(trip_date)) SUBPARTITIONS 31 (\n PARTITION p1\n VALUES\n IN(1),\n PARTITION p2\n VALUES\n IN(2),\n PARTITION p3\n VALUES\n IN(3),\n PARTITION p4\n VALUES\n IN(4),\n PARTITION p5\n VALUES\n IN(5),\n PARTITION p6\n VALUES\n IN(6),\n PARTITION p7\n VALUES\n IN(7),\n PARTITION p8\n VALUES\n IN(8),\n PARTITION p9\n VALUES\n IN(9),\n PARTITION p10\n VALUES\n IN(10),\n PARTITION p11\n VALUES\n IN(11),\n PARTITION p12\n VALUES\n IN(12),\n PARTITION p13\n VALUES\n IN(13),\n PARTITION p14\n VALUES\n IN(14),\n PARTITION p15\n VALUES\n IN(15),\n PARTITION p16\n VALUES\n IN(16),\n PARTITION p17\n VALUES\n IN(17),\n PARTITION p18\n VALUES\n IN(18),\n PARTITION p19\n VALUES\n IN(19),\n PARTITION p20\n VALUES\n IN(20),\n PARTITION p21\n VALUES\n IN(21),\n PARTITION p22\n VALUES\n IN(22),\n PARTITION p23\n VALUES\n IN(23),\n PARTITION p24\n VALUES\n IN(24),\n PARTITION p25\n VALUES\n IN(25),\n PARTITION p26\n VALUES\n IN(26),\n PARTITION p27\n VALUES\n IN(27),\n PARTITION p28\n VALUES\n IN(28),\n PARTITION p29\n VALUES\n IN(29),\n PARTITION p30\n VALUES\n IN(30),\n PARTITION p31\n VALUES\n IN(31)\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `trips` (\n `id` bigint(20) UNSIGNED NOT NULL COMMENT 'Unique trip Id',\n `trip_code` int(11) UNSIGNED NOT NULL COMMENT 'Trip code',\n `trip_category` int(11) UNSIGNED NOT NULL COMMENT 'Trip category',\n `trip_date` date NOT NULL COMMENT 'The trip date'\n) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'The trips' PARTITION BY LIST(trip_category) SUBPARTITION BY HASH(DAY(trip_date)) SUBPARTITIONS 31 (\n PARTITION p1\n VALUES\n IN(1),\n PARTITION p2\n VALUES\n IN(2),\n PARTITION p3\n VALUES\n IN(3),\n PARTITION p4\n VALUES\n IN(4),\n PARTITION p5\n VALUES\n IN(5),\n PARTITION p6\n VALUES\n IN(6),\n PARTITION p7\n VALUES\n IN(7),\n PARTITION p8\n VALUES\n IN(8),\n PARTITION p9\n VALUES\n IN(9),\n PARTITION p10\n VALUES\n IN(10),\n PARTITION p11\n VALUES\n IN(11),\n PARTITION p12\n VALUES\n IN(12),\n PARTITION p13\n VALUES\n IN(13),\n PARTITION p14\n VALUES\n IN(14),\n PARTITION p15\n VALUES\n IN(15),\n PARTITION p16\n VALUES\n IN(16),\n PARTITION p17\n VALUES\n IN(17),\n PARTITION p18\n VALUES\n IN(18),\n PARTITION p19\n VALUES\n IN(19),\n PARTITION p20\n VALUES\n IN(20),\n PARTITION p21\n VALUES\n IN(21),\n PARTITION p22\n VALUES\n IN(22),\n PARTITION p23\n VALUES\n IN(23),\n PARTITION p24\n VALUES\n IN(24),\n PARTITION p25\n VALUES\n IN(25),\n PARTITION p26\n VALUES\n IN(26),\n PARTITION p27\n VALUES\n IN(27),\n PARTITION p28\n VALUES\n IN(28),\n PARTITION p29\n VALUES\n IN(29),\n PARTITION p30\n VALUES\n IN(30),\n PARTITION p31\n VALUES\n IN(31)\n);", "len": 1957, "last": 1957, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 489, + "idx": 489, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`trips`", "value": "trips", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +113,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +135,9 @@ "token": "bigint", "value": "BIGINT", "keyword": "BIGINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 32 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 38 }, @@ -121,7 +157,11 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 39 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 41 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +192,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -166,7 +214,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 52 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -184,7 +236,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 61 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -202,7 +258,11 @@ "token": "'Unique trip Id'", "value": "Unique trip Id", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 69 }, @@ -211,7 +271,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 85 }, @@ -220,7 +282,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -229,7 +293,9 @@ "token": "`trip_code`", "value": "trip_code", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 91 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -247,7 +315,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 103 }, @@ -256,7 +326,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 106 }, @@ -265,7 +337,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 107 }, @@ -274,7 +348,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 109 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -292,7 +370,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 111 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -310,7 +392,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 120 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 128 }, @@ -328,7 +414,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 129 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 136 }, @@ -346,7 +436,9 @@ "token": "'Trip code'", "value": "Trip code", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 137 }, @@ -355,7 +447,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 148 }, @@ -364,7 +458,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -373,7 +469,9 @@ "token": "`trip_category`", "value": "trip_category", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 154 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 169 }, @@ -391,7 +491,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 170 }, @@ -400,7 +502,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 173 }, @@ -409,7 +513,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 174 }, @@ -418,7 +524,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 176 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 177 }, @@ -436,7 +546,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 178 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 186 }, @@ -454,7 +568,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 187 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 195 }, @@ -472,7 +590,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 196 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 203 }, @@ -490,7 +612,9 @@ "token": "'Trip category'", "value": "Trip category", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 204 }, @@ -499,7 +623,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 219 }, @@ -508,7 +634,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 220 }, @@ -517,7 +645,9 @@ "token": "`trip_date`", "value": "trip_date", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 225 }, @@ -526,7 +656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 236 }, @@ -535,7 +667,9 @@ "token": "date", "value": "date", "keyword": "DATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 237 }, @@ -544,7 +678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 241 }, @@ -553,7 +689,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 242 }, @@ -562,7 +700,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 250 }, @@ -571,7 +711,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 251 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 258 }, @@ -589,7 +733,9 @@ "token": "'The trip date'", "value": "The trip date", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 259 }, @@ -598,7 +744,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 274 }, @@ -607,7 +755,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 275 }, @@ -616,7 +766,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 276 }, @@ -625,7 +777,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 277 }, @@ -634,7 +788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 283 }, @@ -643,7 +799,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 284 }, @@ -652,7 +810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -661,7 +821,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 286 }, @@ -670,7 +834,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 292 }, @@ -679,7 +845,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 293 }, @@ -688,7 +856,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 308 }, @@ -697,7 +867,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 309 }, @@ -706,7 +878,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 310 }, @@ -715,7 +889,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 311 }, @@ -724,7 +900,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 318 }, @@ -733,7 +911,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 319 }, @@ -742,7 +922,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 326 }, @@ -751,7 +933,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 327 }, @@ -760,7 +944,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 328 }, @@ -769,7 +955,9 @@ "token": "utf8mb4_unicode_ci", "value": "utf8mb4_unicode_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 329 }, @@ -778,7 +966,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 347 }, @@ -787,7 +977,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 348 }, @@ -796,7 +988,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 355 }, @@ -805,7 +999,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 356 }, @@ -814,7 +1010,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 357 }, @@ -823,7 +1021,9 @@ "token": "'The trips'", "value": "The trips", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 358 }, @@ -832,7 +1032,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 369 }, @@ -841,7 +1043,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 370 }, @@ -850,7 +1054,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 382 }, @@ -859,7 +1065,9 @@ "token": "LIST", "value": "LIST", "keyword": "LIST", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 383 }, @@ -868,7 +1076,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 387 }, @@ -877,7 +1087,9 @@ "token": "trip_category", "value": "trip_category", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 388 }, @@ -886,7 +1098,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 401 }, @@ -895,7 +1109,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 402 }, @@ -904,7 +1120,9 @@ "token": "SUBPARTITION BY", "value": "SUBPARTITION BY", "keyword": "SUBPARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 403 }, @@ -913,7 +1131,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 418 }, @@ -922,7 +1142,9 @@ "token": "HASH", "value": "HASH", "keyword": "HASH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 419 }, @@ -931,7 +1153,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 423 }, @@ -940,7 +1164,9 @@ "token": "DAY", "value": "DAY", "keyword": "DAY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 424 }, @@ -949,7 +1175,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 427 }, @@ -958,7 +1186,9 @@ "token": "trip_date", "value": "trip_date", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 428 }, @@ -967,7 +1197,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 437 }, @@ -976,7 +1208,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 438 }, @@ -985,7 +1219,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 439 }, @@ -994,7 +1230,9 @@ "token": "SUBPARTITIONS", "value": "SUBPARTITIONS", "keyword": "SUBPARTITIONS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 440 }, @@ -1003,7 +1241,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 453 }, @@ -1012,7 +1252,9 @@ "token": "31", "value": 31, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 454 }, @@ -1021,7 +1263,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 456 }, @@ -1030,7 +1274,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 457 }, @@ -1039,7 +1285,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 458 }, @@ -1048,7 +1296,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 463 }, @@ -1057,7 +1307,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 472 }, @@ -1066,7 +1318,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 473 }, @@ -1075,7 +1329,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 475 }, @@ -1084,7 +1340,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 480 }, @@ -1093,7 +1351,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 486 }, @@ -1102,7 +1362,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 495 }, @@ -1111,7 +1373,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 497 }, @@ -1120,7 +1384,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 498 }, @@ -1129,7 +1395,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 499 }, @@ -1138,7 +1406,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 500 }, @@ -1147,7 +1417,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 501 }, @@ -1156,7 +1428,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 510 }, @@ -1165,7 +1439,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 519 }, @@ -1174,7 +1450,9 @@ "token": "p2", "value": "p2", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 520 }, @@ -1183,7 +1461,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 522 }, @@ -1192,7 +1472,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 527 }, @@ -1201,7 +1483,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 533 }, @@ -1210,7 +1494,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 542 }, @@ -1219,7 +1505,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 544 }, @@ -1228,7 +1516,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 545 }, @@ -1237,7 +1527,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 546 }, @@ -1246,7 +1538,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 547 }, @@ -1255,7 +1549,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 548 }, @@ -1264,7 +1560,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 557 }, @@ -1273,7 +1571,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 566 }, @@ -1282,7 +1582,9 @@ "token": "p3", "value": "p3", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 567 }, @@ -1291,7 +1593,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 569 }, @@ -1300,7 +1604,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 574 }, @@ -1309,7 +1615,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 580 }, @@ -1318,7 +1626,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 589 }, @@ -1327,7 +1637,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 591 }, @@ -1336,7 +1648,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 592 }, @@ -1345,7 +1659,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 593 }, @@ -1354,7 +1670,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 594 }, @@ -1363,7 +1681,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 595 }, @@ -1372,7 +1692,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 604 }, @@ -1381,7 +1703,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 613 }, @@ -1390,7 +1714,9 @@ "token": "p4", "value": "p4", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 614 }, @@ -1399,7 +1725,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 616 }, @@ -1408,7 +1736,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 621 }, @@ -1417,7 +1747,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 627 }, @@ -1426,7 +1758,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 636 }, @@ -1435,7 +1769,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 638 }, @@ -1444,7 +1780,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 639 }, @@ -1453,7 +1791,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 640 }, @@ -1462,7 +1802,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 641 }, @@ -1471,7 +1813,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 642 }, @@ -1480,7 +1824,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 651 }, @@ -1489,7 +1835,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 660 }, @@ -1498,7 +1846,9 @@ "token": "p5", "value": "p5", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 661 }, @@ -1507,7 +1857,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 663 }, @@ -1516,7 +1868,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 668 }, @@ -1525,7 +1879,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 674 }, @@ -1534,7 +1890,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 683 }, @@ -1543,7 +1901,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 685 }, @@ -1552,7 +1912,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 686 }, @@ -1561,7 +1923,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 687 }, @@ -1570,7 +1934,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 688 }, @@ -1579,7 +1945,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 689 }, @@ -1588,7 +1956,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 698 }, @@ -1597,7 +1967,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 707 }, @@ -1606,7 +1978,9 @@ "token": "p6", "value": "p6", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 708 }, @@ -1615,7 +1989,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 710 }, @@ -1624,7 +2000,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 715 }, @@ -1633,7 +2011,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 721 }, @@ -1642,7 +2022,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 730 }, @@ -1651,7 +2033,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 732 }, @@ -1660,7 +2044,9 @@ "token": "6", "value": 6, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 733 }, @@ -1669,7 +2055,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 734 }, @@ -1678,7 +2066,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 735 }, @@ -1687,7 +2077,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 736 }, @@ -1696,7 +2088,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 745 }, @@ -1705,7 +2099,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 754 }, @@ -1714,7 +2110,9 @@ "token": "p7", "value": "p7", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 755 }, @@ -1723,7 +2121,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 757 }, @@ -1732,7 +2132,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 762 }, @@ -1741,7 +2143,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 768 }, @@ -1750,7 +2154,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 777 }, @@ -1759,7 +2165,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 779 }, @@ -1768,7 +2176,9 @@ "token": "7", "value": 7, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 780 }, @@ -1777,7 +2187,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 781 }, @@ -1786,7 +2198,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 782 }, @@ -1795,7 +2209,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 783 }, @@ -1804,7 +2220,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 792 }, @@ -1813,7 +2231,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 801 }, @@ -1822,7 +2242,9 @@ "token": "p8", "value": "p8", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 802 }, @@ -1831,7 +2253,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 804 }, @@ -1840,7 +2264,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 809 }, @@ -1849,7 +2275,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 815 }, @@ -1858,7 +2286,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 824 }, @@ -1867,7 +2297,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 826 }, @@ -1876,7 +2308,9 @@ "token": "8", "value": 8, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 827 }, @@ -1885,7 +2319,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 828 }, @@ -1894,7 +2330,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 829 }, @@ -1903,7 +2341,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 830 }, @@ -1912,7 +2352,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 839 }, @@ -1921,7 +2363,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 848 }, @@ -1930,7 +2374,9 @@ "token": "p9", "value": "p9", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 849 }, @@ -1939,7 +2385,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 851 }, @@ -1948,7 +2396,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 856 }, @@ -1957,7 +2407,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 862 }, @@ -1966,7 +2418,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 871 }, @@ -1975,7 +2429,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 873 }, @@ -1984,7 +2440,9 @@ "token": "9", "value": 9, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 874 }, @@ -1993,7 +2451,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 875 }, @@ -2002,7 +2462,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 876 }, @@ -2011,7 +2473,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 877 }, @@ -2020,7 +2484,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 886 }, @@ -2029,7 +2495,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 895 }, @@ -2038,7 +2506,9 @@ "token": "p10", "value": "p10", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 896 }, @@ -2047,7 +2517,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 899 }, @@ -2056,7 +2528,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 904 }, @@ -2065,7 +2539,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 910 }, @@ -2074,7 +2550,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 919 }, @@ -2083,7 +2561,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 921 }, @@ -2092,7 +2572,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 922 }, @@ -2101,7 +2583,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 924 }, @@ -2110,7 +2594,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 925 }, @@ -2119,7 +2605,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 926 }, @@ -2128,7 +2616,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 935 }, @@ -2137,7 +2627,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 944 }, @@ -2146,7 +2638,9 @@ "token": "p11", "value": "p11", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 945 }, @@ -2155,7 +2649,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 948 }, @@ -2164,7 +2660,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 953 }, @@ -2173,7 +2671,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 959 }, @@ -2182,7 +2682,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 968 }, @@ -2191,7 +2693,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 970 }, @@ -2200,7 +2704,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 971 }, @@ -2209,7 +2715,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 973 }, @@ -2218,7 +2726,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 974 }, @@ -2227,7 +2737,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 975 }, @@ -2236,7 +2748,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 984 }, @@ -2245,7 +2759,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 993 }, @@ -2254,7 +2770,9 @@ "token": "p12", "value": "p12", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 994 }, @@ -2263,7 +2781,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 997 }, @@ -2272,7 +2792,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1002 }, @@ -2281,7 +2803,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1008 }, @@ -2290,7 +2814,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1017 }, @@ -2299,7 +2825,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1019 }, @@ -2308,7 +2836,9 @@ "token": "12", "value": 12, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1020 }, @@ -2317,7 +2847,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1022 }, @@ -2326,7 +2858,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1023 }, @@ -2335,7 +2869,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1024 }, @@ -2344,7 +2880,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1033 }, @@ -2353,7 +2891,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1042 }, @@ -2362,7 +2902,9 @@ "token": "p13", "value": "p13", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1043 }, @@ -2371,7 +2913,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1046 }, @@ -2380,7 +2924,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1051 }, @@ -2389,7 +2935,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1057 }, @@ -2398,7 +2946,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1066 }, @@ -2407,7 +2957,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1068 }, @@ -2416,7 +2968,9 @@ "token": "13", "value": 13, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1069 }, @@ -2425,7 +2979,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1071 }, @@ -2434,7 +2990,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1072 }, @@ -2443,7 +3001,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1073 }, @@ -2452,7 +3012,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1082 }, @@ -2461,7 +3023,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1091 }, @@ -2470,7 +3034,9 @@ "token": "p14", "value": "p14", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1092 }, @@ -2479,7 +3045,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1095 }, @@ -2488,7 +3056,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1100 }, @@ -2497,7 +3067,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1106 }, @@ -2506,7 +3078,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1115 }, @@ -2515,7 +3089,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1117 }, @@ -2524,7 +3100,9 @@ "token": "14", "value": 14, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1118 }, @@ -2533,7 +3111,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1120 }, @@ -2542,7 +3122,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1121 }, @@ -2551,7 +3133,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1122 }, @@ -2560,7 +3144,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1131 }, @@ -2569,7 +3155,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1140 }, @@ -2578,7 +3166,9 @@ "token": "p15", "value": "p15", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1141 }, @@ -2587,7 +3177,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1144 }, @@ -2596,7 +3188,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1149 }, @@ -2605,7 +3199,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1155 }, @@ -2614,7 +3210,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1164 }, @@ -2623,7 +3221,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1166 }, @@ -2632,7 +3232,9 @@ "token": "15", "value": 15, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1167 }, @@ -2641,7 +3243,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1169 }, @@ -2650,7 +3254,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1170 }, @@ -2659,7 +3265,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1171 }, @@ -2668,7 +3276,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1180 }, @@ -2677,7 +3287,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1189 }, @@ -2686,7 +3298,9 @@ "token": "p16", "value": "p16", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1190 }, @@ -2695,7 +3309,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1193 }, @@ -2704,7 +3320,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1198 }, @@ -2713,7 +3331,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1204 }, @@ -2722,7 +3342,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1213 }, @@ -2731,7 +3353,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1215 }, @@ -2740,7 +3364,9 @@ "token": "16", "value": 16, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1216 }, @@ -2749,7 +3375,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1218 }, @@ -2758,7 +3386,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1219 }, @@ -2767,7 +3397,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1220 }, @@ -2776,7 +3408,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1229 }, @@ -2785,7 +3419,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1238 }, @@ -2794,7 +3430,9 @@ "token": "p17", "value": "p17", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1239 }, @@ -2803,7 +3441,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1242 }, @@ -2812,7 +3452,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1247 }, @@ -2821,7 +3463,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1253 }, @@ -2830,7 +3474,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1262 }, @@ -2839,7 +3485,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1264 }, @@ -2848,7 +3496,9 @@ "token": "17", "value": 17, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1265 }, @@ -2857,7 +3507,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1267 }, @@ -2866,7 +3518,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1268 }, @@ -2875,7 +3529,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1269 }, @@ -2884,7 +3540,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1278 }, @@ -2893,7 +3551,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1287 }, @@ -2902,7 +3562,9 @@ "token": "p18", "value": "p18", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1288 }, @@ -2911,7 +3573,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1291 }, @@ -2920,7 +3584,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1296 }, @@ -2929,7 +3595,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1302 }, @@ -2938,7 +3606,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1311 }, @@ -2947,7 +3617,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1313 }, @@ -2956,7 +3628,9 @@ "token": "18", "value": 18, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1314 }, @@ -2965,7 +3639,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1316 }, @@ -2974,7 +3650,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1317 }, @@ -2983,7 +3661,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1318 }, @@ -2992,7 +3672,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1327 }, @@ -3001,7 +3683,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1336 }, @@ -3010,7 +3694,9 @@ "token": "p19", "value": "p19", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1337 }, @@ -3019,7 +3705,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1340 }, @@ -3028,7 +3716,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1345 }, @@ -3037,7 +3727,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1351 }, @@ -3046,7 +3738,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1360 }, @@ -3055,7 +3749,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1362 }, @@ -3064,7 +3760,9 @@ "token": "19", "value": 19, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1363 }, @@ -3073,7 +3771,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1365 }, @@ -3082,7 +3782,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1366 }, @@ -3091,7 +3793,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1367 }, @@ -3100,7 +3804,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1376 }, @@ -3109,7 +3815,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1385 }, @@ -3118,7 +3826,9 @@ "token": "p20", "value": "p20", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1386 }, @@ -3127,7 +3837,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1389 }, @@ -3136,7 +3848,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1394 }, @@ -3145,7 +3859,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1400 }, @@ -3154,7 +3870,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1409 }, @@ -3163,7 +3881,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1411 }, @@ -3172,7 +3892,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1412 }, @@ -3181,7 +3903,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1414 }, @@ -3190,7 +3914,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1415 }, @@ -3199,7 +3925,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1416 }, @@ -3208,7 +3936,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1425 }, @@ -3217,7 +3947,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1434 }, @@ -3226,7 +3958,9 @@ "token": "p21", "value": "p21", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1435 }, @@ -3235,7 +3969,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1438 }, @@ -3244,7 +3980,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1443 }, @@ -3253,7 +3991,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1449 }, @@ -3262,7 +4002,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1458 }, @@ -3271,7 +4013,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1460 }, @@ -3280,7 +4024,9 @@ "token": "21", "value": 21, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1461 }, @@ -3289,7 +4035,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1463 }, @@ -3298,7 +4046,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1464 }, @@ -3307,7 +4057,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1465 }, @@ -3316,7 +4068,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1474 }, @@ -3325,7 +4079,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1483 }, @@ -3334,7 +4090,9 @@ "token": "p22", "value": "p22", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1484 }, @@ -3343,7 +4101,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1487 }, @@ -3352,7 +4112,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1492 }, @@ -3361,7 +4123,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1498 }, @@ -3370,7 +4134,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1507 }, @@ -3379,7 +4145,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1509 }, @@ -3388,7 +4156,9 @@ "token": "22", "value": 22, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1510 }, @@ -3397,7 +4167,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1512 }, @@ -3406,7 +4178,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1513 }, @@ -3415,7 +4189,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1514 }, @@ -3424,7 +4200,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1523 }, @@ -3433,7 +4211,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1532 }, @@ -3442,7 +4222,9 @@ "token": "p23", "value": "p23", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1533 }, @@ -3451,7 +4233,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1536 }, @@ -3460,7 +4244,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1541 }, @@ -3469,7 +4255,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1547 }, @@ -3478,7 +4266,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1556 }, @@ -3487,7 +4277,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1558 }, @@ -3496,7 +4288,9 @@ "token": "23", "value": 23, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1559 }, @@ -3505,7 +4299,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1561 }, @@ -3514,7 +4310,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1562 }, @@ -3523,7 +4321,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1563 }, @@ -3532,7 +4332,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1572 }, @@ -3541,7 +4343,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1581 }, @@ -3550,7 +4354,9 @@ "token": "p24", "value": "p24", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1582 }, @@ -3559,7 +4365,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1585 }, @@ -3568,7 +4376,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1590 }, @@ -3577,7 +4387,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1596 }, @@ -3586,7 +4398,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1605 }, @@ -3595,7 +4409,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1607 }, @@ -3604,7 +4420,9 @@ "token": "24", "value": 24, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1608 }, @@ -3613,7 +4431,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1610 }, @@ -3622,7 +4442,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1611 }, @@ -3631,7 +4453,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1612 }, @@ -3640,7 +4464,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1621 }, @@ -3649,7 +4475,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1630 }, @@ -3658,7 +4486,9 @@ "token": "p25", "value": "p25", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1631 }, @@ -3667,7 +4497,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1634 }, @@ -3676,7 +4508,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1639 }, @@ -3685,7 +4519,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1645 }, @@ -3694,7 +4530,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1654 }, @@ -3703,7 +4541,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1656 }, @@ -3712,7 +4552,9 @@ "token": "25", "value": 25, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1657 }, @@ -3721,7 +4563,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1659 }, @@ -3730,7 +4574,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1660 }, @@ -3739,7 +4585,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1661 }, @@ -3748,7 +4596,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1670 }, @@ -3757,7 +4607,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1679 }, @@ -3766,7 +4618,9 @@ "token": "p26", "value": "p26", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1680 }, @@ -3775,7 +4629,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1683 }, @@ -3784,7 +4640,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1688 }, @@ -3793,7 +4651,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1694 }, @@ -3802,7 +4662,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1703 }, @@ -3811,7 +4673,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1705 }, @@ -3820,7 +4684,9 @@ "token": "26", "value": 26, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1706 }, @@ -3829,7 +4695,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1708 }, @@ -3838,7 +4706,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1709 }, @@ -3847,7 +4717,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1710 }, @@ -3856,7 +4728,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1719 }, @@ -3865,7 +4739,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1728 }, @@ -3874,7 +4750,9 @@ "token": "p27", "value": "p27", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1729 }, @@ -3883,7 +4761,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1732 }, @@ -3892,7 +4772,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1737 }, @@ -3901,7 +4783,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1743 }, @@ -3910,7 +4794,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1752 }, @@ -3919,7 +4805,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1754 }, @@ -3928,7 +4816,9 @@ "token": "27", "value": 27, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1755 }, @@ -3937,7 +4827,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1757 }, @@ -3946,7 +4838,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1758 }, @@ -3955,7 +4849,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1759 }, @@ -3964,7 +4860,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1768 }, @@ -3973,7 +4871,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1777 }, @@ -3982,7 +4882,9 @@ "token": "p28", "value": "p28", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1778 }, @@ -3991,7 +4893,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1781 }, @@ -4000,7 +4904,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1786 }, @@ -4009,7 +4915,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1792 }, @@ -4018,7 +4926,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1801 }, @@ -4027,7 +4937,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1803 }, @@ -4036,7 +4948,9 @@ "token": "28", "value": 28, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1804 }, @@ -4045,7 +4959,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1806 }, @@ -4054,7 +4970,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1807 }, @@ -4063,7 +4981,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1808 }, @@ -4072,7 +4992,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1817 }, @@ -4081,7 +5003,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1826 }, @@ -4090,7 +5014,9 @@ "token": "p29", "value": "p29", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1827 }, @@ -4099,7 +5025,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1830 }, @@ -4108,7 +5036,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1835 }, @@ -4117,7 +5047,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1841 }, @@ -4126,7 +5058,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1850 }, @@ -4135,7 +5069,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1852 }, @@ -4144,7 +5080,9 @@ "token": "29", "value": 29, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1853 }, @@ -4153,7 +5091,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1855 }, @@ -4162,7 +5102,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1856 }, @@ -4171,7 +5113,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1857 }, @@ -4180,7 +5124,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1866 }, @@ -4189,7 +5135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1875 }, @@ -4198,7 +5146,9 @@ "token": "p30", "value": "p30", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1876 }, @@ -4207,7 +5157,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1879 }, @@ -4216,7 +5168,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1884 }, @@ -4225,7 +5179,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1890 }, @@ -4234,7 +5190,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1899 }, @@ -4243,7 +5201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1901 }, @@ -4252,7 +5212,9 @@ "token": "30", "value": 30, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1902 }, @@ -4261,7 +5223,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1904 }, @@ -4270,7 +5234,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1905 }, @@ -4279,7 +5245,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1906 }, @@ -4288,7 +5256,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1915 }, @@ -4297,7 +5267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1924 }, @@ -4306,7 +5278,9 @@ "token": "p31", "value": "p31", "keyword": null, - "type": 0, + "type": { + "@type": "@81" + }, "flags": 0, "position": 1925 }, @@ -4315,7 +5289,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1928 }, @@ -4324,7 +5300,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1933 }, @@ -4333,7 +5311,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1939 }, @@ -4342,7 +5322,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1948 }, @@ -4351,7 +5333,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1950 }, @@ -4360,7 +5344,9 @@ "token": "31", "value": 31, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 1951 }, @@ -4369,7 +5355,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1953 }, @@ -4378,7 +5366,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1954 }, @@ -4387,7 +5377,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 1955 }, @@ -4396,30 +5388,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 1956 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@497" + }, "flags": 0, "position": null } - ], - "count": 489, - "idx": 489 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -4481,7 +5477,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -4513,7 +5510,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -4545,7 +5543,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -4573,7 +5572,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -4601,6 +5601,44 @@ "partitions": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p1", "type": "IN", @@ -4622,11 +5660,49 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", - "isSubpartition": false, - "name": "p2", - "type": "IN", - "expr": { - "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, + "isSubpartition": false, + "name": "p2", + "type": "IN", + "expr": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, "column": null, @@ -4643,6 +5719,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p3", "type": "IN", @@ -4664,6 +5778,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p4", "type": "IN", @@ -4685,6 +5837,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p5", "type": "IN", @@ -4706,6 +5896,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p6", "type": "IN", @@ -4727,6 +5955,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p7", "type": "IN", @@ -4748,6 +6014,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p8", "type": "IN", @@ -4769,6 +6073,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p9", "type": "IN", @@ -4790,6 +6132,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p10", "type": "IN", @@ -4811,6 +6191,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p11", "type": "IN", @@ -4832,6 +6250,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p12", "type": "IN", @@ -4853,6 +6309,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p13", "type": "IN", @@ -4874,6 +6368,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p14", "type": "IN", @@ -4895,6 +6427,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p15", "type": "IN", @@ -4916,6 +6486,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p16", "type": "IN", @@ -4937,6 +6545,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p17", "type": "IN", @@ -4958,6 +6604,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p18", "type": "IN", @@ -4979,6 +6663,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p19", "type": "IN", @@ -5000,6 +6722,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p20", "type": "IN", @@ -5021,6 +6781,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p21", "type": "IN", @@ -5042,6 +6840,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p22", "type": "IN", @@ -5063,6 +6899,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p23", "type": "IN", @@ -5084,6 +6958,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p24", "type": "IN", @@ -5105,6 +7017,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p25", "type": "IN", @@ -5126,6 +7076,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p26", "type": "IN", @@ -5147,6 +7135,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p27", "type": "IN", @@ -5168,6 +7194,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p28", "type": "IN", @@ -5189,6 +7253,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p29", "type": "IN", @@ -5210,6 +7312,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p30", "type": "IN", @@ -5231,6 +7371,44 @@ }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition", + "partitionOptions": { + "STORAGE ENGINE": [ + 1, + "var" + ], + "ENGINE": [ + 1, + "var" + ], + "COMMENT": [ + 2, + "var" + ], + "DATA DIRECTORY": [ + 3, + "var" + ], + "INDEX DIRECTORY": [ + 4, + "var" + ], + "MAX_ROWS": [ + 5, + "var" + ], + "MIN_ROWS": [ + 6, + "var" + ], + "TABLESPACE": [ + 7, + "var" + ], + "NODEGROUP": [ + 8, + "var" + ] + }, "isSubpartition": false, "name": "p31", "type": "IN", @@ -5265,9 +7443,7 @@ "last": 486 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableAsSelect.out b/tests/data/parser/parseCreateTableAsSelect.out index 85e410cf3..be15e17fc 100644 --- a/tests/data/parser/parseCreateTableAsSelect.out +++ b/tests/data/parser/parseCreateTableAsSelect.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE new_tbl AS SELECT * FROM orig_tbl\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE new_tbl AS SELECT * FROM orig_tbl\n", "len": 47, "last": 47, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "new_tbl", "value": "new_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 31 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -121,7 +157,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": "orig_tbl", "value": "orig_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 38 }, @@ -148,30 +190,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -217,11 +263,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -229,7 +275,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -257,9 +303,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableEnforcedCheck.out b/tests/data/parser/parseCreateTableEnforcedCheck.out index b0047b1ef..862b27915 100644 --- a/tests/data/parser/parseCreateTableEnforcedCheck.out +++ b/tests/data/parser/parseCreateTableEnforcedCheck.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE IF NOT EXISTS employees_check (FirstName varchar(30) CHECK (FirstName REGEXP '^T' AND FirstName REGEXP 'r$') ENFORCED);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE IF NOT EXISTS employees_check (FirstName varchar(30) CHECK (FirstName REGEXP '^T' AND FirstName REGEXP 'r$') ENFORCED);", "len": 132, "last": 132, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 38, + "idx": 38, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +87,11 @@ "token": "employees_check", "value": "employees_check", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -85,7 +111,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 43 }, @@ -94,7 +124,9 @@ "token": "FirstName", "value": "FirstName", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 44 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -112,7 +146,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 54 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 61 }, @@ -130,7 +168,11 @@ "token": "30", "value": 30, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 62 }, @@ -139,7 +181,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 64 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -157,7 +203,9 @@ "token": "CHECK", "value": "CHECK", "keyword": "CHECK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 66 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -175,7 +225,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 72 }, @@ -184,7 +236,9 @@ "token": "FirstName", "value": "FirstName", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 73 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -202,7 +258,9 @@ "token": "REGEXP", "value": "REGEXP", "keyword": "REGEXP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 83 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -220,7 +280,11 @@ "token": "'^T'", "value": "^T", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 90 }, @@ -229,7 +293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -238,7 +304,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 95 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -256,7 +326,9 @@ "token": "FirstName", "value": "FirstName", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 99 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -274,7 +348,9 @@ "token": "REGEXP", "value": "REGEXP", "keyword": "REGEXP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 109 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -292,7 +370,9 @@ "token": "'r$'", "value": "r$", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 116 }, @@ -301,7 +381,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 120 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -319,7 +403,9 @@ "token": "ENFORCED", "value": "ENFORCED", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 122 }, @@ -328,7 +414,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 130 }, @@ -337,30 +425,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 131 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@45" + }, "flags": 0, "position": null } - ], - "count": 38, - "idx": 38 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -395,7 +487,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -445,9 +538,7 @@ "last": 36 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableErr1.out b/tests/data/parser/parseCreateTableErr1.out index 153d1ffa0..323c8a230 100644 --- a/tests/data/parser/parseCreateTableErr1.out +++ b/tests/data/parser/parseCreateTableErr1.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE IF NOT EXISTS users (\n `id` UNKNOWN\n) ENGINE=InnoDB;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE IF NOT EXISTS users (\n `id` UNKNOWN\n) ENGINE=InnoDB;", "len": 68, "last": 68, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +87,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -94,7 +124,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +135,11 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 39 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -121,7 +159,9 @@ "token": "UNKNOWN", "value": "UNKNOWN", "keyword": "UNKNOWN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 44 }, @@ -130,7 +170,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -139,7 +181,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 52 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -157,7 +203,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 54 }, @@ -166,7 +214,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 60 }, @@ -175,7 +225,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 61 }, @@ -184,30 +236,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 67 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@27" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -247,7 +303,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -280,9 +337,7 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -290,7 +345,7 @@ [ "Unrecognized data type.", { - "@type": "@14" + "@type": "@19" }, 0 ] diff --git a/tests/data/parser/parseCreateTableErr2.out b/tests/data/parser/parseCreateTableErr2.out index b075936ee..1e8b7b912 100644 --- a/tests/data/parser/parseCreateTableErr2.out +++ b/tests/data/parser/parseCreateTableErr2.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE", "len": 12, "last": 12, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,30 +43,34 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -89,9 +105,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -99,14 +113,14 @@ [ "The name of the entity was expected.", { - "@type": "@5" + "@type": "@7" }, 0 ], [ "At least one column definition was expected.", { - "@type": "@4" + "@type": "@6" }, 0 ] diff --git a/tests/data/parser/parseCreateTableErr3.out b/tests/data/parser/parseCreateTableErr3.out index 5cdc9f9e3..b06ded16e 100644 --- a/tests/data/parser/parseCreateTableErr3.out +++ b/tests/data/parser/parseCreateTableErr3.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `table_copy` LIKE ;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `table_copy` LIKE ;", "len": 32, "last": 32, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`table_copy`", "value": "table_copy", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,30 +111,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 31 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@14" + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -149,9 +179,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -159,7 +187,7 @@ [ "A table name was expected.", { - "@type": "@10" + "@type": "@13" }, 0 ] diff --git a/tests/data/parser/parseCreateTableErr4.out b/tests/data/parser/parseCreateTableErr4.out index ee48a52d9..a00c7f649 100644 --- a/tests/data/parser/parseCreateTableErr4.out +++ b/tests/data/parser/parseCreateTableErr4.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE new_table (INT VARCHAR(50) DEFAULT NULL);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE new_table (INT VARCHAR(50) DEFAULT NULL);", "len": 54, "last": 54, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "new_table", "value": "new_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -76,7 +102,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -94,7 +124,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 28 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 35 }, @@ -112,7 +146,11 @@ "token": "50", "value": 50, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 36 }, @@ -121,7 +159,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 38 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +181,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 40 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -157,7 +203,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 48 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 52 }, @@ -175,30 +225,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 53 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@26" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -242,9 +296,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -252,28 +304,28 @@ [ "A symbol name was expected! A reserved keyword can not be used as a column name without backquotes.", { - "@type": "@9" + "@type": "@13" }, 0 ], [ "At least one column definition was expected.", { - "@type": "@9" + "@type": "@13" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@13" + "@type": "@17" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@16" + "@type": "@21" }, 0 ] diff --git a/tests/data/parser/parseCreateTableErr5.out b/tests/data/parser/parseCreateTableErr5.out index c67895ec5..c45015df2 100644 --- a/tests/data/parser/parseCreateTableErr5.out +++ b/tests/data/parser/parseCreateTableErr5.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE new_table (666 VARCHAR(50) DEFAULT NULL);\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE new_table (666 VARCHAR(50) DEFAULT NULL);\n", "len": 55, "last": 55, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "new_table", "value": "new_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -76,7 +102,11 @@ "token": "666", "value": 666, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 24 }, @@ -85,7 +115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -94,7 +126,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 28 }, @@ -103,7 +137,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 35 }, @@ -112,7 +148,9 @@ "token": "50", "value": 50, "keyword": null, - "type": 6, + "type": { + "@type": "@14" + }, "flags": 0, "position": 36 }, @@ -121,7 +159,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 38 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +181,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 40 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -157,7 +203,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 48 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 52 }, @@ -175,7 +225,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 53 }, @@ -184,30 +238,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@26" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -251,9 +307,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -261,28 +315,28 @@ [ "A symbol name was expected!", { - "@type": "@9" + "@type": "@13" }, 0 ], [ "At least one column definition was expected.", { - "@type": "@9" + "@type": "@13" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@13" + "@type": "@18" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@16" + "@type": "@21" }, 0 ] diff --git a/tests/data/parser/parseCreateTableLike.out b/tests/data/parser/parseCreateTableLike.out index 19af61828..98695360f 100644 --- a/tests/data/parser/parseCreateTableLike.out +++ b/tests/data/parser/parseCreateTableLike.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `table_copy` LIKE `old_table`;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `table_copy` LIKE `old_table`;", "len": 43, "last": 43, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`table_copy`", "value": "table_copy", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,7 +111,9 @@ "token": "`old_table`", "value": "old_table", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 31 }, @@ -94,30 +122,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 42 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -167,9 +199,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableNotEnforcedCheck.out b/tests/data/parser/parseCreateTableNotEnforcedCheck.out index f8e34ae5f..460a94d44 100644 --- a/tests/data/parser/parseCreateTableNotEnforcedCheck.out +++ b/tests/data/parser/parseCreateTableNotEnforcedCheck.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE IF NOT EXISTS employees_check (FirstName varchar(30) CHECK (FirstName REGEXP '^T' AND FirstName REGEXP 'r$') NOT ENFORCED);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE IF NOT EXISTS employees_check (FirstName varchar(30) CHECK (FirstName REGEXP '^T' AND FirstName REGEXP 'r$') NOT ENFORCED);", "len": 136, "last": 136, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 40, + "idx": 40, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +87,11 @@ "token": "employees_check", "value": "employees_check", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -85,7 +111,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 43 }, @@ -94,7 +124,9 @@ "token": "FirstName", "value": "FirstName", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 44 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -112,7 +146,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 54 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 61 }, @@ -130,7 +168,11 @@ "token": "30", "value": 30, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 62 }, @@ -139,7 +181,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 64 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -157,7 +203,9 @@ "token": "CHECK", "value": "CHECK", "keyword": "CHECK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 66 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -175,7 +225,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 72 }, @@ -184,7 +236,9 @@ "token": "FirstName", "value": "FirstName", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 73 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -202,7 +258,9 @@ "token": "REGEXP", "value": "REGEXP", "keyword": "REGEXP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 83 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -220,7 +280,11 @@ "token": "'^T'", "value": "^T", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 90 }, @@ -229,7 +293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -238,7 +304,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 95 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -256,7 +326,9 @@ "token": "FirstName", "value": "FirstName", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 99 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -274,7 +348,9 @@ "token": "REGEXP", "value": "REGEXP", "keyword": "REGEXP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 109 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -292,7 +370,9 @@ "token": "'r$'", "value": "r$", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 116 }, @@ -301,7 +381,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 120 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -319,7 +403,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 122 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -337,7 +425,9 @@ "token": "ENFORCED", "value": "ENFORCED", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 126 }, @@ -346,7 +436,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 134 }, @@ -355,30 +447,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 135 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@47" + }, "flags": 0, "position": null } - ], - "count": 40, - "idx": 40 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -413,7 +509,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -464,9 +561,7 @@ "last": 38 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableSRID.out b/tests/data/parser/parseCreateTableSRID.out index 4093100cc..db5b8b4a3 100644 --- a/tests/data/parser/parseCreateTableSRID.out +++ b/tests/data/parser/parseCreateTableSRID.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE IF NOT EXISTS `public_areas` (\n `id` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,\n `kind` enum('COUNTRY','REGION','DEPARTMENT','MUNICIPALITY') NOT NULL,\n `area` geometry NOT NULL SRID 4326,\n `properties` json NOT NULL,\n `title` varchar(100) NOT NULL\n);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE IF NOT EXISTS `public_areas` (\n `id` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,\n `kind` enum('COUNTRY','REGION','DEPARTMENT','MUNICIPALITY') NOT NULL,\n `area` geometry NOT NULL SRID 4326,\n `properties` json NOT NULL,\n `title` varchar(100) NOT NULL\n);", "len": 275, "last": 275, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 69, + "idx": 69, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "IF NOT EXISTS", "value": "IF NOT EXISTS", "keyword": "IF NOT EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +87,11 @@ "token": "`public_areas`", "value": "public_areas", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 27 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -85,7 +111,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 42 }, @@ -94,7 +124,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +135,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 46 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -121,7 +157,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 51 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -139,7 +179,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 55 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -157,7 +201,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 64 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -175,7 +223,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 73 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -193,7 +245,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 85 }, @@ -202,7 +256,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 99 }, @@ -211,7 +267,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -220,7 +278,9 @@ "token": "`kind`", "value": "kind", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 103 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -238,7 +300,9 @@ "token": "enum", "value": "enum", "keyword": "ENUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 110 }, @@ -247,7 +311,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 114 }, @@ -256,7 +322,11 @@ "token": "'COUNTRY'", "value": "COUNTRY", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 115 }, @@ -265,7 +335,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 124 }, @@ -274,7 +346,9 @@ "token": "'REGION'", "value": "REGION", "keyword": null, - "type": 7, + "type": { + "@type": "@34" + }, "flags": 1, "position": 125 }, @@ -283,7 +357,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 133 }, @@ -292,7 +368,9 @@ "token": "'DEPARTMENT'", "value": "DEPARTMENT", "keyword": null, - "type": 7, + "type": { + "@type": "@34" + }, "flags": 1, "position": 134 }, @@ -301,7 +379,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 146 }, @@ -310,7 +390,9 @@ "token": "'MUNICIPALITY'", "value": "MUNICIPALITY", "keyword": null, - "type": 7, + "type": { + "@type": "@34" + }, "flags": 1, "position": 147 }, @@ -319,7 +401,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 161 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -337,7 +423,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 163 }, @@ -346,7 +434,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 171 }, @@ -355,7 +445,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 172 }, @@ -364,7 +456,9 @@ "token": "`area`", "value": "area", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 175 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 181 }, @@ -382,7 +478,9 @@ "token": "geometry", "value": "geometry", "keyword": "GEOMETRY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 182 }, @@ -391,7 +489,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 190 }, @@ -400,7 +500,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 191 }, @@ -409,7 +511,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -418,7 +522,9 @@ "token": "SRID", "value": "SRID", "keyword": "SRID", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 200 }, @@ -427,7 +533,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 204 }, @@ -436,7 +544,11 @@ "token": "4326", "value": 4326, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 205 }, @@ -445,7 +557,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 209 }, @@ -454,7 +568,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 210 }, @@ -463,7 +579,9 @@ "token": "`properties`", "value": "properties", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 213 }, @@ -472,7 +590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 225 }, @@ -481,7 +601,9 @@ "token": "json", "value": "json", "keyword": "JSON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 226 }, @@ -490,7 +612,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 230 }, @@ -499,7 +623,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 231 }, @@ -508,7 +634,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 239 }, @@ -517,7 +645,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 240 }, @@ -526,7 +656,9 @@ "token": "`title`", "value": "title", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 243 }, @@ -535,7 +667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 250 }, @@ -544,7 +678,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 251 }, @@ -553,7 +689,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 258 }, @@ -562,7 +700,9 @@ "token": "100", "value": 100, "keyword": null, - "type": 6, + "type": { + "@type": "@55" + }, "flags": 0, "position": 259 }, @@ -571,7 +711,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 262 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -589,7 +733,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 264 }, @@ -598,7 +744,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 272 }, @@ -607,7 +755,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 273 }, @@ -616,30 +766,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 274 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@76" + }, "flags": 0, "position": null } - ], - "count": 69, - "idx": 69 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -674,7 +828,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -703,7 +858,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -725,7 +881,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -753,7 +910,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -777,7 +935,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -812,9 +971,7 @@ "last": 67 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableSelect.out b/tests/data/parser/parseCreateTableSelect.out index c03f9af77..29b3d159e 100644 --- a/tests/data/parser/parseCreateTableSelect.out +++ b/tests/data/parser/parseCreateTableSelect.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE new_tbl SELECT * FROM orig_tbl\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE new_tbl SELECT * FROM orig_tbl\n", "len": 44, "last": 44, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "new_tbl", "value": "new_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +111,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 28 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -103,7 +135,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 30 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": "orig_tbl", "value": "orig_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 35 }, @@ -130,30 +168,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -199,11 +241,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -211,7 +253,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -239,9 +281,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableSpatial.out b/tests/data/parser/parseCreateTableSpatial.out index e23083665..244ac7db1 100644 --- a/tests/data/parser/parseCreateTableSpatial.out +++ b/tests/data/parser/parseCreateTableSpatial.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `xss`.`gis` ( `x` POINT NOT NULL ) ENGINE = InnoDB;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `xss`.`gis` ( `x` POINT NOT NULL ) ENGINE = InnoDB;", "len": 64, "last": 64, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`xss`", "value": "xss", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -67,7 +91,9 @@ "token": "`gis`", "value": "gis", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 19 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +113,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "`x`", "value": "x", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -121,7 +157,9 @@ "token": "POINT", "value": "POINT", "keyword": "POINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 31 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -139,7 +179,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 37 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -157,7 +201,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 46 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -175,7 +223,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 48 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -193,7 +245,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 55 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -211,7 +267,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 57 }, @@ -220,30 +280,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 63 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -283,7 +347,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -317,9 +382,7 @@ "last": 23 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableTimestampWithPrecision.out b/tests/data/parser/parseCreateTableTimestampWithPrecision.out index c0d606f5d..7f6971d4a 100644 --- a/tests/data/parser/parseCreateTableTimestampWithPrecision.out +++ b/tests/data/parser/parseCreateTableTimestampWithPrecision.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `aa` (\n `id` int(11) NOT NULL,\n `rTime` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' ON UPDATE CURRENT_TIMESTAMP(3),\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `aa` (\n `id` int(11) NOT NULL,\n `rTime` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' ON UPDATE CURRENT_TIMESTAMP(3),\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;", "len": 203, "last": 203, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 56, + "idx": 56, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`aa`", "value": "aa", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 27 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 30 }, @@ -121,7 +157,11 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 31 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 33 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -148,7 +192,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 35 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 43 }, @@ -166,7 +214,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -175,7 +225,9 @@ "token": "`rTime`", "value": "rTime", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 47 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -193,7 +247,9 @@ "token": "timestamp", "value": "timestamp", "keyword": "TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 55 }, @@ -202,7 +258,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 64 }, @@ -211,7 +269,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 65 }, @@ -220,7 +280,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 66 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -238,7 +302,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 68 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -256,7 +324,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 77 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -274,7 +346,11 @@ "token": "'0000-00-00 00:00:00.000'", "value": "0000-00-00 00:00:00.000", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 85 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -292,7 +370,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 111 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -310,7 +392,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 121 }, @@ -319,7 +403,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 138 }, @@ -328,7 +414,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 139 }, @@ -337,7 +425,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 140 }, @@ -346,7 +436,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 141 }, @@ -355,7 +447,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -364,7 +458,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 145 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -382,7 +480,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 157 }, @@ -391,7 +491,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 158 }, @@ -400,7 +502,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 162 }, @@ -409,7 +513,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 163 }, @@ -418,7 +524,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 164 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 165 }, @@ -436,7 +546,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 166 }, @@ -445,7 +557,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 172 }, @@ -454,7 +568,11 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 173 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 179 }, @@ -472,7 +592,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 180 }, @@ -481,7 +603,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 195 }, @@ -490,7 +614,9 @@ "token": "latin1", "value": "latin1", "keyword": null, - "type": 0, + "type": { + "@type": "@58" + }, "flags": 0, "position": 196 }, @@ -499,30 +625,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 202 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@64" + }, "flags": 0, "position": null } - ], - "count": 56, - "idx": 56 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -570,7 +700,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -594,7 +725,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -681,9 +813,7 @@ "last": 54 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableWithInvisibleKey.out b/tests/data/parser/parseCreateTableWithInvisibleKey.out index 95bf46099..af57c0b95 100644 --- a/tests/data/parser/parseCreateTableWithInvisibleKey.out +++ b/tests/data/parser/parseCreateTableWithInvisibleKey.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `animes_comments` (\n `anime_comment_id` bigint unsigned NOT NULL AUTO_INCREMENT,\n `anime_id` bigint unsigned NOT NULL,\n `user_id` bigint unsigned NOT NULL,\n `comment_text` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL,\n `comment_at` datetime DEFAULT NULL,\n PRIMARY KEY (`anime_comment_id`),\n KEY `animes_comments_animes_fk` (`anime_id`) invisible,\n KEY `animes_comments_users_fk` (`user_id`),\n KEY `comment_at_idx` (`comment_at`) ,\n CONSTRAINT `animes_comments_animes_fk` FOREIGN KEY (`anime_id`) REFERENCES `animes` (`anime_id`) ON DELETE CASCADE ON UPDATE RESTRICT,\n CONSTRAINT `animes_comments_users_fk` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE RESTRICT)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `animes_comments` (\n `anime_comment_id` bigint unsigned NOT NULL AUTO_INCREMENT,\n `anime_id` bigint unsigned NOT NULL,\n `user_id` bigint unsigned NOT NULL,\n `comment_text` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL,\n `comment_at` datetime DEFAULT NULL,\n PRIMARY KEY (`anime_comment_id`),\n KEY `animes_comments_animes_fk` (`anime_id`) invisible,\n KEY `animes_comments_users_fk` (`user_id`),\n KEY `comment_at_idx` (`comment_at`) ,\n CONSTRAINT `animes_comments_animes_fk` FOREIGN KEY (`anime_id`) REFERENCES `animes` (`anime_id`) ON DELETE CASCADE ON UPDATE RESTRICT,\n CONSTRAINT `animes_comments_users_fk` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE RESTRICT)", "len": 730, "last": 730, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 153, + "idx": 153, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`animes_comments`", "value": "animes_comments", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 31 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +113,9 @@ "token": "`anime_comment_id`", "value": "anime_comment_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 35 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -103,7 +135,9 @@ "token": "bigint", "value": "BIGINT", "keyword": "BIGINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 54 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -121,7 +157,9 @@ "token": "unsigned", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -139,7 +179,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 70 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -157,7 +201,9 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 79 }, @@ -166,7 +212,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 93 }, @@ -175,7 +223,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -184,7 +234,9 @@ "token": "`anime_id`", "value": "anime_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 97 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -202,7 +256,9 @@ "token": "bigint", "value": "BIGINT", "keyword": "BIGINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 108 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -220,7 +278,9 @@ "token": "unsigned", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 115 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -238,7 +300,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 124 }, @@ -247,7 +311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 132 }, @@ -256,7 +322,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -265,7 +333,9 @@ "token": "`user_id`", "value": "user_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 136 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -283,7 +355,9 @@ "token": "bigint", "value": "BIGINT", "keyword": "BIGINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 146 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -301,7 +377,9 @@ "token": "unsigned", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 153 }, @@ -310,7 +388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 161 }, @@ -319,7 +399,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 162 }, @@ -328,7 +410,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 170 }, @@ -337,7 +421,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -346,7 +432,9 @@ "token": "`comment_text`", "value": "comment_text", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 174 }, @@ -355,7 +443,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 188 }, @@ -364,7 +454,9 @@ "token": "varchar", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 189 }, @@ -373,7 +465,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 196 }, @@ -382,7 +476,11 @@ "token": "500", "value": 500, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 197 }, @@ -391,7 +489,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 200 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 201 }, @@ -409,7 +511,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 202 }, @@ -418,7 +522,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 209 }, @@ -427,7 +533,11 @@ "token": "utf8mb4_general_ci", "value": "utf8mb4_general_ci", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 210 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 228 }, @@ -445,7 +557,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 229 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 236 }, @@ -463,7 +579,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 237 }, @@ -472,7 +590,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 241 }, @@ -481,7 +601,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 242 }, @@ -490,7 +612,9 @@ "token": "`comment_at`", "value": "comment_at", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 245 }, @@ -499,7 +623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 257 }, @@ -508,7 +634,9 @@ "token": "datetime", "value": "datetime", "keyword": "DATETIME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 258 }, @@ -517,7 +645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 266 }, @@ -526,7 +656,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 267 }, @@ -535,7 +667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 274 }, @@ -544,7 +678,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 275 }, @@ -553,7 +689,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 279 }, @@ -562,7 +700,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 280 }, @@ -571,7 +711,9 @@ "token": "PRIMARY KEY", "value": "PRIMARY KEY", "keyword": "PRIMARY KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 283 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 294 }, @@ -589,7 +733,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 295 }, @@ -598,7 +744,9 @@ "token": "`anime_comment_id`", "value": "anime_comment_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 296 }, @@ -607,7 +755,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 314 }, @@ -616,7 +766,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 315 }, @@ -625,7 +777,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 316 }, @@ -634,7 +788,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 319 }, @@ -643,7 +799,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 322 }, @@ -652,7 +810,9 @@ "token": "`animes_comments_animes_fk`", "value": "animes_comments_animes_fk", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 323 }, @@ -661,7 +821,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 350 }, @@ -670,7 +832,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 351 }, @@ -679,7 +843,9 @@ "token": "`anime_id`", "value": "anime_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 352 }, @@ -688,7 +854,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 362 }, @@ -697,7 +865,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 363 }, @@ -706,7 +876,9 @@ "token": "invisible", "value": "invisible", "keyword": null, - "type": 0, + "type": { + "@type": "@54" + }, "flags": 0, "position": 364 }, @@ -715,7 +887,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 373 }, @@ -724,7 +898,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 374 }, @@ -733,7 +909,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 377 }, @@ -742,7 +920,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 380 }, @@ -751,7 +931,9 @@ "token": "`animes_comments_users_fk`", "value": "animes_comments_users_fk", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 381 }, @@ -760,7 +942,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 407 }, @@ -769,7 +953,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 408 }, @@ -778,7 +964,9 @@ "token": "`user_id`", "value": "user_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 409 }, @@ -787,7 +975,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 418 }, @@ -796,7 +986,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 419 }, @@ -805,7 +997,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 420 }, @@ -814,7 +1008,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 423 }, @@ -823,7 +1019,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 426 }, @@ -832,7 +1030,9 @@ "token": "`comment_at_idx`", "value": "comment_at_idx", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 427 }, @@ -841,7 +1041,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 443 }, @@ -850,7 +1052,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 444 }, @@ -859,7 +1063,9 @@ "token": "`comment_at`", "value": "comment_at", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 445 }, @@ -868,7 +1074,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 457 }, @@ -877,7 +1085,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 458 }, @@ -886,7 +1096,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 459 }, @@ -895,7 +1107,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 460 }, @@ -904,7 +1118,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 463 }, @@ -913,7 +1129,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 473 }, @@ -922,7 +1140,9 @@ "token": "`animes_comments_animes_fk`", "value": "animes_comments_animes_fk", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 474 }, @@ -931,7 +1151,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 501 }, @@ -940,7 +1162,9 @@ "token": "FOREIGN KEY", "value": "FOREIGN KEY", "keyword": "FOREIGN KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 502 }, @@ -949,7 +1173,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 513 }, @@ -958,7 +1184,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 514 }, @@ -967,7 +1195,9 @@ "token": "`anime_id`", "value": "anime_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 515 }, @@ -976,7 +1206,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 525 }, @@ -985,7 +1217,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 526 }, @@ -994,7 +1228,9 @@ "token": "REFERENCES", "value": "REFERENCES", "keyword": "REFERENCES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 527 }, @@ -1003,7 +1239,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 537 }, @@ -1012,7 +1250,9 @@ "token": "`animes`", "value": "animes", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 538 }, @@ -1021,7 +1261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 546 }, @@ -1030,7 +1272,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 547 }, @@ -1039,7 +1283,9 @@ "token": "`anime_id`", "value": "anime_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 548 }, @@ -1048,7 +1294,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 558 }, @@ -1057,7 +1305,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 559 }, @@ -1066,7 +1316,9 @@ "token": "ON DELETE", "value": "ON DELETE", "keyword": "ON DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 560 }, @@ -1075,7 +1327,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 569 }, @@ -1084,7 +1338,9 @@ "token": "CASCADE", "value": "CASCADE", "keyword": "CASCADE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 570 }, @@ -1093,7 +1349,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 577 }, @@ -1102,7 +1360,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 578 }, @@ -1111,7 +1371,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 587 }, @@ -1120,7 +1382,9 @@ "token": "RESTRICT", "value": "RESTRICT", "keyword": "RESTRICT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 588 }, @@ -1129,7 +1393,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 596 }, @@ -1138,7 +1404,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 597 }, @@ -1147,7 +1415,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 600 }, @@ -1156,7 +1426,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 610 }, @@ -1165,7 +1437,9 @@ "token": "`animes_comments_users_fk`", "value": "animes_comments_users_fk", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 611 }, @@ -1174,7 +1448,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 637 }, @@ -1183,7 +1459,9 @@ "token": "FOREIGN KEY", "value": "FOREIGN KEY", "keyword": "FOREIGN KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 638 }, @@ -1192,7 +1470,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 649 }, @@ -1201,7 +1481,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 650 }, @@ -1210,7 +1492,9 @@ "token": "`user_id`", "value": "user_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 651 }, @@ -1219,7 +1503,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 660 }, @@ -1228,7 +1514,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 661 }, @@ -1237,7 +1525,9 @@ "token": "REFERENCES", "value": "REFERENCES", "keyword": "REFERENCES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 662 }, @@ -1246,7 +1536,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 672 }, @@ -1255,7 +1547,9 @@ "token": "`users`", "value": "users", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 673 }, @@ -1264,7 +1558,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 680 }, @@ -1273,7 +1569,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 681 }, @@ -1282,7 +1580,9 @@ "token": "`user_id`", "value": "user_id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 682 }, @@ -1291,7 +1591,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 691 }, @@ -1300,7 +1602,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 692 }, @@ -1309,7 +1613,9 @@ "token": "ON DELETE", "value": "ON DELETE", "keyword": "ON DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 693 }, @@ -1318,7 +1624,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 702 }, @@ -1327,7 +1635,9 @@ "token": "CASCADE", "value": "CASCADE", "keyword": "CASCADE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 703 }, @@ -1336,7 +1646,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 710 }, @@ -1345,7 +1657,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 711 }, @@ -1354,7 +1668,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 720 }, @@ -1363,7 +1679,9 @@ "token": "RESTRICT", "value": "RESTRICT", "keyword": "RESTRICT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 721 }, @@ -1372,30 +1690,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 729 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 153, - "idx": 153 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1430,7 +1752,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1455,7 +1778,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1479,7 +1803,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1510,7 +1835,8 @@ "value": "utf8mb4_general_ci" } } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1546,7 +1872,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1798,9 +2125,7 @@ "last": 152 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTableWithParser.out b/tests/data/parser/parseCreateTableWithParser.out index 160c7734f..c4ffce103 100644 --- a/tests/data/parser/parseCreateTableWithParser.out +++ b/tests/data/parser/parseCreateTableWithParser.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE `mytable` (\n `column_one` VARCHAR(255) DEFAULT NULL,\n FULLTEXT KEY `fulltext_index` (`column_one`) /*!50100 WITH PARSER `ngram` */,\n CONSTRAINT `my_constraint_1` FOREIGN KEY (`column_one`) REFERENCES `other_table` (`column_two`) ON DELETE RESTRICT ON UPDATE RESTRICT\n)\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE `mytable` (\n `column_one` VARCHAR(255) DEFAULT NULL,\n FULLTEXT KEY `fulltext_index` (`column_one`) /*!50100 WITH PARSER `ngram` */,\n CONSTRAINT `my_constraint_1` FOREIGN KEY (`column_one`) REFERENCES `other_table` (`column_two`) ON DELETE RESTRICT ON UPDATE RESTRICT\n)\n", "len": 285, "last": 285, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 66, + "idx": 66, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`mytable`", "value": "mytable", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +113,9 @@ "token": "`column_one`", "value": "column_one", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +135,9 @@ "token": "VARCHAR", "value": "VARCHAR", "keyword": "VARCHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 40 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 47 }, @@ -121,7 +157,11 @@ "token": "255", "value": 255, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 48 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 51 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -148,7 +192,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 53 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -166,7 +214,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -175,7 +225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 65 }, @@ -184,7 +236,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -193,7 +247,9 @@ "token": "FULLTEXT KEY", "value": "FULLTEXT KEY", "keyword": "FULLTEXT KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 69 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -211,7 +269,9 @@ "token": "`fulltext_index`", "value": "fulltext_index", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 82 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -229,7 +291,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 99 }, @@ -238,7 +302,9 @@ "token": "`column_one`", "value": "column_one", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 100 }, @@ -247,7 +313,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 112 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -265,7 +335,11 @@ "token": "/*!50100", "value": "/*!50100", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 10, "position": 114 }, @@ -274,7 +348,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -283,7 +359,9 @@ "token": "WITH PARSER", "value": "WITH PARSER", "keyword": "WITH PARSER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 123 }, @@ -292,7 +370,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 134 }, @@ -301,7 +381,9 @@ "token": "`ngram`", "value": "ngram", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 135 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -319,7 +403,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@36" + }, "flags": 2, "position": 143 }, @@ -328,7 +414,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 145 }, @@ -337,7 +425,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 146 }, @@ -346,7 +436,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 149 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 159 }, @@ -364,7 +458,9 @@ "token": "`my_constraint_1`", "value": "my_constraint_1", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 160 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 177 }, @@ -382,7 +480,9 @@ "token": "FOREIGN KEY", "value": "FOREIGN KEY", "keyword": "FOREIGN KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 23, "position": 178 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 189 }, @@ -400,7 +502,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 190 }, @@ -409,7 +513,9 @@ "token": "`column_one`", "value": "column_one", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 191 }, @@ -418,7 +524,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 203 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 204 }, @@ -436,7 +546,9 @@ "token": "REFERENCES", "value": "REFERENCES", "keyword": "REFERENCES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 205 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 215 }, @@ -454,7 +568,9 @@ "token": "`other_table`", "value": "other_table", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 216 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 229 }, @@ -472,7 +590,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 230 }, @@ -481,7 +601,9 @@ "token": "`column_two`", "value": "column_two", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 231 }, @@ -490,7 +612,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 243 }, @@ -499,7 +623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 244 }, @@ -508,7 +634,9 @@ "token": "ON DELETE", "value": "ON DELETE", "keyword": "ON DELETE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 245 }, @@ -517,7 +645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 254 }, @@ -526,7 +656,9 @@ "token": "RESTRICT", "value": "RESTRICT", "keyword": "RESTRICT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 255 }, @@ -535,7 +667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -544,7 +678,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 264 }, @@ -553,7 +689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 273 }, @@ -562,7 +700,9 @@ "token": "RESTRICT", "value": "RESTRICT", "keyword": "RESTRICT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 274 }, @@ -571,7 +711,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 282 }, @@ -580,7 +722,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 283 }, @@ -589,30 +733,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 284 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 66, - "idx": 66 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -647,7 +795,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -780,9 +929,7 @@ "last": 65 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateTrigger.out b/tests/data/parser/parseCreateTrigger.out index ea9feec40..67d2ae6b8 100644 --- a/tests/data/parser/parseCreateTrigger.out +++ b/tests/data/parser/parseCreateTrigger.out @@ -2,18 +2,26 @@ "query": "CREATE TRIGGER ins_sum BEFORE INSERT ON account\nFOR EACH ROW BEGIN SET @sum = @sum + NEW.amount END", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TRIGGER ins_sum BEFORE INSERT ON account\nFOR EACH ROW BEGIN SET @sum = @sum + NEW.amount END", "len": 99, "last": 99, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TRIGGER", "value": "TRIGGER", "keyword": "TRIGGER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "ins_sum", "value": "ins_sum", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,9 @@ "token": "BEFORE", "value": "BEFORE", "keyword": "BEFORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +111,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 30 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -103,7 +133,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -121,7 +155,9 @@ "token": "account", "value": "account", "keyword": "ACCOUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 40 }, @@ -130,7 +166,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,7 +177,9 @@ "token": "FOR EACH ROW", "value": "FOR EACH ROW", "keyword": "FOR EACH ROW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 48 }, @@ -148,7 +188,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -157,7 +199,9 @@ "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 61 }, @@ -166,7 +210,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -175,7 +221,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 67 }, @@ -184,7 +232,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -193,7 +243,11 @@ "token": "@sum", "value": "sum", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 71 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -211,7 +267,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 76 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -229,7 +291,9 @@ "token": "@sum", "value": "sum", "keyword": null, - "type": 8, + "type": { + "@type": "@26" + }, "flags": 1, "position": 78 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -247,7 +313,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@29" + }, "flags": 1, "position": 83 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -265,7 +335,9 @@ "token": "NEW", "value": "NEW", "keyword": "NEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 85 }, @@ -274,7 +346,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@29" + }, "flags": 16, "position": 88 }, @@ -283,7 +357,9 @@ "token": "amount", "value": "amount", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 89 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -301,30 +379,34 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 96 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -370,15 +452,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@18" - }, - { - "@type": "@19" - }, - { - "@type": "@20" - }, { "@type": "@21" }, @@ -394,18 +467,12 @@ { "@type": "@25" }, - { - "@type": "@26" - }, { "@type": "@27" }, { "@type": "@28" }, - { - "@type": "@29" - }, { "@type": "@30" }, @@ -420,6 +487,21 @@ }, { "@type": "@34" + }, + { + "@type": "@35" + }, + { + "@type": "@36" + }, + { + "@type": "@37" + }, + { + "@type": "@38" + }, + { + "@type": "@39" } ], "options": { @@ -432,9 +514,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateUser1.out b/tests/data/parser/parseCreateUser1.out index 10ff9277b..226ce2482 100644 --- a/tests/data/parser/parseCreateUser1.out +++ b/tests/data/parser/parseCreateUser1.out @@ -2,18 +2,26 @@ "query": "CREATE USER test", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE USER test", "len": 16, "last": 16, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,30 +65,36 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -113,9 +135,7 @@ "last": 5 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateUser2.out b/tests/data/parser/parseCreateUser2.out index 28ce56784..819620bb2 100644 --- a/tests/data/parser/parseCreateUser2.out +++ b/tests/data/parser/parseCreateUser2.out @@ -2,18 +2,26 @@ "query": "CREATE USER 'bob'@'localhost' \n IDENTIFIED VIA mysql_native_password USING PASSWORD('vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u') \n OR unix_socket;\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE USER 'bob'@'localhost' \n IDENTIFIED VIA mysql_native_password USING PASSWORD('vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u') \n OR unix_socket;\n\n", "len": 141, "last": 141, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "'bob'@'localhost'", "value": "bob@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 12 }, @@ -58,7 +78,9 @@ "token": " \n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +89,9 @@ "token": "IDENTIFIED", "value": "IDENTIFIED", "keyword": "IDENTIFIED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 33 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -85,7 +111,11 @@ "token": "VIA", "value": "VIA", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 44 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -103,7 +135,9 @@ "token": "mysql_native_password", "value": "mysql_native_password", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 48 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -121,7 +157,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 70 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -139,7 +179,9 @@ "token": "PASSWORD", "value": "PASSWORD", "keyword": "PASSWORD", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 76 }, @@ -148,7 +190,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 84 }, @@ -157,7 +203,11 @@ "token": "'vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u'", "value": "vp8LAf4#wu2V&Wi*iJWC#3KPotsHzx3u", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 85 }, @@ -166,7 +216,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@22" + }, "flags": 16, "position": 119 }, @@ -175,7 +227,9 @@ "token": " \n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -184,7 +238,9 @@ "token": "OR", "value": "OR", "keyword": "OR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 124 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -202,7 +260,9 @@ "token": "unix_socket", "value": "unix_socket", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 127 }, @@ -211,7 +271,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 138 }, @@ -220,30 +284,32 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -274,15 +340,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@8" - }, - { - "@type": "@9" - }, - { - "@type": "@10" - }, { "@type": "@11" }, @@ -292,9 +349,6 @@ { "@type": "@13" }, - { - "@type": "@14" - }, { "@type": "@15" }, @@ -317,10 +371,22 @@ "@type": "@21" }, { - "@type": "@22" + "@type": "@23" }, { - "@type": "@23" + "@type": "@25" + }, + { + "@type": "@26" + }, + { + "@type": "@27" + }, + { + "@type": "@28" + }, + { + "@type": "@29" } ], "options": { @@ -333,9 +399,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateView.out b/tests/data/parser/parseCreateView.out index 79a501a4f..eb3f1b89f 100644 --- a/tests/data/parser/parseCreateView.out +++ b/tests/data/parser/parseCreateView.out @@ -2,18 +2,26 @@ "query": "CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_id`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`title` ASC separator ', ') from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film_id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa`.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info` from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor_id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film_id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name`", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_id`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`title` ASC separator ', ') from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film_id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa`.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info` from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor_id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film_id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name`", "len": 960, "last": 960, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 286, + "idx": 286, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 16 }, @@ -49,7 +67,9 @@ "token": "UNDEFINED", "value": "UNDEFINED", "keyword": "UNDEFINED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +89,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, @@ -76,7 +100,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 34 }, @@ -85,7 +111,11 @@ "token": "`root`@`localhost`", "value": "root@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 35 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -103,7 +135,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -121,7 +157,9 @@ "token": "INVOKER", "value": "INVOKER", "keyword": "INVOKER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 67 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -139,7 +179,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 75 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -157,7 +201,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 80 }, @@ -166,7 +212,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 88 }, @@ -175,7 +223,9 @@ "token": "`actor_info`", "value": "actor_info", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 89 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -193,7 +245,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 102 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -211,7 +267,9 @@ "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 105 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -229,7 +289,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 112 }, @@ -238,7 +300,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 115 }, @@ -247,7 +311,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 116 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -265,7 +333,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 127 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -283,7 +355,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 130 }, @@ -292,7 +366,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 140 }, @@ -301,7 +377,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 141 }, @@ -310,7 +388,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 144 }, @@ -319,7 +399,9 @@ "token": "`first_name`", "value": "first_name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 145 }, @@ -328,7 +410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -337,7 +421,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 158 }, @@ -346,7 +432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -355,7 +443,9 @@ "token": "`first_name`", "value": "first_name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 161 }, @@ -364,7 +454,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 173 }, @@ -373,7 +465,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 174 }, @@ -382,7 +476,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 177 }, @@ -391,7 +487,9 @@ "token": "`last_name`", "value": "last_name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 178 }, @@ -400,7 +498,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 189 }, @@ -409,7 +509,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 190 }, @@ -418,7 +520,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 192 }, @@ -427,7 +531,9 @@ "token": "`last_name`", "value": "last_name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 193 }, @@ -436,7 +542,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 204 }, @@ -445,7 +553,9 @@ "token": "group_concat", "value": "group_concat", "keyword": "GROUP_CONCAT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 205 }, @@ -454,7 +564,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 217 }, @@ -463,7 +575,9 @@ "token": "distinct", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 218 }, @@ -472,7 +586,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 226 }, @@ -481,7 +597,9 @@ "token": "concat", "value": "concat", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 227 }, @@ -490,7 +608,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 233 }, @@ -499,7 +619,9 @@ "token": "`c`", "value": "c", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 234 }, @@ -508,7 +630,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 237 }, @@ -517,7 +641,9 @@ "token": "`name`", "value": "name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 238 }, @@ -526,7 +652,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 244 }, @@ -535,7 +663,11 @@ "token": "': '", "value": ": ", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 245 }, @@ -544,7 +676,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 249 }, @@ -553,7 +687,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 250 }, @@ -562,7 +698,9 @@ "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 251 }, @@ -571,7 +709,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 257 }, @@ -580,7 +720,9 @@ "token": "group_concat", "value": "group_concat", "keyword": "GROUP_CONCAT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 258 }, @@ -589,7 +731,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 270 }, @@ -598,7 +742,9 @@ "token": "`f`", "value": "f", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 271 }, @@ -607,7 +753,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 274 }, @@ -616,7 +764,9 @@ "token": "`title`", "value": "title", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 275 }, @@ -625,7 +775,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 282 }, @@ -634,7 +786,9 @@ "token": "order by", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 283 }, @@ -643,7 +797,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 291 }, @@ -652,7 +808,9 @@ "token": "`f`", "value": "f", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 292 }, @@ -661,7 +819,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 295 }, @@ -670,7 +830,9 @@ "token": "`title`", "value": "title", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 296 }, @@ -679,7 +841,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 303 }, @@ -688,7 +852,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 304 }, @@ -697,7 +863,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 307 }, @@ -706,7 +874,9 @@ "token": "separator", "value": "SEPARATOR", "keyword": "SEPARATOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 308 }, @@ -715,7 +885,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 317 }, @@ -724,7 +896,9 @@ "token": "', '", "value": ", ", "keyword": null, - "type": 7, + "type": { + "@type": "@65" + }, "flags": 1, "position": 318 }, @@ -733,7 +907,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 322 }, @@ -742,7 +918,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 323 }, @@ -751,7 +929,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 324 }, @@ -760,7 +940,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 328 }, @@ -769,7 +951,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 329 }, @@ -778,7 +962,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 330 }, @@ -787,7 +973,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 331 }, @@ -796,7 +984,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 339 }, @@ -805,7 +995,9 @@ "token": "`film`", "value": "film", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 340 }, @@ -814,7 +1006,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 346 }, @@ -823,7 +1017,9 @@ "token": "`f`", "value": "f", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 347 }, @@ -832,7 +1028,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 350 }, @@ -841,7 +1039,9 @@ "token": "join", "value": "JOIN", "keyword": "JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 351 }, @@ -850,7 +1050,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 355 }, @@ -859,7 +1061,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 356 }, @@ -868,7 +1072,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 364 }, @@ -877,7 +1083,9 @@ "token": "`film_category`", "value": "film_category", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 365 }, @@ -886,7 +1094,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 380 }, @@ -895,7 +1105,9 @@ "token": "`fc`", "value": "fc", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 381 }, @@ -904,7 +1116,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 385 }, @@ -913,7 +1127,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 386 }, @@ -922,7 +1138,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 388 }, @@ -931,7 +1149,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 389 }, @@ -940,7 +1160,9 @@ "token": "`f`", "value": "f", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 390 }, @@ -949,7 +1171,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 393 }, @@ -958,7 +1182,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 394 }, @@ -967,7 +1193,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 403 }, @@ -976,7 +1204,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 404 }, @@ -985,7 +1215,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 405 }, @@ -994,7 +1226,9 @@ "token": "`fc`", "value": "fc", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 406 }, @@ -1003,7 +1237,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 410 }, @@ -1012,7 +1248,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 411 }, @@ -1021,7 +1259,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 420 }, @@ -1030,7 +1270,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 421 }, @@ -1039,7 +1281,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 422 }, @@ -1048,7 +1292,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 423 }, @@ -1057,7 +1303,9 @@ "token": "join", "value": "JOIN", "keyword": "JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 424 }, @@ -1066,7 +1314,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 428 }, @@ -1075,7 +1325,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 429 }, @@ -1084,7 +1336,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 437 }, @@ -1093,7 +1347,9 @@ "token": "`film_actor`", "value": "film_actor", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 438 }, @@ -1102,7 +1358,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 450 }, @@ -1111,7 +1369,9 @@ "token": "`fa`", "value": "fa", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 451 }, @@ -1120,7 +1380,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 455 }, @@ -1129,7 +1391,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 456 }, @@ -1138,7 +1402,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 458 }, @@ -1147,7 +1413,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 459 }, @@ -1156,7 +1424,9 @@ "token": "`f`", "value": "f", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 460 }, @@ -1165,7 +1435,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 463 }, @@ -1174,7 +1446,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 464 }, @@ -1183,7 +1457,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 473 }, @@ -1192,7 +1468,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 474 }, @@ -1201,7 +1479,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 475 }, @@ -1210,7 +1490,9 @@ "token": "`fa`", "value": "fa", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 476 }, @@ -1219,7 +1501,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 480 }, @@ -1228,7 +1512,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 481 }, @@ -1237,7 +1523,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 490 }, @@ -1246,7 +1534,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 491 }, @@ -1255,7 +1545,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 492 }, @@ -1264,7 +1556,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 493 }, @@ -1273,7 +1567,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 494 }, @@ -1282,7 +1578,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 499 }, @@ -1291,7 +1589,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 500 }, @@ -1300,7 +1600,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 501 }, @@ -1309,7 +1611,9 @@ "token": "`fc`", "value": "fc", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 502 }, @@ -1318,7 +1622,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 506 }, @@ -1327,7 +1633,9 @@ "token": "`category_id`", "value": "category_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 507 }, @@ -1336,7 +1644,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 520 }, @@ -1345,7 +1655,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 521 }, @@ -1354,7 +1666,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 522 }, @@ -1363,7 +1677,9 @@ "token": "`c`", "value": "c", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 523 }, @@ -1372,7 +1688,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 526 }, @@ -1381,7 +1699,9 @@ "token": "`category_id`", "value": "category_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 527 }, @@ -1390,7 +1710,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 540 }, @@ -1399,7 +1721,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 541 }, @@ -1408,7 +1732,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 542 }, @@ -1417,7 +1743,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 545 }, @@ -1426,7 +1754,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 546 }, @@ -1435,7 +1765,9 @@ "token": "`fa`", "value": "fa", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 547 }, @@ -1444,7 +1776,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 551 }, @@ -1453,7 +1787,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 552 }, @@ -1462,7 +1798,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 562 }, @@ -1471,7 +1809,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 563 }, @@ -1480,7 +1820,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 564 }, @@ -1489,7 +1831,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 565 }, @@ -1498,7 +1842,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 568 }, @@ -1507,7 +1853,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 569 }, @@ -1516,7 +1864,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 579 }, @@ -1525,7 +1875,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 580 }, @@ -1534,7 +1886,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 581 }, @@ -1543,7 +1897,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 582 }, @@ -1552,7 +1908,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 583 }, @@ -1561,7 +1919,9 @@ "token": "order by", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 584 }, @@ -1570,7 +1930,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 592 }, @@ -1579,7 +1941,9 @@ "token": "`c`", "value": "c", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 593 }, @@ -1588,7 +1952,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 596 }, @@ -1597,7 +1963,9 @@ "token": "`name`", "value": "name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 597 }, @@ -1606,7 +1974,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 603 }, @@ -1615,7 +1985,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 604 }, @@ -1624,7 +1996,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 607 }, @@ -1633,7 +2007,9 @@ "token": "separator", "value": "SEPARATOR", "keyword": "SEPARATOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 608 }, @@ -1642,7 +2018,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 617 }, @@ -1651,7 +2029,9 @@ "token": "'; '", "value": "; ", "keyword": null, - "type": 7, + "type": { + "@type": "@65" + }, "flags": 1, "position": 618 }, @@ -1660,7 +2040,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 622 }, @@ -1669,7 +2051,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 623 }, @@ -1678,7 +2062,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 624 }, @@ -1687,7 +2073,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 626 }, @@ -1696,7 +2084,9 @@ "token": "`film_info`", "value": "film_info", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 627 }, @@ -1705,7 +2095,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 638 }, @@ -1714,7 +2106,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 639 }, @@ -1723,7 +2117,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 643 }, @@ -1732,7 +2128,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 644 }, @@ -1741,7 +2139,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 645 }, @@ -1750,7 +2150,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 646 }, @@ -1759,7 +2161,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 647 }, @@ -1768,7 +2172,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 655 }, @@ -1777,7 +2183,9 @@ "token": "`actor`", "value": "actor", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 656 }, @@ -1786,7 +2194,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 663 }, @@ -1795,7 +2205,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 664 }, @@ -1804,7 +2216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 667 }, @@ -1813,7 +2227,9 @@ "token": "left join", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 668 }, @@ -1822,7 +2238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 677 }, @@ -1831,7 +2249,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 678 }, @@ -1840,7 +2260,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 686 }, @@ -1849,7 +2271,9 @@ "token": "`film_actor`", "value": "film_actor", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 687 }, @@ -1858,7 +2282,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 699 }, @@ -1867,7 +2293,9 @@ "token": "`fa`", "value": "fa", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 700 }, @@ -1876,7 +2304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 704 }, @@ -1885,7 +2315,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 705 }, @@ -1894,7 +2326,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 707 }, @@ -1903,7 +2337,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 708 }, @@ -1912,7 +2348,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 709 }, @@ -1921,7 +2359,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 712 }, @@ -1930,7 +2370,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 713 }, @@ -1939,7 +2381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 723 }, @@ -1948,7 +2392,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 724 }, @@ -1957,7 +2403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 725 }, @@ -1966,7 +2414,9 @@ "token": "`fa`", "value": "fa", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 726 }, @@ -1975,7 +2425,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 730 }, @@ -1984,7 +2436,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 731 }, @@ -1993,7 +2447,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 741 }, @@ -2002,7 +2458,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 742 }, @@ -2011,7 +2469,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 743 }, @@ -2020,7 +2480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 744 }, @@ -2029,7 +2491,9 @@ "token": "left join", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 745 }, @@ -2038,7 +2502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 754 }, @@ -2047,7 +2513,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 755 }, @@ -2056,7 +2524,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 763 }, @@ -2065,7 +2535,9 @@ "token": "`film_category`", "value": "film_category", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 764 }, @@ -2074,7 +2546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 779 }, @@ -2083,7 +2557,9 @@ "token": "`fc`", "value": "fc", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 780 }, @@ -2092,7 +2568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 784 }, @@ -2101,7 +2579,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 785 }, @@ -2110,7 +2590,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 787 }, @@ -2119,7 +2601,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 788 }, @@ -2128,7 +2612,9 @@ "token": "`fa`", "value": "fa", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 789 }, @@ -2137,7 +2623,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 793 }, @@ -2146,7 +2634,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 794 }, @@ -2155,7 +2645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 803 }, @@ -2164,7 +2656,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 804 }, @@ -2173,7 +2667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 805 }, @@ -2182,7 +2678,9 @@ "token": "`fc`", "value": "fc", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 806 }, @@ -2191,7 +2689,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 810 }, @@ -2200,7 +2700,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 811 }, @@ -2209,7 +2711,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 820 }, @@ -2218,7 +2722,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 821 }, @@ -2227,7 +2733,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 822 }, @@ -2236,7 +2744,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 823 }, @@ -2245,7 +2755,9 @@ "token": "left join", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 824 }, @@ -2254,7 +2766,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 833 }, @@ -2263,7 +2777,9 @@ "token": "`sakila`", "value": "sakila", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 834 }, @@ -2272,7 +2788,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 842 }, @@ -2281,7 +2799,9 @@ "token": "`category`", "value": "category", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 843 }, @@ -2290,7 +2810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 853 }, @@ -2299,7 +2821,9 @@ "token": "`c`", "value": "c", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 854 }, @@ -2308,7 +2832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 857 }, @@ -2317,7 +2843,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 858 }, @@ -2326,7 +2854,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 860 }, @@ -2335,7 +2865,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 861 }, @@ -2344,7 +2876,9 @@ "token": "`fc`", "value": "fc", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 862 }, @@ -2353,7 +2887,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 866 }, @@ -2362,7 +2898,9 @@ "token": "`category_id`", "value": "category_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 867 }, @@ -2371,7 +2909,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 880 }, @@ -2380,7 +2920,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 881 }, @@ -2389,7 +2931,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 882 }, @@ -2398,7 +2942,9 @@ "token": "`c`", "value": "c", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 883 }, @@ -2407,7 +2953,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 886 }, @@ -2416,7 +2964,9 @@ "token": "`category_id`", "value": "category_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 887 }, @@ -2425,7 +2975,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 900 }, @@ -2434,7 +2986,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 901 }, @@ -2443,7 +2997,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 902 }, @@ -2452,7 +3008,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 903 }, @@ -2461,7 +3019,9 @@ "token": "group by", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 904 }, @@ -2470,7 +3030,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 912 }, @@ -2479,7 +3041,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 913 }, @@ -2488,7 +3052,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 916 }, @@ -2497,7 +3063,9 @@ "token": "`actor_id`", "value": "actor_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 917 }, @@ -2506,7 +3074,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 927 }, @@ -2515,7 +3085,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 928 }, @@ -2524,7 +3096,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 931 }, @@ -2533,7 +3107,9 @@ "token": "`first_name`", "value": "first_name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 932 }, @@ -2542,7 +3118,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 944 }, @@ -2551,7 +3129,9 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 945 }, @@ -2560,7 +3140,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 948 }, @@ -2569,30 +3151,34 @@ "token": "`last_name`", "value": "last_name", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 949 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 286, - "idx": 286 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -2668,7 +3254,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -2715,7 +3301,7 @@ } } ], - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -2723,7 +3309,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -2778,9 +3364,7 @@ "last": 285 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateView2.out b/tests/data/parser/parseCreateView2.out index ac14dd2b3..cfa38a3d4 100644 --- a/tests/data/parser/parseCreateView2.out +++ b/tests/data/parser/parseCreateView2.out @@ -2,18 +2,26 @@ "query": "CREATE VIEW myView (vid, vfirstname) AS\nSELECT id, first_name FROM employee WHERE id = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE VIEW myView (vid, vfirstname) AS\nSELECT id, first_name FROM employee WHERE id = 1;", "len": 89, "last": 89, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 35, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "myView", "value": "myView", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -76,7 +102,9 @@ "token": "vid", "value": "vid", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 23 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -103,7 +135,9 @@ "token": "vfirstname", "value": "vfirstname", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 25 }, @@ -112,7 +146,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 35 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -130,7 +168,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -139,7 +179,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -148,7 +190,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -166,7 +212,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 47 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 49 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +245,9 @@ "token": "first_name", "value": "first_name", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 51 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -211,7 +267,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 62 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -229,7 +289,9 @@ "token": "employee", "value": "employee", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 67 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -247,7 +311,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -265,7 +333,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 82 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -283,7 +355,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 85 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -301,7 +377,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 87 }, @@ -310,30 +390,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 88 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@41" + }, "flags": 0, "position": null } - ], - "count": 35, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -374,18 +458,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@16" - }, - { - "@type": "@17" - }, - { - "@type": "@18" - }, - { - "@type": "@19" - }, { "@type": "@20" }, @@ -430,6 +502,18 @@ }, { "@type": "@34" + }, + { + "@type": "@35" + }, + { + "@type": "@36" + }, + { + "@type": "@37" + }, + { + "@type": "@38" } ], "options": { @@ -442,9 +526,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateView3.out b/tests/data/parser/parseCreateView3.out index 4fa299ef1..8bb11a229 100644 --- a/tests/data/parser/parseCreateView3.out +++ b/tests/data/parser/parseCreateView3.out @@ -2,18 +2,26 @@ "query": "CREATE VIEW GoodStudent AS\n SELECT `one space`, `two spaces`\n FROM `Une table espace`\n WHERE `one space` > 3.0\n WITH CHECK OPTION\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE VIEW GoodStudent AS\n SELECT `one space`, `two spaces`\n FROM `Une table espace`\n WHERE `one space` > 3.0\n WITH CHECK OPTION\n", "len": 148, "last": 148, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "GoodStudent", "value": "GoodStudent", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 31 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -103,7 +133,11 @@ "token": "`one space`", "value": "one space", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 38 }, @@ -112,7 +146,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 49 }, @@ -121,7 +159,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -130,7 +170,9 @@ "token": "`two spaces`", "value": "two spaces", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 51 }, @@ -139,7 +181,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -148,7 +192,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 70 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -166,7 +214,9 @@ "token": "`Une table espace`", "value": "Une table espace", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 75 }, @@ -175,7 +225,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -184,7 +236,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 102 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -202,7 +258,9 @@ "token": "`one space`", "value": "one space", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 108 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -220,7 +280,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 2, "position": 120 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -238,7 +302,11 @@ "token": "3.0", "value": 3.0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 2, "position": 122 }, @@ -247,7 +315,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -256,7 +326,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 130 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 134 }, @@ -274,7 +348,9 @@ "token": "CHECK", "value": "CHECK", "keyword": "CHECK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 135 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -292,7 +370,9 @@ "token": "OPTION", "value": "OPTION", "keyword": "OPTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 141 }, @@ -301,30 +381,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -380,7 +464,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -389,11 +473,14 @@ "one space" ], "isOperator": false, - "expr": "`one space` > 3.0" + "expr": "`one space` > 3.0", + "leftOperand": "`one space`", + "operator": ">", + "rightOperand": "3.0" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -401,7 +488,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -420,22 +507,22 @@ "parameters": null, "body": [ { - "@type": "@29" + "@type": "@35" }, { - "@type": "@30" + "@type": "@36" }, { - "@type": "@31" + "@type": "@37" }, { - "@type": "@32" + "@type": "@38" }, { - "@type": "@33" + "@type": "@39" }, { - "@type": "@34" + "@type": "@40" } ], "options": { @@ -448,9 +535,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -458,7 +543,7 @@ [ "A new statement was found, but no delimiter between it and the previous one.", { - "@type": "@29" + "@type": "@35" }, 0 ] diff --git a/tests/data/parser/parseCreateView4.out b/tests/data/parser/parseCreateView4.out index 3c32e77a0..0e220ff3c 100644 --- a/tests/data/parser/parseCreateView4.out +++ b/tests/data/parser/parseCreateView4.out @@ -2,18 +2,26 @@ "query": "CREATE VIEW v (mycol) AS SELECT 'abc';\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE VIEW v (mycol) AS SELECT 'abc';\n", "len": 39, "last": 39, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "v", "value": "v", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 14 }, @@ -76,7 +102,9 @@ "token": "mycol", "value": "mycol", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 15 }, @@ -85,7 +113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -103,7 +135,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -121,7 +157,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -139,7 +179,11 @@ "token": "'abc'", "value": "abc", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 32 }, @@ -148,7 +192,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 37 }, @@ -157,30 +205,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@23" + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -220,16 +270,16 @@ "parameters": null, "body": [ { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" } ], "options": { @@ -242,9 +292,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateView5.out b/tests/data/parser/parseCreateView5.out index 31fb85156..d1c44d23a 100644 --- a/tests/data/parser/parseCreateView5.out +++ b/tests/data/parser/parseCreateView5.out @@ -2,18 +2,26 @@ "query": "CREATE VIEW `t3` as SELECT `t1` IS NOT NULL AS `is_not_null` FROM `test3`;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE VIEW `t3` as SELECT `t1` IS NOT NULL AS `is_not_null` FROM `test3`;\n", "len": 75, "last": 75, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 26, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`t3`", "value": "t3", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +111,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +133,9 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -121,7 +155,9 @@ "token": "IS", "value": "IS", "keyword": "IS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 32 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -139,7 +177,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 35 }, @@ -148,7 +188,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -157,7 +199,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -166,7 +210,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -175,7 +221,9 @@ "token": "`is_not_null`", "value": "is_not_null", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 47 }, @@ -184,7 +232,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -193,7 +243,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -202,7 +254,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -211,7 +265,9 @@ "token": "`test3`", "value": "test3", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 66 }, @@ -220,7 +276,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 73 }, @@ -229,30 +289,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@29" + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 26 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -298,11 +360,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -310,7 +372,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -338,9 +400,7 @@ "last": 23 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateViewAsWithAs.out b/tests/data/parser/parseCreateViewAsWithAs.out index 15d7b5200..fe3fda816 100644 --- a/tests/data/parser/parseCreateViewAsWithAs.out +++ b/tests/data/parser/parseCreateViewAsWithAs.out @@ -2,18 +2,26 @@ "query": "-- create first view\nCREATE VIEW withclause AS\n\nWITH cte AS (\n SELECT p.name, p.shape\n FROM gis_all as p\n)\n\nSELECT cte.*\nFROM cte\nCROSS JOIN gis_all;\n-- create second view\nCREATE VIEW withclause2 AS\n\nWITH cte AS (\n SELECT p.name, p.shape\n FROM gis_all as p\n), cte2 AS (\n SELECT p.name as n2, p.shape as sh2\n FROM gis_all as p\n)\n\nSELECT cte.*,cte2.*\nFROM cte,cte2\nCROSS JOIN gis_all;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- create first view\nCREATE VIEW withclause AS\n\nWITH cte AS (\n SELECT p.name, p.shape\n FROM gis_all as p\n)\n\nSELECT cte.*\nFROM cte\nCROSS JOIN gis_all;\n-- create second view\nCREATE VIEW withclause2 AS\n\nWITH cte AS (\n SELECT p.name, p.shape\n FROM gis_all as p\n), cte2 AS (\n SELECT p.name as n2, p.shape as sh2\n FROM gis_all as p\n)\n\nSELECT cte.*,cte2.*\nFROM cte,cte2\nCROSS JOIN gis_all;", "len": 388, "last": 388, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 150, + "idx": 150, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- create first view", "value": "-- create first view", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 20 }, @@ -31,7 +43,11 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 21 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -49,7 +67,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 28 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,11 @@ "token": "withclause", "value": "withclause", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 33 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -85,7 +113,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 44 }, @@ -94,7 +124,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -103,7 +135,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 48 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +157,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 53 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -139,7 +179,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 57 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -157,7 +201,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 60 }, @@ -166,7 +214,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -175,7 +225,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 64 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 71 }, @@ -202,7 +258,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 72 }, @@ -211,7 +269,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 73 }, @@ -220,7 +280,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 77 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -238,7 +302,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 79 }, @@ -247,7 +313,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 80 }, @@ -256,7 +324,9 @@ "token": "shape", "value": "shape", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 81 }, @@ -265,7 +335,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 89 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -292,7 +368,9 @@ "token": "gis_all", "value": "gis_all", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 94 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -310,7 +390,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 102 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -328,7 +412,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 105 }, @@ -337,7 +423,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -346,7 +434,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 107 }, @@ -355,7 +445,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -364,7 +456,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 110 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -382,7 +478,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 117 }, @@ -391,7 +489,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 120 }, @@ -400,7 +500,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 121 }, @@ -409,7 +511,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -418,7 +522,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 123 }, @@ -427,7 +533,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +544,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 128 }, @@ -445,7 +555,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -454,7 +566,9 @@ "token": "CROSS JOIN", "value": "CROSS JOIN", "keyword": "CROSS JOIN", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 7, "position": 132 }, @@ -463,7 +577,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -472,7 +588,9 @@ "token": "gis_all", "value": "gis_all", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 143 }, @@ -481,7 +599,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 150 }, @@ -490,7 +612,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 151 }, @@ -499,7 +623,9 @@ "token": "-- create second view", "value": "-- create second view", "keyword": null, - "type": 4, + "type": { + "@type": "@3" + }, "flags": 4, "position": 152 }, @@ -508,7 +634,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -517,7 +645,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 174 }, @@ -526,7 +656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 180 }, @@ -535,7 +667,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 181 }, @@ -544,7 +678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -553,7 +689,9 @@ "token": "withclause2", "value": "withclause2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 186 }, @@ -562,7 +700,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 197 }, @@ -571,7 +711,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 198 }, @@ -580,7 +722,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 200 }, @@ -589,7 +733,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 202 }, @@ -598,7 +744,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 206 }, @@ -607,7 +755,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 207 }, @@ -616,7 +766,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 210 }, @@ -625,7 +777,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 211 }, @@ -634,7 +788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 213 }, @@ -643,7 +799,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 214 }, @@ -652,7 +810,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 215 }, @@ -661,7 +821,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 218 }, @@ -670,7 +832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 224 }, @@ -679,7 +843,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 225 }, @@ -688,7 +854,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 226 }, @@ -697,7 +865,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 227 }, @@ -706,7 +876,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 231 }, @@ -715,7 +887,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 232 }, @@ -724,7 +898,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 233 }, @@ -733,7 +909,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 234 }, @@ -742,7 +920,9 @@ "token": "shape", "value": "shape", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 235 }, @@ -751,7 +931,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 240 }, @@ -760,7 +942,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 243 }, @@ -769,7 +953,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 247 }, @@ -778,7 +964,9 @@ "token": "gis_all", "value": "gis_all", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 248 }, @@ -787,7 +975,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 255 }, @@ -796,7 +986,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 256 }, @@ -805,7 +997,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 258 }, @@ -814,7 +1008,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 259 }, @@ -823,7 +1019,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 260 }, @@ -832,7 +1030,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 261 }, @@ -841,7 +1041,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 262 }, @@ -850,7 +1052,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -859,7 +1063,9 @@ "token": "cte2", "value": "cte2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 264 }, @@ -868,7 +1074,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 268 }, @@ -877,7 +1085,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 269 }, @@ -886,7 +1096,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 271 }, @@ -895,7 +1107,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 272 }, @@ -904,7 +1118,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 273 }, @@ -913,7 +1129,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 276 }, @@ -922,7 +1140,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 282 }, @@ -931,7 +1151,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 283 }, @@ -940,7 +1162,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 284 }, @@ -949,7 +1173,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 285 }, @@ -958,7 +1184,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 289 }, @@ -967,7 +1195,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 290 }, @@ -976,7 +1206,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 292 }, @@ -985,7 +1217,9 @@ "token": "n2", "value": "n2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 293 }, @@ -994,7 +1228,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 295 }, @@ -1003,7 +1239,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 296 }, @@ -1012,7 +1250,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 297 }, @@ -1021,7 +1261,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 298 }, @@ -1030,7 +1272,9 @@ "token": "shape", "value": "shape", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 299 }, @@ -1039,7 +1283,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 304 }, @@ -1048,7 +1294,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 305 }, @@ -1057,7 +1305,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 307 }, @@ -1066,7 +1316,9 @@ "token": "sh2", "value": "sh2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 308 }, @@ -1075,7 +1327,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 311 }, @@ -1084,7 +1338,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 314 }, @@ -1093,7 +1349,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 318 }, @@ -1102,7 +1360,9 @@ "token": "gis_all", "value": "gis_all", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 319 }, @@ -1111,7 +1371,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 326 }, @@ -1120,7 +1382,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 327 }, @@ -1129,7 +1393,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 329 }, @@ -1138,7 +1404,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 330 }, @@ -1147,7 +1415,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 331 }, @@ -1156,7 +1426,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 332 }, @@ -1165,7 +1437,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 333 }, @@ -1174,7 +1448,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 335 }, @@ -1183,7 +1459,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 341 }, @@ -1192,7 +1470,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 342 }, @@ -1201,7 +1481,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 345 }, @@ -1210,7 +1492,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 346 }, @@ -1219,7 +1503,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 347 }, @@ -1228,7 +1514,9 @@ "token": "cte2", "value": "cte2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 348 }, @@ -1237,7 +1525,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 352 }, @@ -1246,7 +1536,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 353 }, @@ -1255,7 +1547,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 354 }, @@ -1264,7 +1558,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 355 }, @@ -1273,7 +1569,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 359 }, @@ -1282,7 +1580,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 360 }, @@ -1291,7 +1591,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 363 }, @@ -1300,7 +1602,9 @@ "token": "cte2", "value": "cte2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 364 }, @@ -1309,7 +1613,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 368 }, @@ -1318,7 +1624,9 @@ "token": "CROSS JOIN", "value": "CROSS JOIN", "keyword": "CROSS JOIN", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 7, "position": 369 }, @@ -1327,7 +1635,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 379 }, @@ -1336,7 +1646,9 @@ "token": "gis_all", "value": "gis_all", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 380 }, @@ -1345,30 +1657,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@60" + }, "flags": 0, "position": 387 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@60" + }, "flags": 0, "position": null } - ], - "count": 150, - "idx": 150 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1392,28 +1706,16 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ - { - "@type": "@19" - }, - { - "@type": "@20" - }, - { - "@type": "@21" - }, - { - "@type": "@22" - }, - { - "@type": "@23" - }, { "@type": "@24" }, @@ -1458,10 +1760,23 @@ }, { "@type": "@38" + }, + { + "@type": "@39" + }, + { + "@type": "@40" + }, + { + "@type": "@41" + }, + { + "@type": "@42" + }, + { + "@type": "@43" } - ], - "count": 20, - "idx": 20 + ] }, "statements": [ { @@ -1500,11 +1815,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1512,7 +1827,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1521,32 +1836,20 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 111, + "idx": 111, "tokens": [ - { - "@type": "@41" - }, - { - "@type": "@42" - }, - { - "@type": "@43" - }, - { - "@type": "@44" - }, - { - "@type": "@45" - }, { "@type": "@46" }, @@ -1589,9 +1892,6 @@ { "@type": "@59" }, - { - "@type": "@60" - }, { "@type": "@61" }, @@ -1864,10 +2164,26 @@ }, { "@type": "@151" + }, + { + "@type": "@152" + }, + { + "@type": "@153" + }, + { + "@type": "@154" + }, + { + "@type": "@155" + }, + { + "@type": "@156" + }, + { + "@type": "@157" } - ], - "count": 111, - "idx": 111 + ] }, "statements": [ { @@ -1896,11 +2212,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1921,11 +2237,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1952,31 +2269,16 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ - { - "@type": "@73" - }, - { - "@type": "@74" - }, - { - "@type": "@75" - }, - { - "@type": "@76" - }, - { - "@type": "@77" - }, - { - "@type": "@78" - }, { "@type": "@79" }, @@ -2018,10 +2320,26 @@ }, { "@type": "@92" + }, + { + "@type": "@93" + }, + { + "@type": "@94" + }, + { + "@type": "@95" + }, + { + "@type": "@96" + }, + { + "@type": "@97" + }, + { + "@type": "@98" } - ], - "count": 20, - "idx": 20 + ] }, "statements": [ { @@ -2060,11 +2378,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -2072,7 +2390,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -2081,38 +2399,22 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" }, "cte2": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte2", "columns": [], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 28, + "idx": 28, "tokens": [ - { - "@type": "@101" - }, - { - "@type": "@102" - }, - { - "@type": "@103" - }, - { - "@type": "@104" - }, - { - "@type": "@105" - }, - { - "@type": "@106" - }, { "@type": "@107" }, @@ -2178,10 +2480,26 @@ }, { "@type": "@128" + }, + { + "@type": "@129" + }, + { + "@type": "@130" + }, + { + "@type": "@131" + }, + { + "@type": "@132" + }, + { + "@type": "@133" + }, + { + "@type": "@134" } - ], - "count": 28, - "idx": 28 + ] }, "statements": [ { @@ -2220,11 +2538,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -2232,7 +2550,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -2241,35 +2559,20 @@ "last": 27 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte2" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ - { - "@type": "@131" - }, - { - "@type": "@132" - }, - { - "@type": "@133" - }, - { - "@type": "@134" - }, - { - "@type": "@135" - }, - { - "@type": "@136" - }, { "@type": "@137" }, @@ -2314,10 +2617,26 @@ }, { "@type": "@151" + }, + { + "@type": "@152" + }, + { + "@type": "@153" + }, + { + "@type": "@154" + }, + { + "@type": "@155" + }, + { + "@type": "@156" + }, + { + "@type": "@157" } - ], - "count": 21, - "idx": 21 + ] }, "statements": [ { @@ -2366,11 +2685,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -2391,11 +2710,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -2404,9 +2724,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -2436,9 +2754,7 @@ "last": 109 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -2468,9 +2784,7 @@ "last": 148 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateViewMultiple.out b/tests/data/parser/parseCreateViewMultiple.out index bd9c6f6d2..d88c63e8e 100644 --- a/tests/data/parser/parseCreateViewMultiple.out +++ b/tests/data/parser/parseCreateViewMultiple.out @@ -2,18 +2,26 @@ "query": "CREATE TABLE T1 (COL1 CHAR(10))\n\nCREATE VIEW V1 AS SELECT COL1\n FROM T1 WHERE COL1 LIKE 'A%'\n\nCREATE VIEW V2 AS SELECT COL1\n FROM V1 WHERE COL1 LIKE '%Z'\n WITH LOCAL CHECK OPTION\n\nCREATE VIEW V3 AS SELECT COL1\n FROM V2 WHERE COL1 LIKE 'AB%'\n\nCREATE VIEW V4 AS SELECT COL1\n FROM V3 WHERE COL1 LIKE '%YZ'\n WITH CASCADED CHECK OPTION\n\nCREATE VIEW V5 AS SELECT COL1\n FROM V4 WHERE COL1 LIKE 'ABC%'\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE TABLE T1 (COL1 CHAR(10))\n\nCREATE VIEW V1 AS SELECT COL1\n FROM T1 WHERE COL1 LIKE 'A%'\n\nCREATE VIEW V2 AS SELECT COL1\n FROM V1 WHERE COL1 LIKE '%Z'\n WITH LOCAL CHECK OPTION\n\nCREATE VIEW V3 AS SELECT COL1\n FROM V2 WHERE COL1 LIKE 'AB%'\n\nCREATE VIEW V4 AS SELECT COL1\n FROM V3 WHERE COL1 LIKE '%YZ'\n WITH CASCADED CHECK OPTION\n\nCREATE VIEW V5 AS SELECT COL1\n FROM V4 WHERE COL1 LIKE 'ABC%'\n", "len": 464, "last": 464, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 152, + "idx": 152, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "T1", "value": "T1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 16 }, @@ -76,7 +102,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 17 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -94,7 +124,9 @@ "token": "CHAR", "value": "CHAR", "keyword": "CHAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 22 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 26 }, @@ -112,7 +146,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 27 }, @@ -121,7 +159,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 29 }, @@ -130,7 +170,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 30 }, @@ -139,7 +181,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -148,7 +192,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -166,7 +214,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 40 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -184,7 +236,9 @@ "token": "V1", "value": "V1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 46 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -202,7 +258,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 49 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -220,7 +280,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -238,7 +302,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 59 }, @@ -247,7 +313,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -256,7 +324,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 68 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -274,7 +346,9 @@ "token": "T1", "value": "T1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 73 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -292,7 +368,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -310,7 +390,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 82 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -328,7 +412,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -346,7 +434,11 @@ "token": "'A%'", "value": "A%", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 92 }, @@ -355,7 +447,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -364,7 +458,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 98 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -382,7 +480,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 105 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -400,7 +502,9 @@ "token": "V2", "value": "V2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 110 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -418,7 +524,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 113 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -436,7 +546,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 116 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -454,7 +568,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 123 }, @@ -463,7 +579,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -472,7 +590,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 132 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 136 }, @@ -490,7 +612,9 @@ "token": "V1", "value": "V1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 137 }, @@ -499,7 +623,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -508,7 +634,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 140 }, @@ -517,7 +645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -526,7 +656,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 146 }, @@ -535,7 +667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 150 }, @@ -544,7 +678,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 151 }, @@ -553,7 +689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -562,7 +700,9 @@ "token": "'%Z'", "value": "%Z", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 1, "position": 156 }, @@ -571,7 +711,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -580,7 +722,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 189 }, @@ -589,7 +733,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 193 }, @@ -598,7 +744,9 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 194 }, @@ -607,7 +755,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -616,7 +766,9 @@ "token": "CHECK", "value": "CHECK", "keyword": "CHECK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 200 }, @@ -625,7 +777,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 205 }, @@ -634,7 +788,9 @@ "token": "OPTION", "value": "OPTION", "keyword": "OPTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 206 }, @@ -643,7 +799,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 212 }, @@ -652,7 +810,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 214 }, @@ -661,7 +821,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 220 }, @@ -670,7 +832,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 221 }, @@ -679,7 +843,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 225 }, @@ -688,7 +854,9 @@ "token": "V3", "value": "V3", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 226 }, @@ -697,7 +865,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 228 }, @@ -706,7 +876,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 229 }, @@ -715,7 +887,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 231 }, @@ -724,7 +898,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 232 }, @@ -733,7 +909,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 238 }, @@ -742,7 +920,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 239 }, @@ -751,7 +931,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 243 }, @@ -760,7 +942,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 248 }, @@ -769,7 +953,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 252 }, @@ -778,7 +964,9 @@ "token": "V2", "value": "V2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 253 }, @@ -787,7 +975,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 255 }, @@ -796,7 +986,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 256 }, @@ -805,7 +997,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 261 }, @@ -814,7 +1008,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 262 }, @@ -823,7 +1019,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 266 }, @@ -832,7 +1030,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 267 }, @@ -841,7 +1041,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 271 }, @@ -850,7 +1052,9 @@ "token": "'AB%'", "value": "AB%", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 1, "position": 272 }, @@ -859,7 +1063,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 277 }, @@ -868,7 +1074,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 279 }, @@ -877,7 +1085,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -886,7 +1096,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 286 }, @@ -895,7 +1107,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 290 }, @@ -904,7 +1118,9 @@ "token": "V4", "value": "V4", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 291 }, @@ -913,7 +1129,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 293 }, @@ -922,7 +1140,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 294 }, @@ -931,7 +1151,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 296 }, @@ -940,7 +1162,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 297 }, @@ -949,7 +1173,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 303 }, @@ -958,7 +1184,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 304 }, @@ -967,7 +1195,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 308 }, @@ -976,7 +1206,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 313 }, @@ -985,7 +1217,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 317 }, @@ -994,7 +1228,9 @@ "token": "V3", "value": "V3", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 318 }, @@ -1003,7 +1239,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 320 }, @@ -1012,7 +1250,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 321 }, @@ -1021,7 +1261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 326 }, @@ -1030,7 +1272,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 327 }, @@ -1039,7 +1283,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 331 }, @@ -1048,7 +1294,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 332 }, @@ -1057,7 +1305,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 336 }, @@ -1066,7 +1316,9 @@ "token": "'%YZ'", "value": "%YZ", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 1, "position": 337 }, @@ -1075,7 +1327,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 342 }, @@ -1084,7 +1338,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 371 }, @@ -1093,7 +1349,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 375 }, @@ -1102,7 +1360,9 @@ "token": "CASCADED", "value": "CASCADED", "keyword": "CASCADED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 376 }, @@ -1111,7 +1371,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 384 }, @@ -1120,7 +1382,9 @@ "token": "CHECK", "value": "CHECK", "keyword": "CHECK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 385 }, @@ -1129,7 +1393,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 390 }, @@ -1138,7 +1404,9 @@ "token": "OPTION", "value": "OPTION", "keyword": "OPTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 391 }, @@ -1147,7 +1415,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 397 }, @@ -1156,7 +1426,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 399 }, @@ -1165,7 +1437,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 405 }, @@ -1174,7 +1448,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 406 }, @@ -1183,7 +1459,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 410 }, @@ -1192,7 +1470,9 @@ "token": "V5", "value": "V5", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 411 }, @@ -1201,7 +1481,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 413 }, @@ -1210,7 +1492,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 414 }, @@ -1219,7 +1503,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 416 }, @@ -1228,7 +1514,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 417 }, @@ -1237,7 +1525,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 423 }, @@ -1246,7 +1536,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 424 }, @@ -1255,7 +1547,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 428 }, @@ -1264,7 +1558,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 433 }, @@ -1273,7 +1569,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 437 }, @@ -1282,7 +1580,9 @@ "token": "V4", "value": "V4", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 438 }, @@ -1291,7 +1591,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 440 }, @@ -1300,7 +1602,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 441 }, @@ -1309,7 +1613,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 446 }, @@ -1318,7 +1624,9 @@ "token": "COL1", "value": "COL1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 447 }, @@ -1327,7 +1635,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 451 }, @@ -1336,7 +1646,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 452 }, @@ -1345,7 +1657,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 456 }, @@ -1354,7 +1668,9 @@ "token": "'ABC%'", "value": "ABC%", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 1, "position": 457 }, @@ -1363,30 +1679,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 463 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 152, - "idx": 152 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1421,7 +1741,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -1453,9 +1774,7 @@ "last": 151 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateViewWithQuotes.out b/tests/data/parser/parseCreateViewWithQuotes.out index 02b7bb973..5760f4a27 100644 --- a/tests/data/parser/parseCreateViewWithQuotes.out +++ b/tests/data/parser/parseCreateViewWithQuotes.out @@ -2,18 +2,26 @@ "query": "CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`\nSQL SECURITY DEFINER VIEW `test_view` AS\nselect `email_content`.`content_id` AS `content_id`,\n`email_content`.`brand_id` AS `brand_id` from `email_content`;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`\nSQL SECURITY DEFINER VIEW `test_view` AS\nselect `email_content`.`content_id` AS `content_id`,\n`email_content`.`brand_id` AS `brand_id` from `email_content`;", "len": 211, "last": 211, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 44, + "idx": 44, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 16 }, @@ -49,7 +67,9 @@ "token": "UNDEFINED", "value": "UNDEFINED", "keyword": "UNDEFINED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +89,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, @@ -76,7 +100,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 34 }, @@ -85,7 +111,11 @@ "token": "`root`@`localhost`", "value": "root@localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 35 }, @@ -94,7 +124,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -103,7 +135,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -121,7 +157,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 67 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -139,7 +179,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 75 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -157,7 +201,9 @@ "token": "`test_view`", "value": "test_view", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 80 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -175,7 +223,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, @@ -184,7 +234,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -193,7 +245,9 @@ "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -211,7 +267,9 @@ "token": "`email_content`", "value": "email_content", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 103 }, @@ -220,7 +278,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 118 }, @@ -229,7 +289,9 @@ "token": "`content_id`", "value": "content_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 119 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -247,7 +311,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 132 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 134 }, @@ -265,7 +333,9 @@ "token": "`content_id`", "value": "content_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 135 }, @@ -274,7 +344,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 147 }, @@ -283,7 +355,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -292,7 +366,9 @@ "token": "`email_content`", "value": "email_content", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 149 }, @@ -301,7 +377,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 164 }, @@ -310,7 +388,9 @@ "token": "`brand_id`", "value": "brand_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 165 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 175 }, @@ -328,7 +410,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 176 }, @@ -337,7 +421,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 178 }, @@ -346,7 +432,9 @@ "token": "`brand_id`", "value": "brand_id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 179 }, @@ -355,7 +443,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 189 }, @@ -364,7 +454,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 190 }, @@ -373,7 +465,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 194 }, @@ -382,7 +476,9 @@ "token": "`email_content`", "value": "email_content", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 195 }, @@ -391,30 +487,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 210 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@49" + }, "flags": 0, "position": null } - ], - "count": 44, - "idx": 44 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -470,11 +570,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -482,7 +582,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -537,9 +637,7 @@ "last": 42 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateViewWithUnion.out b/tests/data/parser/parseCreateViewWithUnion.out index 2122145a9..a97ed35a6 100644 --- a/tests/data/parser/parseCreateViewWithUnion.out +++ b/tests/data/parser/parseCreateViewWithUnion.out @@ -2,18 +2,26 @@ "query": "CREATE VIEW `employees_view` AS\nSELECT *\nFROM\n `employees`\nWHERE\n `employees`.`gender` = 'M'\nUNION\nSELECT *\nFROM\n `employees`\nWHERE\n `employees`.`gender` = 'F';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE VIEW `employees_view` AS\nSELECT *\nFROM\n `employees`\nWHERE\n `employees`.`gender` = 'M'\nUNION\nSELECT *\nFROM\n `employees`\nWHERE\n `employees`.`gender` = 'F';", "len": 173, "last": 173, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 47, + "idx": 47, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`employees_view`", "value": "employees_view", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 30 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,7 +111,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -103,7 +133,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 40 }, @@ -112,7 +146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -121,7 +157,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -130,7 +168,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -139,7 +179,9 @@ "token": "`employees`", "value": "employees", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 51 }, @@ -148,7 +190,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -157,7 +201,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -166,7 +212,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -175,7 +223,9 @@ "token": "`employees`", "value": "employees", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 73 }, @@ -184,7 +234,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 84 }, @@ -193,7 +245,9 @@ "token": "`gender`", "value": "gender", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 85 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -211,7 +267,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 94 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -229,7 +289,11 @@ "token": "'M'", "value": "M", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 96 }, @@ -238,7 +302,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -247,7 +313,9 @@ "token": "UNION", "value": "UNION", "keyword": "UNION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 100 }, @@ -256,7 +324,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 105 }, @@ -265,7 +335,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 106 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -283,7 +357,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 113 }, @@ -292,7 +368,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -301,7 +379,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 115 }, @@ -310,7 +390,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -319,7 +401,9 @@ "token": "`employees`", "value": "employees", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 124 }, @@ -328,7 +412,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -337,7 +423,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 136 }, @@ -346,7 +434,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -355,7 +445,9 @@ "token": "`employees`", "value": "employees", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 146 }, @@ -364,7 +456,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 157 }, @@ -373,7 +467,9 @@ "token": "`gender`", "value": "gender", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 158 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 166 }, @@ -391,7 +489,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 167 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 168 }, @@ -409,7 +511,9 @@ "token": "'F'", "value": "F", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 169 }, @@ -418,30 +522,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 172 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@53" + }, "flags": 0, "position": null } - ], - "count": 47, - "idx": 47 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -487,7 +595,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -498,11 +606,14 @@ "M" ], "isOperator": false, - "expr": "`employees`.`gender` = 'M'" + "expr": "`employees`.`gender` = 'M'", + "leftOperand": "`employees`.`gender`", + "operator": "=", + "rightOperand": "'M'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -510,7 +621,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -528,21 +639,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@28" - }, - { - "@type": "@29" - }, - { - "@type": "@30" - }, - { - "@type": "@31" - }, - { - "@type": "@32" - }, { "@type": "@33" }, @@ -584,6 +680,21 @@ }, { "@type": "@46" + }, + { + "@type": "@47" + }, + { + "@type": "@48" + }, + { + "@type": "@49" + }, + { + "@type": "@50" + }, + { + "@type": "@51" } ], "options": { @@ -596,9 +707,7 @@ "last": 45 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseCreateViewWithWrongSyntax.out b/tests/data/parser/parseCreateViewWithWrongSyntax.out index e3fcb13c9..27a0a61c5 100644 --- a/tests/data/parser/parseCreateViewWithWrongSyntax.out +++ b/tests/data/parser/parseCreateViewWithWrongSyntax.out @@ -2,18 +2,26 @@ "query": "CREATE VIEW abc AS SELECT a, b, FROM a", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE VIEW abc AS SELECT a, b, FROM a", "len": 38, "last": 38, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "abc", "value": "abc", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +111,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -103,7 +133,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 26 }, @@ -112,7 +144,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 27 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -130,7 +168,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 29 }, @@ -139,7 +179,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 30 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -157,7 +201,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 32 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -175,30 +223,34 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 37 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -254,11 +306,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -266,7 +318,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -294,9 +346,7 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -304,7 +354,7 @@ [ "An expression was expected.", { - "@type": "@18" + "@type": "@22" }, 0 ] diff --git a/tests/data/parser/parseCreateViewWithoutQuotes.out b/tests/data/parser/parseCreateViewWithoutQuotes.out index c703207ee..e7d49855a 100644 --- a/tests/data/parser/parseCreateViewWithoutQuotes.out +++ b/tests/data/parser/parseCreateViewWithoutQuotes.out @@ -2,18 +2,26 @@ "query": "CREATE ALGORITHM=UNDEFINED DEFINER=root@localhost\nSQL SECURITY DEFINER VIEW `test_view` AS\nselect `email_content`.`content_id` AS `content_id`,\n`email_content`.`brand_id` AS `brand_id` from `email_content`;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE ALGORITHM=UNDEFINED DEFINER=root@localhost\nSQL SECURITY DEFINER VIEW `test_view` AS\nselect `email_content`.`content_id` AS `content_id`,\n`email_content`.`brand_id` AS `brand_id` from `email_content`;", "len": 207, "last": 207, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 45, + "idx": 45, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "ALGORITHM", "value": "ALGORITHM", "keyword": "ALGORITHM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 16 }, @@ -49,7 +67,9 @@ "token": "UNDEFINED", "value": "UNDEFINED", "keyword": "UNDEFINED", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +89,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, @@ -76,7 +100,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 2, "position": 34 }, @@ -85,7 +111,11 @@ "token": "root", "value": "root", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 35 }, @@ -94,7 +124,11 @@ "token": "@localhost", "value": "localhost", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 39 }, @@ -103,7 +137,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -112,7 +148,9 @@ "token": "SQL SECURITY", "value": "SQL SECURITY", "keyword": "SQL SECURITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 50 }, @@ -121,7 +159,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -130,7 +170,9 @@ "token": "DEFINER", "value": "DEFINER", "keyword": "DEFINER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 63 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -148,7 +192,9 @@ "token": "VIEW", "value": "VIEW", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 71 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -166,7 +214,9 @@ "token": "`test_view`", "value": "test_view", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 76 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -184,7 +236,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -193,7 +247,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -202,7 +258,9 @@ "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 92 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -220,7 +280,9 @@ "token": "`email_content`", "value": "email_content", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 99 }, @@ -229,7 +291,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 114 }, @@ -238,7 +302,9 @@ "token": "`content_id`", "value": "content_id", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 115 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -256,7 +324,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 128 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -274,7 +346,9 @@ "token": "`content_id`", "value": "content_id", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 131 }, @@ -283,7 +357,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 143 }, @@ -292,7 +368,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -301,7 +379,9 @@ "token": "`email_content`", "value": "email_content", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 145 }, @@ -310,7 +390,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 160 }, @@ -319,7 +401,9 @@ "token": "`brand_id`", "value": "brand_id", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 161 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -337,7 +423,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 172 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -355,7 +445,9 @@ "token": "`brand_id`", "value": "brand_id", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 175 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -373,7 +467,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 186 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 190 }, @@ -391,7 +489,9 @@ "token": "`email_content`", "value": "email_content", "keyword": null, - "type": 8, + "type": { + "@type": "@16" + }, "flags": 2, "position": 191 }, @@ -400,30 +500,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 206 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@51" + }, "flags": 0, "position": null } - ], - "count": 45, - "idx": 45 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -479,11 +583,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -491,7 +595,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -546,9 +650,7 @@ "last": 43 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete.out b/tests/data/parser/parseDelete.out index 0cd5552dc..db8c66b6f 100644 --- a/tests/data/parser/parseDelete.out +++ b/tests/data/parser/parseDelete.out @@ -2,18 +2,26 @@ "query": "DELETE LOW_PRIORITY\n/* */\nFROM\n `test`.users\nWHERE\n `id`<3 AND (username=\"Dan\" or username=\"Paul\")\nORDER BY\n id\n;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE LOW_PRIORITY\n/* */\nFROM\n `test`.users\nWHERE\n `id`<3 AND (username=\"Dan\" or username=\"Paul\")\nORDER BY\n id\n;", "len": 122, "last": 122, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 38, + "idx": 38, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -49,7 +65,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 20 }, @@ -58,7 +78,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +89,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,7 +111,11 @@ "token": "`test`", "value": "test", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 35 }, @@ -94,7 +124,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 41 }, @@ -103,7 +137,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 42 }, @@ -112,7 +150,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -121,7 +161,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 48 }, @@ -130,7 +172,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -139,7 +183,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 58 }, @@ -148,7 +194,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 62 }, @@ -157,7 +205,11 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 63 }, @@ -166,7 +218,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -175,7 +229,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 65 }, @@ -184,7 +240,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -193,7 +251,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 69 }, @@ -202,7 +262,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 70 }, @@ -211,7 +273,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 78 }, @@ -220,7 +284,11 @@ "token": "\"Dan\"", "value": "Dan", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 79 }, @@ -229,7 +297,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -238,7 +308,9 @@ "token": "or", "value": "OR", "keyword": "OR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 85 }, @@ -247,7 +319,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -256,7 +330,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 88 }, @@ -265,7 +341,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 96 }, @@ -274,7 +352,9 @@ "token": "\"Paul\"", "value": "Paul", "keyword": null, - "type": 7, + "type": { + "@type": "@33" + }, "flags": 2, "position": 97 }, @@ -283,7 +363,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 103 }, @@ -292,7 +374,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -301,7 +385,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 105 }, @@ -310,7 +396,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -319,7 +407,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 118 }, @@ -328,7 +418,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -337,30 +429,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 121 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@47" + }, "flags": 0, "position": null } - ], - "count": 38, - "idx": 38 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -390,13 +486,19 @@ "id" ], "isOperator": false, - "expr": "`id`<3" + "expr": "`id`<3", + "leftOperand": "`id`", + "operator": "<", + "rightOperand": "3" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -405,13 +507,19 @@ "Dan" ], "isOperator": false, - "expr": "(username=\"Dan\"" + "expr": "(username=\"Dan\"", + "leftOperand": "(username", + "operator": "=", + "rightOperand": "\"Dan\"" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "OR" + "expr": "OR", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -420,7 +528,10 @@ "Paul" ], "isOperator": false, - "expr": "username=\"Paul\")" + "expr": "username=\"Paul\")", + "leftOperand": "username", + "operator": "=", + "rightOperand": "\"Paul\")" } ], "order": [ @@ -436,7 +547,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -450,9 +565,7 @@ "last": 35 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete10.out b/tests/data/parser/parseDelete10.out index 834621c55..3d9b6e588 100644 --- a/tests/data/parser/parseDelete10.out +++ b/tests/data/parser/parseDelete10.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK table1, table2.* FROM table1 as t1, table2 as t2 WHERE 1=1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK table1, table2.* FROM table1 as t1, table2 as t2 WHERE 1=1", "len": 71, "last": 71, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 32, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -76,7 +102,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 27 }, @@ -94,7 +124,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 28 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -112,7 +146,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 30 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 35 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 45 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 47 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -193,7 +245,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 49 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -211,7 +267,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -229,7 +289,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 59 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -247,7 +311,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 62 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -265,7 +333,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 68 }, @@ -274,7 +346,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 69 }, @@ -283,30 +357,34 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@35" + }, "flags": 0, "position": 70 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 32 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -365,7 +443,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -380,9 +461,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete11.out b/tests/data/parser/parseDelete11.out index 6e25779e9..f6d533471 100644 --- a/tests/data/parser/parseDelete11.out +++ b/tests/data/parser/parseDelete11.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1, table2.* USING table1 AS `t1`, table2 AS `t2` WHERE 1=1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1, table2.* USING table1 AS `t1`, table2 AS `t2` WHERE 1=1", "len": 81, "last": 81, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 35 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -148,7 +190,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -166,7 +212,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 48 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -184,7 +234,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 51 }, @@ -193,7 +247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 55 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -211,7 +269,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 57 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -229,7 +291,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 64 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -247,7 +313,9 @@ "token": "`t2`", "value": "t2", "keyword": null, - "type": 8, + "type": { + "@type": "@26" + }, "flags": 2, "position": 67 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -265,7 +335,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 72 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -283,7 +357,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 78 }, @@ -292,7 +370,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 79 }, @@ -301,30 +381,34 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@38" + }, "flags": 0, "position": 80 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -383,7 +467,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -398,9 +485,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete12.out b/tests/data/parser/parseDelete12.out index b59069d9d..37b649e73 100644 --- a/tests/data/parser/parseDelete12.out +++ b/tests/data/parser/parseDelete12.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1 WHERE 1=1 LIMIT 0, 25", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1 WHERE 1=1 LIMIT 0, 25", "len": 46, "last": 46, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 31 }, @@ -112,7 +146,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 32 }, @@ -121,7 +159,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 33 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -139,7 +181,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 35 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -157,7 +203,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 41 }, @@ -166,7 +214,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 42 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -184,30 +236,34 @@ "token": "25", "value": 25, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 44 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -235,7 +291,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -254,9 +313,7 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete13.out b/tests/data/parser/parseDelete13.out index 4c0537f9c..bce933367 100644 --- a/tests/data/parser/parseDelete13.out +++ b/tests/data/parser/parseDelete13.out @@ -2,18 +2,26 @@ "query": "DELETE FROM emp x WHERE x.salary = 20", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE FROM emp x WHERE x.salary = 20", "len": 37, "last": 37, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "emp", "value": "emp", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "x", "value": "x", "keyword": "x", - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -103,7 +133,9 @@ "token": "x", "value": "x", "keyword": "x", - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 24 }, @@ -112,7 +144,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 25 }, @@ -121,7 +157,9 @@ "token": "salary", "value": "salary", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 26 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -139,7 +179,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 33 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -157,30 +201,36 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 35 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -211,7 +261,10 @@ "salary" ], "isOperator": false, - "expr": "x.salary = 20" + "expr": "x.salary = 20", + "leftOperand": "x.salary", + "operator": "=", + "rightOperand": "20" } ], "order": null, @@ -224,9 +277,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete2.out b/tests/data/parser/parseDelete2.out index dd74b084f..57d969503 100644 --- a/tests/data/parser/parseDelete2.out +++ b/tests/data/parser/parseDelete2.out @@ -2,18 +2,26 @@ "query": "DELETE IGNORE FROM t1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE IGNORE FROM t1", "len": 21, "last": 21, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,30 +87,36 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -126,9 +152,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete3.out b/tests/data/parser/parseDelete3.out index 9a1074808..0bd98637e 100644 --- a/tests/data/parser/parseDelete3.out +++ b/tests/data/parser/parseDelete3.out @@ -2,18 +2,26 @@ "query": "DELETE IGNORE FROM t1 WHERE 1=1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE IGNORE FROM t1 WHERE 1=1", "len": 31, "last": 31, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +87,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +133,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -112,7 +146,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 29 }, @@ -121,30 +159,34 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 30 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -172,7 +214,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -187,9 +232,7 @@ "last": 12 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete4.out b/tests/data/parser/parseDelete4.out index d051c2189..ed0aee28f 100644 --- a/tests/data/parser/parseDelete4.out +++ b/tests/data/parser/parseDelete4.out @@ -2,18 +2,26 @@ "query": "DELETE IGNORE FROM t1 WHERE 1=1 ORDER BY id", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE IGNORE FROM t1 WHERE 1=1 ORDER BY id", "len": 43, "last": 43, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +87,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +133,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -112,7 +146,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 29 }, @@ -121,7 +159,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 30 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -139,7 +181,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 32 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -157,30 +203,34 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 41 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -208,7 +258,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": [ @@ -224,7 +277,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -238,9 +295,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete5.out b/tests/data/parser/parseDelete5.out index 5f12932b0..63ab09e20 100644 --- a/tests/data/parser/parseDelete5.out +++ b/tests/data/parser/parseDelete5.out @@ -2,18 +2,26 @@ "query": "DELETE IGNORE FROM t1 WHERE 1=1 ORDER BY id LIMIT 0,25", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE IGNORE FROM t1 WHERE 1=1 ORDER BY id LIMIT 0,25", "len": 54, "last": 54, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +87,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +133,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -112,7 +146,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 29 }, @@ -121,7 +159,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 30 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -139,7 +181,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 32 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -157,7 +203,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 41 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -175,7 +225,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -193,7 +247,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 50 }, @@ -202,7 +258,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 51 }, @@ -211,30 +269,34 @@ "token": "25", "value": 25, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 52 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -262,7 +324,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": [ @@ -278,7 +343,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": { @@ -296,9 +365,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete6.out b/tests/data/parser/parseDelete6.out index a7918940a..f9e4dc059 100644 --- a/tests/data/parser/parseDelete6.out +++ b/tests/data/parser/parseDelete6.out @@ -2,18 +2,26 @@ "query": "DELETE IGNORE FROM t1 ORDER BY id", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE IGNORE FROM t1 ORDER BY id", "len": 33, "last": 33, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +87,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,30 +133,34 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 31 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -163,7 +197,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -177,9 +215,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete7.out b/tests/data/parser/parseDelete7.out index 362d5f1e8..4a0827905 100644 --- a/tests/data/parser/parseDelete7.out +++ b/tests/data/parser/parseDelete7.out @@ -2,18 +2,26 @@ "query": "DELETE IGNORE FROM t1 ORDER BY id LIMIT 0,25", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE IGNORE FROM t1 ORDER BY id LIMIT 0,25", "len": 44, "last": 44, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +87,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 31 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +155,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 34 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +177,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 40 }, @@ -148,7 +190,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 41 }, @@ -157,30 +203,34 @@ "token": "25", "value": 25, "keyword": null, - "type": 6, + "type": { + "@type": "@20" + }, "flags": 0, "position": 42 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -217,7 +267,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": { @@ -235,9 +289,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete8.out b/tests/data/parser/parseDelete8.out index b603598d9..df19e5804 100644 --- a/tests/data/parser/parseDelete8.out +++ b/tests/data/parser/parseDelete8.out @@ -2,18 +2,26 @@ "query": "DELETE IGNORE FROM t1 LIMIT 0, 25", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE IGNORE FROM t1 LIMIT 0, 25", "len": 33, "last": 33, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +87,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +133,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -112,7 +146,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 29 }, @@ -121,7 +159,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -130,30 +170,34 @@ "token": "25", "value": 25, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 31 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -193,9 +237,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelete9.out b/tests/data/parser/parseDelete9.out index 75ee53ffd..8af79004b 100644 --- a/tests/data/parser/parseDelete9.out +++ b/tests/data/parser/parseDelete9.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK table1, table2.* FROM table1 as t1, table2 as t2", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK table1, table2.* FROM table1 as t1, table2 as t2", "len": 61, "last": 61, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 26, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -76,7 +102,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 27 }, @@ -94,7 +124,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 28 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -112,7 +146,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 30 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 35 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 45 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 47 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -193,7 +245,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 49 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -211,7 +267,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -229,30 +289,34 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 59 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 26 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -319,9 +383,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDeleteErr1.out b/tests/data/parser/parseDeleteErr1.out index 4ae850636..bda516cbc 100644 --- a/tests/data/parser/parseDeleteErr1.out +++ b/tests/data/parser/parseDeleteErr1.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK USING table1, table2.*", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK USING table1, table2.*", "len": 35, "last": 35, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 25 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -94,7 +124,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 33 }, @@ -112,30 +146,34 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 1, "position": 34 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -160,9 +198,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -170,14 +206,14 @@ [ "Unexpected keyword.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr10.out b/tests/data/parser/parseDeleteErr10.out index f966e8548..cc9508989 100644 --- a/tests/data/parser/parseDeleteErr10.out +++ b/tests/data/parser/parseDeleteErr10.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1, table2 USING t1 as t,t2 as tt ASC a =1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1, table2 USING t1 as t,t2 as tt ASC a =1;", "len": 65, "last": 65, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 33, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +168,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 45 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 46 }, @@ -184,7 +234,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 47 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -202,7 +256,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -220,7 +278,9 @@ "token": "tt", "value": "tt", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 53 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -238,7 +300,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -256,7 +322,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 60 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -274,7 +344,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 62 }, @@ -283,7 +355,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 63 }, @@ -292,30 +368,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 64 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@39" + }, "flags": 0, "position": null } - ], - "count": 33, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -382,9 +462,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -392,14 +470,14 @@ [ "Unexpected keyword.", { - "@type": "@27" + "@type": "@31" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@27" + "@type": "@31" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr11.out b/tests/data/parser/parseDeleteErr11.out index 048cc0b1b..2ac6a21e1 100644 --- a/tests/data/parser/parseDeleteErr11.out +++ b/tests/data/parser/parseDeleteErr11.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1 WHERE a = 1 ASC", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1 WHERE a = 1 ASC", "len": 40, "last": 40, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 19, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 31 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -121,7 +155,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 33 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -139,7 +179,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 35 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -157,30 +203,34 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 19 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -210,7 +260,10 @@ "a" ], "isOperator": false, - "expr": "a = 1" + "expr": "a = 1", + "leftOperand": "a", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -225,9 +278,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -235,14 +286,14 @@ [ "Unexpected keyword.", { - "@type": "@18" + "@type": "@23" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@18" + "@type": "@23" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr12.out b/tests/data/parser/parseDeleteErr12.out index d84f719b4..7098aee8a 100644 --- a/tests/data/parser/parseDeleteErr12.out +++ b/tests/data/parser/parseDeleteErr12.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1, table2 USING t1 as t,t2 as tt as ttt WHEE a =1;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1, table2 USING t1 as t,t2 as tt as ttt WHEE a =1;\n", "len": 74, "last": 74, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 38, + "idx": 38, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +168,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 45 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 46 }, @@ -184,7 +234,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 47 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -202,7 +256,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -220,7 +278,9 @@ "token": "tt", "value": "tt", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 53 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -238,7 +300,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -256,7 +322,9 @@ "token": "ttt", "value": "ttt", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 59 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -274,7 +344,9 @@ "token": "WHEE", "value": "WHEE", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 63 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -292,7 +366,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 68 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -310,7 +388,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 70 }, @@ -319,7 +399,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 71 }, @@ -328,7 +412,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 72 }, @@ -337,30 +425,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@43" + }, "flags": 0, "position": null } - ], - "count": 38, - "idx": 38 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -427,9 +517,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -437,49 +525,49 @@ [ "An alias was previously found.", { - "@type": "@29" + "@type": "@33" }, 0 ], [ "An alias was expected.", { - "@type": "@28" + "@type": "@32" }, 0 ], [ "Unexpected token.", { - "@type": "@29" + "@type": "@33" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@29" + "@type": "@33" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@31" + "@type": "@35" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@33" + "@type": "@37" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@36" + "@type": "@40" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr2.out b/tests/data/parser/parseDeleteErr2.out index a9cdb695d..32053b4b7 100644 --- a/tests/data/parser/parseDeleteErr2.out +++ b/tests/data/parser/parseDeleteErr2.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK table1, table2.* USING table1 AS `t1`, table2 AS `t2` WHERE 1=1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK table1, table2.* USING table1 AS `t1`, table2 AS `t2` WHERE 1=1", "len": 76, "last": 76, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -76,7 +102,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 27 }, @@ -94,7 +124,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 28 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -112,7 +146,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 30 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -130,7 +168,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 36 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +190,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -166,7 +212,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 46 }, @@ -175,7 +225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 50 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -193,7 +247,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 52 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -211,7 +269,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 59 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -229,7 +291,9 @@ "token": "`t2`", "value": "t2", "keyword": null, - "type": 8, + "type": { + "@type": "@24" + }, "flags": 2, "position": 62 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -247,7 +313,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -265,7 +335,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 73 }, @@ -274,7 +348,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 74 }, @@ -283,30 +359,34 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@36" + }, "flags": 0, "position": 75 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -352,9 +432,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -362,14 +440,14 @@ [ "Unexpected keyword.", { - "@type": "@13" + "@type": "@17" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@13" + "@type": "@17" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr3.out b/tests/data/parser/parseDeleteErr3.out index 327a0c72b..e3430ca34 100644 --- a/tests/data/parser/parseDeleteErr3.out +++ b/tests/data/parser/parseDeleteErr3.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK table1, table2.* table1 AS `t1` table2 AS `t2` WHERE 1=1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK table1, table2.* table1 AS `t1` table2 AS `t2` WHERE 1=1", "len": 69, "last": 69, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 30, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 19 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -76,7 +102,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 27 }, @@ -94,7 +124,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 1, "position": 28 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -112,7 +146,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 30 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -130,7 +168,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -148,7 +190,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 40 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +214,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 45 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -184,7 +236,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -202,7 +258,9 @@ "token": "`t2`", "value": "t2", "keyword": null, - "type": 8, + "type": { + "@type": "@22" + }, "flags": 2, "position": 55 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -220,7 +280,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 60 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -238,7 +302,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 66 }, @@ -247,7 +315,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 67 }, @@ -256,30 +326,34 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@33" + }, "flags": 0, "position": 68 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 30 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -325,9 +399,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -335,28 +407,28 @@ [ "An alias was previously found.", { - "@type": "@19" + "@type": "@24" }, 0 ], [ "Unexpected token.", { - "@type": "@19" + "@type": "@24" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@19" + "@type": "@24" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@21" + "@type": "@26" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr4.out b/tests/data/parser/parseDeleteErr4.out index 77a49b039..d1aae265b 100644 --- a/tests/data/parser/parseDeleteErr4.out +++ b/tests/data/parser/parseDeleteErr4.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1, table2.* table1 AS `t1` USING table2 AS `t2` WHERE 1=1 ORDER BY id ASC", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1, table2.* table1 AS `t1` USING table2 AS `t2` WHERE 1=1 ORDER BY id ASC", "len": 96, "last": 96, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 39, + "idx": 40, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 1, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 35 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 45 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -184,7 +236,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +258,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 56 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -220,7 +280,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -238,7 +302,9 @@ "token": "`t2`", "value": "t2", "keyword": null, - "type": 8, + "type": { + "@type": "@24" + }, "flags": 2, "position": 66 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -256,7 +324,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -274,7 +346,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 77 }, @@ -283,7 +359,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 78 }, @@ -292,7 +370,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 79 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -310,7 +392,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 81 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -328,7 +414,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 90 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -346,30 +436,34 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 39, - "idx": 40 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -418,7 +512,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -433,9 +530,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -443,14 +538,14 @@ [ "This type of clause is not valid in Multi-table queries.", { - "@type": "@35" + "@type": "@41" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@35" + "@type": "@41" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr5.out b/tests/data/parser/parseDeleteErr5.out index 9865e6f14..5bcdaf701 100644 --- a/tests/data/parser/parseDeleteErr5.out +++ b/tests/data/parser/parseDeleteErr5.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1 WHERE 1=1 ORDER BY id ASC WHERE 1=1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1 WHERE 1=1 ORDER BY id ASC WHERE 1=1", "len": 60, "last": 60, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 27, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 31 }, @@ -112,7 +146,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 32 }, @@ -121,7 +159,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 33 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -139,7 +181,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 35 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -157,7 +203,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 44 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -175,7 +225,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +247,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 51 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -211,7 +269,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 57 }, @@ -220,7 +280,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 2, "position": 58 }, @@ -229,30 +291,34 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 59 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 27 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -280,7 +346,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": [ @@ -296,7 +365,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -310,9 +383,7 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -320,14 +391,14 @@ [ "Unexpected keyword.", { - "@type": "@22" + "@type": "@27" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@22" + "@type": "@27" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr6.out b/tests/data/parser/parseDeleteErr6.out index 6878d47dd..8b8e29971 100644 --- a/tests/data/parser/parseDeleteErr6.out +++ b/tests/data/parser/parseDeleteErr6.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1, table2.* table1 AS `t1` USING table2 AS `t2` WHERE 1=1 LIMIT 0, 25", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1, table2.* table1 AS `t1` USING table2 AS `t2` WHERE 1=1 LIMIT 0, 25", "len": 92, "last": 92, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 40, + "idx": 41, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 1, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 35 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 45 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -184,7 +236,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +258,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 56 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -220,7 +280,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -238,7 +302,9 @@ "token": "`t2`", "value": "t2", "keyword": null, - "type": 8, + "type": { + "@type": "@24" + }, "flags": 2, "position": 66 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -256,7 +324,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -274,7 +346,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 77 }, @@ -283,7 +359,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 78 }, @@ -292,7 +370,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 79 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -310,7 +392,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 81 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -328,7 +414,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 87 }, @@ -337,7 +425,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 88 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -355,30 +447,34 @@ "token": "25", "value": 25, "keyword": null, - "type": 6, + "type": { + "@type": "@37" + }, "flags": 0, "position": 90 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 40, - "idx": 41 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -427,7 +523,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -442,9 +541,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -452,14 +549,14 @@ [ "This type of clause is not valid in Multi-table queries.", { - "@type": "@35" + "@type": "@41" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@35" + "@type": "@41" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr7.out b/tests/data/parser/parseDeleteErr7.out index db28557b1..0877086ce 100644 --- a/tests/data/parser/parseDeleteErr7.out +++ b/tests/data/parser/parseDeleteErr7.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1 WHERE a = 1 ORDER BY id ASC WHERE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1 WHERE a = 1 ORDER BY id ASC WHERE", "len": 58, "last": 58, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +133,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 31 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -121,7 +155,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 33 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -139,7 +179,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 35 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -157,7 +203,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 37 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -175,7 +225,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 46 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -193,7 +247,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 49 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -211,30 +269,34 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 53 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -264,7 +326,10 @@ "a" ], "isOperator": false, - "expr": "a = 1" + "expr": "a = 1", + "leftOperand": "a", + "operator": "=", + "rightOperand": "1" } ], "order": [ @@ -280,7 +345,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -294,9 +363,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -304,14 +371,14 @@ [ "Unexpected keyword.", { - "@type": "@24" + "@type": "@29" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@24" + "@type": "@29" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr8.out b/tests/data/parser/parseDeleteErr8.out index c92ea7892..3028146a0 100644 --- a/tests/data/parser/parseDeleteErr8.out +++ b/tests/data/parser/parseDeleteErr8.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1 ASC", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1 ASC", "len": 28, "last": 28, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,30 +111,34 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -144,9 +174,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -154,14 +182,14 @@ [ "Unexpected keyword.", { - "@type": "@10" + "@type": "@13" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@10" + "@type": "@13" }, 0 ] diff --git a/tests/data/parser/parseDeleteErr9.out b/tests/data/parser/parseDeleteErr9.out index f89f1970c..0bcde7022 100644 --- a/tests/data/parser/parseDeleteErr9.out +++ b/tests/data/parser/parseDeleteErr9.out @@ -2,18 +2,26 @@ "query": "DELETE QUICK FROM table1, table2 USING t1 as t,t2 as tt WHEE a =1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE QUICK FROM table1, table2 USING t1 as t,t2 as tt WHEE a =1;", "len": 66, "last": 66, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 33, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "QUICK", "value": "QUICK", "keyword": "QUICK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 24 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +168,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 45 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 46 }, @@ -184,7 +234,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 47 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -202,7 +256,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -220,7 +278,9 @@ "token": "tt", "value": "tt", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 53 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -238,7 +300,9 @@ "token": "WHEE", "value": "WHEE", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 56 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -256,7 +322,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 61 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -274,7 +344,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 63 }, @@ -283,7 +355,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 64 }, @@ -292,30 +368,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 65 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@39" + }, "flags": 0, "position": null } - ], - "count": 33, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -382,9 +462,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -392,35 +470,35 @@ [ "An alias was previously found.", { - "@type": "@27" + "@type": "@31" }, 0 ], [ "Unexpected token.", { - "@type": "@27" + "@type": "@31" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@27" + "@type": "@31" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@29" + "@type": "@33" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@32" + "@type": "@36" }, 0 ] diff --git a/tests/data/parser/parseDeleteJoin.out b/tests/data/parser/parseDeleteJoin.out index 4805706a9..d4216f0b8 100644 --- a/tests/data/parser/parseDeleteJoin.out +++ b/tests/data/parser/parseDeleteJoin.out @@ -2,18 +2,26 @@ "query": "DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id", "len": 83, "last": 83, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 39, + "idx": 39, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -58,7 +80,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -76,7 +102,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -94,7 +124,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 19 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -112,7 +146,9 @@ "token": "INNER JOIN", "value": "INNER JOIN", "keyword": "INNER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 22 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -130,7 +168,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 33 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -148,7 +190,9 @@ "token": "INNER JOIN", "value": "INNER JOIN", "keyword": "INNER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 36 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -166,7 +212,9 @@ "token": "t3", "value": "t3", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 47 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -184,7 +234,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +256,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 56 }, @@ -211,7 +267,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 58 }, @@ -220,7 +278,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -229,7 +289,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 61 }, @@ -238,7 +300,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 62 }, @@ -247,7 +311,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 64 }, @@ -256,7 +322,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 65 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -274,7 +344,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 68 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -292,7 +366,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 72 }, @@ -301,7 +377,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 74 }, @@ -310,7 +388,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 75 }, @@ -319,7 +399,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 77 }, @@ -328,7 +410,9 @@ "token": "t3", "value": "t3", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 78 }, @@ -337,7 +421,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 80 }, @@ -346,30 +432,34 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 39, - "idx": 39 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -403,7 +493,8 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -419,7 +510,8 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "using": null, @@ -455,13 +547,19 @@ "t2" ], "isOperator": false, - "expr": "t1.id=t2.id" + "expr": "t1.id=t2.id", + "leftOperand": "t1.id", + "operator": "=", + "rightOperand": "t2.id" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -471,7 +569,10 @@ "t3" ], "isOperator": false, - "expr": "t2.id=t3.id" + "expr": "t2.id=t3.id", + "leftOperand": "t2.id", + "operator": "=", + "rightOperand": "t3.id" } ], "order": null, @@ -484,9 +585,7 @@ "last": 37 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDelimiter.out b/tests/data/parser/parseDelimiter.out index a983357c0..7f44f10e5 100644 --- a/tests/data/parser/parseDelimiter.out +++ b/tests/data/parser/parseDelimiter.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM foo;\nDELIMITER $$\nSELECT * FROM bar$$\nDELIMITER ;\nSELECT * FROM baz;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM foo;\nDELIMITER $$\nSELECT * FROM bar$$\nDELIMITER ;\nSELECT * FROM baz;", "len": 82, "last": 82, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 35, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 17 }, @@ -85,7 +115,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -94,7 +126,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 19 }, @@ -103,7 +137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -112,7 +148,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@14" + }, "flags": 0, "position": 29 }, @@ -121,7 +159,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -130,7 +170,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 32 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -148,7 +192,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 39 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -166,7 +214,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 41 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -184,7 +236,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 46 }, @@ -193,7 +247,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@14" + }, "flags": 0, "position": 49 }, @@ -202,7 +258,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -211,7 +269,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 52 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -229,7 +291,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@14" + }, "flags": 0, "position": 62 }, @@ -238,7 +302,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -247,7 +313,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 64 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -265,7 +335,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -283,7 +357,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -301,7 +379,9 @@ "token": "baz", "value": "baz", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 78 }, @@ -310,30 +390,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@14" + }, "flags": 0, "position": 81 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@14" + }, "flags": 0, "position": null } - ], - "count": 35, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -364,11 +446,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -376,7 +458,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -410,11 +492,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -422,7 +504,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -456,11 +538,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -468,7 +550,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -477,9 +559,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDrop.out b/tests/data/parser/parseDrop.out index 34ea9d73d..0f63d4802 100644 --- a/tests/data/parser/parseDrop.out +++ b/tests/data/parser/parseDrop.out @@ -2,18 +2,26 @@ "query": "DROP USER IF EXISTS 'testtest'@'%';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DROP USER IF EXISTS 'testtest'@'%';", "len": 35, "last": 35, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DROP", "value": "DROP", "keyword": "DROP", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +65,9 @@ "token": "IF EXISTS", "value": "IF EXISTS", "keyword": "IF EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 10 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +87,11 @@ "token": "'testtest'@'%'", "value": "testtest@%", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 20 }, @@ -76,30 +100,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 34 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -130,9 +158,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseDrop2.out b/tests/data/parser/parseDrop2.out index 97a82e403..2a6089507 100644 --- a/tests/data/parser/parseDrop2.out +++ b/tests/data/parser/parseDrop2.out @@ -2,18 +2,26 @@ "query": "DROP USER 'testtest'@'%';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DROP USER 'testtest'@'%';", "len": 25, "last": 25, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 7, + "idx": 7, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DROP", "value": "DROP", "keyword": "DROP", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "USER", "value": "USER", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +65,11 @@ "token": "'testtest'@'%'", "value": "testtest@%", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 4, "position": 10 }, @@ -58,30 +78,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 24 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@11" + }, "flags": 0, "position": null } - ], - "count": 7, - "idx": 7 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -111,9 +135,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain.out b/tests/data/parser/parseExplain.out index a9a9d1921..0b59bfa3b 100644 --- a/tests/data/parser/parseExplain.out +++ b/tests/data/parser/parseExplain.out @@ -2,18 +2,26 @@ "query": "EXPLAIN SELECT * FROM test;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "EXPLAIN SELECT * FROM test;", "len": 27, "last": 27, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "EXPLAIN", "value": "EXPLAIN", "keyword": "EXPLAIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 22 }, @@ -94,30 +124,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 26 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -126,15 +160,13 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ - { - "@type": "@4" - }, - { - "@type": "@5" - }, { "@type": "@6" }, @@ -144,9 +176,6 @@ { "@type": "@8" }, - { - "@type": "@9" - }, { "@type": "@10" }, @@ -155,10 +184,17 @@ }, { "@type": "@12" + }, + { + "@type": "@13" + }, + { + "@type": "@15" + }, + { + "@type": "@17" } - ], - "count": 9, - "idx": 9 + ] }, "statements": [ { @@ -187,11 +223,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -199,7 +235,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -208,9 +244,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "statementAlias": "EXPLAIN", "connectionId": null, @@ -225,9 +259,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain1.out b/tests/data/parser/parseExplain1.out index fbb7549a1..03e6650af 100644 --- a/tests/data/parser/parseExplain1.out +++ b/tests/data/parser/parseExplain1.out @@ -2,18 +2,26 @@ "query": "ANALYZE SELECT * FROM orders", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ANALYZE SELECT * FROM orders", "len": 28, "last": 28, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +65,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,30 +111,36 @@ "token": "orders", "value": "orders", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 22 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -117,36 +149,38 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { - "@type": "@4" + "@type": "@6" }, { - "@type": "@5" + "@type": "@7" }, { - "@type": "@6" + "@type": "@8" }, { - "@type": "@7" + "@type": "@10" }, { - "@type": "@8" + "@type": "@11" }, { - "@type": "@9" + "@type": "@12" }, { - "@type": "@10" + "@type": "@13" }, { - "@type": "@11" + "@type": "@15" } - ], - "count": 8, - "idx": 8 + ] }, "statements": [ { @@ -175,11 +209,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -187,7 +221,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -196,9 +230,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "statementAlias": "ANALYZE", "connectionId": null, @@ -213,9 +245,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain10.out b/tests/data/parser/parseExplain10.out index 0ab27a765..095734fdf 100644 --- a/tests/data/parser/parseExplain10.out +++ b/tests/data/parser/parseExplain10.out @@ -2,18 +2,26 @@ "query": "DESC REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESC REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');", "len": 64, "last": 64, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESC", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +111,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 23 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 30 }, @@ -112,7 +146,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 31 }, @@ -121,7 +159,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 32 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -139,7 +181,11 @@ "token": "'Old'", "value": "Old", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 34 }, @@ -148,7 +194,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 39 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -166,7 +216,9 @@ "token": "'2014-08-20 18:47:00'", "value": "2014-08-20 18:47:00", "keyword": null, - "type": 7, + "type": { + "@type": "@22" + }, "flags": 1, "position": 41 }, @@ -175,7 +227,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 62 }, @@ -184,30 +238,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 63 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -216,15 +274,13 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 19, "tokens": [ - { - "@type": "@4" - }, - { - "@type": "@5" - }, { "@type": "@6" }, @@ -240,9 +296,6 @@ { "@type": "@10" }, - { - "@type": "@11" - }, { "@type": "@12" }, @@ -255,15 +308,9 @@ { "@type": "@15" }, - { - "@type": "@16" - }, { "@type": "@17" }, - { - "@type": "@18" - }, { "@type": "@19" }, @@ -274,11 +321,24 @@ "@type": "@21" }, { - "@type": "@22" + "@type": "@23" + }, + { + "@type": "@24" + }, + { + "@type": "@25" + }, + { + "@type": "@26" + }, + { + "@type": "@27" + }, + { + "@type": "@29" } - ], - "count": 19, - "idx": 19 + ] }, "statements": [ { @@ -298,9 +358,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -327,9 +387,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "statementAlias": "DESC", "connectionId": null, @@ -344,9 +402,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain11.out b/tests/data/parser/parseExplain11.out index 626fb5a58..39593a851 100644 --- a/tests/data/parser/parseExplain11.out +++ b/tests/data/parser/parseExplain11.out @@ -2,18 +2,26 @@ "query": "ANALYSE REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ANALYSE REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');\n", "len": 68, "last": 68, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 22, + "idx": 22, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ANALYSE", "value": "ANALYSE", "keyword": "ANALYSE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 1, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +87,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -85,7 +111,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 26 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -112,7 +146,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 34 }, @@ -121,7 +159,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 35 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -139,7 +181,11 @@ "token": "'Old'", "value": "Old", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 37 }, @@ -148,7 +194,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 42 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -166,7 +216,9 @@ "token": "'2014-08-20 18:47:00'", "value": "2014-08-20 18:47:00", "keyword": null, - "type": 7, + "type": { + "@type": "@22" + }, "flags": 1, "position": 44 }, @@ -175,7 +227,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 65 }, @@ -184,7 +238,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 66 }, @@ -193,37 +251,37 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": null } - ], - "count": 22, - "idx": 22 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain12.out b/tests/data/parser/parseExplain12.out index 9183600aa..3dccb2ccc 100644 --- a/tests/data/parser/parseExplain12.out +++ b/tests/data/parser/parseExplain12.out @@ -2,18 +2,26 @@ "query": "EXPLAIN FORMAT=json REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "EXPLAIN FORMAT=json REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');", "len": 79, "last": 79, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "EXPLAIN", "value": "EXPLAIN", "keyword": "EXPLAIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "FORMAT", "value": "FORMAT", "keyword": "FORMAT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 8 }, @@ -40,7 +54,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 14 }, @@ -49,7 +67,9 @@ "token": "json", "value": "json", "keyword": "JSON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 15 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 20 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 28 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 33 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -121,7 +157,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 38 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -139,7 +179,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 45 }, @@ -148,7 +190,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 46 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 47 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -175,7 +225,11 @@ "token": "'Old'", "value": "Old", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 49 }, @@ -184,7 +238,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 54 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +260,9 @@ "token": "'2014-08-20 18:47:00'", "value": "2014-08-20 18:47:00", "keyword": null, - "type": 7, + "type": { + "@type": "@26" + }, "flags": 1, "position": 56 }, @@ -211,7 +271,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 77 }, @@ -220,30 +282,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 78 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@32" + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -252,18 +318,13 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 19, "tokens": [ - { - "@type": "@8" - }, - { - "@type": "@9" - }, - { - "@type": "@10" - }, { "@type": "@11" }, @@ -279,9 +340,6 @@ { "@type": "@15" }, - { - "@type": "@16" - }, { "@type": "@17" }, @@ -297,9 +355,6 @@ { "@type": "@21" }, - { - "@type": "@22" - }, { "@type": "@23" }, @@ -310,11 +365,24 @@ "@type": "@25" }, { - "@type": "@26" + "@type": "@27" + }, + { + "@type": "@28" + }, + { + "@type": "@29" + }, + { + "@type": "@30" + }, + { + "@type": "@31" + }, + { + "@type": "@33" } - ], - "count": 19, - "idx": 19 + ] }, "statements": [ { @@ -334,9 +402,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -363,9 +431,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "statementAlias": "EXPLAIN", "connectionId": null, @@ -387,9 +453,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain13.out b/tests/data/parser/parseExplain13.out index 7d51bc6bb..6b0f1a2a9 100644 --- a/tests/data/parser/parseExplain13.out +++ b/tests/data/parser/parseExplain13.out @@ -2,18 +2,26 @@ "query": "DESCRIBE FORMAT=json REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESCRIBE FORMAT=json REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');", "len": 80, "last": 80, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESCRIBE", "value": "DESCRIBE", "keyword": "DESCRIBE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 8 }, @@ -31,7 +43,9 @@ "token": "FORMAT", "value": "FORMAT", "keyword": "FORMAT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 9 }, @@ -40,7 +54,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 15 }, @@ -49,7 +67,9 @@ "token": "json", "value": "json", "keyword": "JSON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 9, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +133,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -121,7 +157,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 39 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +179,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 46 }, @@ -148,7 +190,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 47 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 48 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -175,7 +225,11 @@ "token": "'Old'", "value": "Old", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 50 }, @@ -184,7 +238,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 55 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -202,7 +260,9 @@ "token": "'2014-08-20 18:47:00'", "value": "2014-08-20 18:47:00", "keyword": null, - "type": 7, + "type": { + "@type": "@26" + }, "flags": 1, "position": 57 }, @@ -211,7 +271,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 78 }, @@ -220,30 +282,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 79 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@32" + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -252,18 +318,13 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 19, "tokens": [ - { - "@type": "@8" - }, - { - "@type": "@9" - }, - { - "@type": "@10" - }, { "@type": "@11" }, @@ -279,9 +340,6 @@ { "@type": "@15" }, - { - "@type": "@16" - }, { "@type": "@17" }, @@ -297,9 +355,6 @@ { "@type": "@21" }, - { - "@type": "@22" - }, { "@type": "@23" }, @@ -310,11 +365,24 @@ "@type": "@25" }, { - "@type": "@26" + "@type": "@27" + }, + { + "@type": "@28" + }, + { + "@type": "@29" + }, + { + "@type": "@30" + }, + { + "@type": "@31" + }, + { + "@type": "@33" } - ], - "count": 19, - "idx": 19 + ] }, "statements": [ { @@ -334,9 +402,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -363,9 +431,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "statementAlias": "DESCRIBE", "connectionId": null, @@ -387,9 +453,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain14.out b/tests/data/parser/parseExplain14.out index 63fe473a6..bb0d01a69 100644 --- a/tests/data/parser/parseExplain14.out +++ b/tests/data/parser/parseExplain14.out @@ -2,18 +2,26 @@ "query": "DESC TABLE `fo` ORDER BY `fo`.`uuid` ASC;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESC TABLE `fo` ORDER BY `fo`.`uuid` ASC;", "len": 41, "last": 41, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESC", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "`fo`", "value": "fo", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "`fo`", "value": "fo", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 25 }, @@ -94,7 +122,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 29 }, @@ -103,7 +135,9 @@ "token": "`uuid`", "value": "uuid", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 30 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -121,7 +157,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -130,30 +168,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 40 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -162,15 +204,24 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Exceptions\\ParserException", + "token": { + "@type": "@6" + }, + "message": "Unrecognized statement type.", + "code": 0, + "file": "/src/Parser.php", + "line": 619 + } + ], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ - { - "@type": "@4" - }, - { - "@type": "@5" - }, { "@type": "@6" }, @@ -180,9 +231,6 @@ { "@type": "@8" }, - { - "@type": "@9" - }, { "@type": "@10" }, @@ -199,30 +247,24 @@ "@type": "@14" }, { - "@type": "@15" + "@type": "@16" }, { - "@type": "@16" + "@type": "@17" + }, + { + "@type": "@18" + }, + { + "@type": "@19" + }, + { + "@type": "@21" } - ], - "count": 13, - "idx": 13 + ] }, "statements": [], - "brackets": 0, - "strict": false, - "errors": [ - { - "@type": "PhpMyAdmin\\SqlParser\\Exceptions\\ParserException", - "token": { - "@type": "@4" - }, - "message": "Unrecognized statement type.", - "code": 0, - "file": "/src/Parser.php", - "line": 628 - } - ] + "brackets": 0 }, "statementAlias": "DESC", "connectionId": null, @@ -237,9 +279,7 @@ "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -247,21 +287,21 @@ [ "Unrecognized statement type.", { - "@type": "@4" + "@type": "@6" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@8" + "@type": "@11" }, 0 ] diff --git a/tests/data/parser/parseExplain2.out b/tests/data/parser/parseExplain2.out index 4c5417d06..5aa48deb9 100644 --- a/tests/data/parser/parseExplain2.out +++ b/tests/data/parser/parseExplain2.out @@ -2,18 +2,26 @@ "query": "DESC tablename", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESC tablename", "len": 14, "last": 14, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESC", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,30 +43,36 @@ "token": "tablename", "value": "tablename", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -72,9 +90,7 @@ "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain3.out b/tests/data/parser/parseExplain3.out index e807bbe27..7a0523f35 100644 --- a/tests/data/parser/parseExplain3.out +++ b/tests/data/parser/parseExplain3.out @@ -2,18 +2,26 @@ "query": "EXPLAIN ANALYZE SELECT first_name, last_name, SUM(amount) AS total FROM staff INNER JOIN payment ON staff.staff_id = payment.staff_id AND payment_date LIKE '2005-08%' GROUP BY first_name, last_name;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "EXPLAIN ANALYZE SELECT first_name, last_name, SUM(amount) AS total FROM staff INNER JOIN payment ON staff.staff_id = payment.staff_id AND payment_date LIKE '2005-08%' GROUP BY first_name, last_name;", "len": 198, "last": 198, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 57, + "idx": 57, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "EXPLAIN", "value": "EXPLAIN", "keyword": "EXPLAIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +87,11 @@ "token": "first_name", "value": "first_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 23 }, @@ -76,7 +100,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -94,7 +124,9 @@ "token": "last_name", "value": "last_name", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 35 }, @@ -103,7 +135,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 44 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -121,7 +157,9 @@ "token": "SUM", "value": "SUM", "keyword": "SUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 46 }, @@ -130,7 +168,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 49 }, @@ -139,7 +179,9 @@ "token": "amount", "value": "amount", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 56 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -166,7 +212,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 58 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -184,7 +234,9 @@ "token": "total", "value": "total", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 61 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -202,7 +256,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -220,7 +278,9 @@ "token": "staff", "value": "staff", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 72 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -238,7 +300,9 @@ "token": "INNER JOIN", "value": "INNER JOIN", "keyword": "INNER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 78 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -256,7 +322,9 @@ "token": "payment", "value": "payment", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 89 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -274,7 +344,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 97 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -292,7 +366,9 @@ "token": "staff", "value": "staff", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 100 }, @@ -301,7 +377,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 105 }, @@ -310,7 +388,9 @@ "token": "staff_id", "value": "staff_id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 106 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -328,7 +410,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 115 }, @@ -337,7 +421,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -346,7 +432,9 @@ "token": "payment", "value": "payment", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 117 }, @@ -355,7 +443,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 124 }, @@ -364,7 +454,9 @@ "token": "staff_id", "value": "staff_id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 125 }, @@ -373,7 +465,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -382,7 +476,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 134 }, @@ -391,7 +487,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 137 }, @@ -400,7 +498,9 @@ "token": "payment_date", "value": "payment_date", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 138 }, @@ -409,7 +509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 150 }, @@ -418,7 +520,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 151 }, @@ -427,7 +531,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -436,7 +542,11 @@ "token": "'2005-08%'", "value": "2005-08%", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 156 }, @@ -445,7 +555,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 166 }, @@ -454,7 +566,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 167 }, @@ -463,7 +577,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 175 }, @@ -472,7 +588,9 @@ "token": "first_name", "value": "first_name", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 176 }, @@ -481,7 +599,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 186 }, @@ -490,7 +610,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 187 }, @@ -499,7 +621,9 @@ "token": "last_name", "value": "last_name", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 188 }, @@ -508,30 +632,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 197 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@63" + }, "flags": 0, "position": null } - ], - "count": 57, - "idx": 57 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -540,15 +668,13 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 53, + "idx": 53, "tokens": [ - { - "@type": "@6" - }, - { - "@type": "@7" - }, { "@type": "@8" }, @@ -558,15 +684,9 @@ { "@type": "@10" }, - { - "@type": "@11" - }, { "@type": "@12" }, - { - "@type": "@13" - }, { "@type": "@14" }, @@ -687,9 +807,6 @@ { "@type": "@53" }, - { - "@type": "@54" - }, { "@type": "@55" }, @@ -701,10 +818,23 @@ }, { "@type": "@58" + }, + { + "@type": "@59" + }, + { + "@type": "@60" + }, + { + "@type": "@61" + }, + { + "@type": "@62" + }, + { + "@type": "@64" } - ], - "count": 53, - "idx": 53 + ] }, "statements": [ { @@ -753,7 +883,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -786,7 +916,7 @@ } } ], - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -815,13 +945,19 @@ "payment" ], "isOperator": false, - "expr": "staff.staff_id = payment.staff_id" + "expr": "staff.staff_id = payment.staff_id", + "leftOperand": "staff.staff_id", + "operator": "=", + "rightOperand": "payment.staff_id" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -830,14 +966,18 @@ "2005-08%" ], "isOperator": false, - "expr": "payment_date LIKE '2005-08%'" + "expr": "payment_date LIKE '2005-08%'", + "leftOperand": "payment_date LIKE '2005-08%'", + "operator": "", + "rightOperand": "" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -846,9 +986,7 @@ "last": 50 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "statementAlias": "EXPLAIN ANALYZE", "connectionId": null, @@ -863,9 +1001,7 @@ "last": 56 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain4.out b/tests/data/parser/parseExplain4.out index e4ddbd9c4..9d41c8cb9 100644 --- a/tests/data/parser/parseExplain4.out +++ b/tests/data/parser/parseExplain4.out @@ -2,18 +2,26 @@ "query": "EXPLAIN FORMAT=TREE SELECT * FROM db", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "EXPLAIN FORMAT=TREE SELECT * FROM db", "len": 36, "last": 36, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "EXPLAIN", "value": "EXPLAIN", "keyword": "EXPLAIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "FORMAT", "value": "FORMAT", "keyword": "FORMAT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 8 }, @@ -40,7 +54,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 14 }, @@ -49,7 +67,11 @@ "token": "TREE", "value": "TREE", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +91,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +113,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 27 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +135,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,30 +157,34 @@ "token": "db", "value": "db", "keyword": null, - "type": 0, + "type": { + "@type": "@10" + }, "flags": 0, "position": 34 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -153,36 +193,38 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { - "@type": "@8" + "@type": "@12" }, { - "@type": "@9" + "@type": "@13" }, { - "@type": "@10" + "@type": "@14" }, { - "@type": "@11" + "@type": "@15" }, { - "@type": "@12" + "@type": "@16" }, { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" } - ], - "count": 8, - "idx": 8 + ] }, "statements": [ { @@ -211,11 +253,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -223,7 +265,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -232,9 +274,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "statementAlias": "EXPLAIN", "connectionId": null, @@ -256,9 +296,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain5.out b/tests/data/parser/parseExplain5.out index fe9e75d6a..7cc1b5e8a 100644 --- a/tests/data/parser/parseExplain5.out +++ b/tests/data/parser/parseExplain5.out @@ -2,18 +2,26 @@ "query": "DESC phpmyadmin.pma__users;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESC phpmyadmin.pma__users;", "len": 27, "last": 27, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 7, + "idx": 7, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESC", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "phpmyadmin", "value": "phpmyadmin", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 15 }, @@ -49,7 +69,9 @@ "token": "pma__users", "value": "pma__users", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, @@ -58,30 +80,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 26 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": null } - ], - "count": 7, - "idx": 7 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -99,9 +125,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain6.out b/tests/data/parser/parseExplain6.out index ce17cfa58..2795663f4 100644 --- a/tests/data/parser/parseExplain6.out +++ b/tests/data/parser/parseExplain6.out @@ -2,18 +2,26 @@ "query": "DESCRIBE Shop 'N%';\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESCRIBE Shop 'N%';\n", "len": 20, "last": 20, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESCRIBE", "value": "DESCRIBE", "keyword": "DESCRIBE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 8 }, @@ -31,7 +43,11 @@ "token": "Shop", "value": "Shop", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 9 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +67,11 @@ "token": "'N%'", "value": "N%", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 14 }, @@ -58,7 +80,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 18 }, @@ -67,30 +93,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -108,9 +136,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain7.out b/tests/data/parser/parseExplain7.out index 4399ff682..0a66a054b 100644 --- a/tests/data/parser/parseExplain7.out +++ b/tests/data/parser/parseExplain7.out @@ -2,18 +2,26 @@ "query": "DESCRIBE Shop 'Name';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESCRIBE Shop 'Name';", "len": 21, "last": 21, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 7, + "idx": 7, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESCRIBE", "value": "DESCRIBE", "keyword": "DESCRIBE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 8 }, @@ -31,7 +43,11 @@ "token": "Shop", "value": "Shop", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 9 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +67,11 @@ "token": "'Name'", "value": "Name", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 14 }, @@ -58,30 +80,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 20 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": null } - ], - "count": 7, - "idx": 7 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -99,9 +125,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain8.out b/tests/data/parser/parseExplain8.out index e638ccdfe..ec8e2f050 100644 --- a/tests/data/parser/parseExplain8.out +++ b/tests/data/parser/parseExplain8.out @@ -2,18 +2,26 @@ "query": "DESCRIBE Shop N__e;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESCRIBE Shop N__e;", "len": 19, "last": 19, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 7, + "idx": 7, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESCRIBE", "value": "DESCRIBE", "keyword": "DESCRIBE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 8 }, @@ -31,7 +43,11 @@ "token": "Shop", "value": "Shop", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 9 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +67,9 @@ "token": "N__e", "value": "N__e", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 14 }, @@ -58,30 +78,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 18 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@11" + }, "flags": 0, "position": null } - ], - "count": 7, - "idx": 7 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -99,9 +123,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplain9.out b/tests/data/parser/parseExplain9.out index df3ea15df..a830bcd31 100644 --- a/tests/data/parser/parseExplain9.out +++ b/tests/data/parser/parseExplain9.out @@ -2,18 +2,26 @@ "query": "DESCRIBE tablename 581", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DESCRIBE tablename 581", "len": 22, "last": 22, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DESCRIBE", "value": "DESCRIBE", "keyword": "DESCRIBE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 8 }, @@ -31,7 +43,11 @@ "token": "tablename", "value": "tablename", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 9 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -49,30 +67,36 @@ "token": "581", "value": 581, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 19 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -84,15 +108,13 @@ "connectionId": null, "explainedDatabase": null, "explainedTable": "tablename", - "explainedColumn": 581, + "explainedColumn": "581", "options": null, "first": 0, "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseExplainErr.out b/tests/data/parser/parseExplainErr.out index 0fd14caa2..12895f5f5 100644 --- a/tests/data/parser/parseExplainErr.out +++ b/tests/data/parser/parseExplainErr.out @@ -2,18 +2,26 @@ "query": "EXPLAIN FOR SELECT *", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "EXPLAIN FOR SELECT *", "len": 20, "last": 20, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "EXPLAIN", "value": "EXPLAIN", "keyword": "EXPLAIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "FOR", "value": "FOR", "keyword": "FOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,30 +87,36 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 1, "position": 19 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -125,11 +151,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -137,7 +163,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -146,9 +172,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -156,7 +180,7 @@ [ "Unexpected token.", { - "@type": "@4" + "@type": "@6" }, 0 ] diff --git a/tests/data/parser/parseExplainErr1.out b/tests/data/parser/parseExplainErr1.out index ef5cc35a7..d9ab8bbc9 100644 --- a/tests/data/parser/parseExplainErr1.out +++ b/tests/data/parser/parseExplainErr1.out @@ -2,18 +2,26 @@ "query": "ANALYZE SELECT FROM", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "ANALYZE SELECT FROM", "len": 19, "last": 19, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 7, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,30 +65,34 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 7 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -81,35 +101,58 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement", "bodyParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [ + { + "@type": "PhpMyAdmin\\SqlParser\\Exceptions\\ParserException", + "token": { + "@type": "@8" + }, + "message": "An expression was expected.", + "code": 0, + "file": "/src/Parser.php", + "line": 619 + }, + { + "@type": "PhpMyAdmin\\SqlParser\\Exceptions\\ParserException", + "token": { + "@type": "@9" + }, + "message": "An expression was expected.", + "code": 0, + "file": "/src/Parser.php", + "line": 619 + } + ], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { - "@type": "@4" + "@type": "@6" }, { - "@type": "@5" + "@type": "@7" }, { - "@type": "@6" + "@type": "@8" }, { - "@type": "@7" + "@type": "@9" } - ], - "count": 4, - "idx": 4 + ] }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\SelectStatement", "expr": [], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -117,7 +160,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -126,30 +169,7 @@ "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [ - { - "@type": "PhpMyAdmin\\SqlParser\\Exceptions\\ParserException", - "token": { - "@type": "@6" - }, - "message": "An expression was expected.", - "code": 0, - "file": "/src/Parser.php", - "line": 628 - }, - { - "@type": "PhpMyAdmin\\SqlParser\\Exceptions\\ParserException", - "token": { - "@type": "@7" - }, - "message": "An expression was expected.", - "code": 0, - "file": "/src/Parser.php", - "line": 628 - } - ] + "brackets": 0 }, "statementAlias": "ANALYZE", "connectionId": null, @@ -164,9 +184,7 @@ "last": 2 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -174,21 +192,21 @@ [ "An expression was expected.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "An expression was expected.", { - "@type": "@7" + "@type": "@9" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseExplainErr2.out b/tests/data/parser/parseExplainErr2.out index 3281bae66..3d120b466 100644 --- a/tests/data/parser/parseExplainErr2.out +++ b/tests/data/parser/parseExplainErr2.out @@ -2,18 +2,26 @@ "query": "EXPLAIN ANALYZE FROM TABLE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "EXPLAIN ANALYZE FROM TABLE", "len": 26, "last": 26, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "EXPLAIN", "value": "EXPLAIN", "keyword": "EXPLAIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "ANALYZE", "value": "ANALYZE", "keyword": "ANALYZE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,30 +87,34 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -111,9 +135,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -121,14 +143,14 @@ [ "Unexpected token.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@8" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parseExplainErr3.out b/tests/data/parser/parseExplainErr3.out index 367816944..547269fff 100644 --- a/tests/data/parser/parseExplainErr3.out +++ b/tests/data/parser/parseExplainErr3.out @@ -2,18 +2,26 @@ "query": "EXPLAIN ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "EXPLAIN ", "len": 8, "last": 8, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 3, + "idx": 3, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "EXPLAIN", "value": "EXPLAIN", "keyword": "EXPLAIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,30 +30,36 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 3, - "idx": 3 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -63,9 +77,7 @@ "last": 1 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -73,7 +85,7 @@ [ "Expected a table name.", { - "@type": "@3" + "@type": "@4" }, 0 ] diff --git a/tests/data/parser/parseInsert.out b/tests/data/parser/parseInsert.out index 93555f3c1..67d7a3649 100644 --- a/tests/data/parser/parseInsert.out +++ b/tests/data/parser/parseInsert.out @@ -2,18 +2,26 @@ "query": "INSERT LOW_PRIORITY\nINTO\n users(`id`, `username`, `password`)\nVALUES\n (1, \"Dan\", \"5d41402abc4b2a76b9719d911017c592\"),\n (2, \"Paul\", \"7d793037a0760186574b0282f2f435e7\");", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT LOW_PRIORITY\nINTO\n users(`id`, `username`, `password`)\nVALUES\n (1, \"Dan\", \"5d41402abc4b2a76b9719d911017c592\"),\n (2, \"Paul\", \"7d793037a0760186574b0282f2f435e7\");", "len": 176, "last": 176, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 41, + "idx": 41, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -49,7 +65,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -58,7 +76,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +87,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 29 }, @@ -76,7 +100,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 34 }, @@ -85,7 +113,11 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 35 }, @@ -94,7 +126,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 39 }, @@ -103,7 +137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -112,7 +148,9 @@ "token": "`username`", "value": "username", "keyword": null, - "type": 8, + "type": { + "@type": "@15" + }, "flags": 2, "position": 41 }, @@ -121,7 +159,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 51 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -139,7 +181,9 @@ "token": "`password`", "value": "password", "keyword": null, - "type": 8, + "type": { + "@type": "@15" + }, "flags": 2, "position": 53 }, @@ -148,7 +192,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 63 }, @@ -157,7 +203,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -166,7 +214,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 65 }, @@ -175,7 +225,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -184,7 +236,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 76 }, @@ -193,7 +247,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 77 }, @@ -202,7 +260,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 78 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -220,7 +282,11 @@ "token": "\"Dan\"", "value": "Dan", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 80 }, @@ -229,7 +295,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 85 }, @@ -238,7 +306,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -247,7 +317,9 @@ "token": "\"5d41402abc4b2a76b9719d911017c592\"", "value": "5d41402abc4b2a76b9719d911017c592", "keyword": null, - "type": 7, + "type": { + "@type": "@32" + }, "flags": 2, "position": 87 }, @@ -256,7 +328,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 121 }, @@ -265,7 +339,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 122 }, @@ -274,7 +350,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -283,7 +361,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 128 }, @@ -292,7 +372,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@28" + }, "flags": 0, "position": 129 }, @@ -301,7 +383,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 130 }, @@ -310,7 +394,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -319,7 +405,9 @@ "token": "\"Paul\"", "value": "Paul", "keyword": null, - "type": 7, + "type": { + "@type": "@32" + }, "flags": 2, "position": 132 }, @@ -328,7 +416,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 138 }, @@ -337,7 +427,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -346,7 +438,9 @@ "token": "\"7d793037a0760186574b0282f2f435e7\"", "value": "7d793037a0760186574b0282f2f435e7", "keyword": null, - "type": 7, + "type": { + "@type": "@32" + }, "flags": 2, "position": 140 }, @@ -355,7 +449,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 174 }, @@ -364,30 +460,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 175 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@49" + }, "flags": 0, "position": null } - ], - "count": 41, - "idx": 41 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -413,9 +513,9 @@ "password" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -459,9 +559,7 @@ "last": 38 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseInsertErr.out b/tests/data/parser/parseInsertErr.out index 67996315b..e2369dcb2 100644 --- a/tests/data/parser/parseInsertErr.out +++ b/tests/data/parser/parseInsertErr.out @@ -2,18 +2,26 @@ "query": "INSERT SELECT\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT SELECT\n", "len": 14, "last": 14, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,30 +54,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -87,11 +105,11 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\SelectStatement", "expr": [], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -99,7 +117,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -108,9 +126,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -118,14 +134,14 @@ [ "Unexpected keyword.", { - "@type": "@4" + "@type": "@6" }, 0 ], [ "An expression was expected.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseInsertErr2.out b/tests/data/parser/parseInsertErr2.out index 465d79966..5ee4e61b2 100644 --- a/tests/data/parser/parseInsertErr2.out +++ b/tests/data/parser/parseInsertErr2.out @@ -2,18 +2,26 @@ "query": "INSERT INTO x \"string\"\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO x \"string\"\n\n", "len": 24, "last": 24, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "x", "value": "x", "keyword": "X", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +87,11 @@ "token": "\"string\"", "value": "string", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 14 }, @@ -76,30 +100,34 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -121,9 +149,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -138,9 +166,7 @@ "last": 5 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -148,14 +174,14 @@ [ "Unexpected token.", { - "@type": "@8" + "@type": "@10" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@8" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parseInsertFunction.out b/tests/data/parser/parseInsertFunction.out index 9c941a844..b32ce07f2 100644 --- a/tests/data/parser/parseInsertFunction.out +++ b/tests/data/parser/parseInsertFunction.out @@ -2,18 +2,26 @@ "query": "INSERT INTO labels(`label`)\nVALUES (concat('A', ' ', 'label'));", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO labels(`label`)\nVALUES (concat('A', ' ', 'label'));", "len": 63, "last": 63, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "labels", "value": "labels", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -67,7 +91,11 @@ "token": "`label`", "value": "label", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 19 }, @@ -76,7 +104,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 26 }, @@ -85,7 +115,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -94,7 +126,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 28 }, @@ -103,7 +137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -112,7 +148,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 35 }, @@ -121,7 +159,9 @@ "token": "concat", "value": "concat", "keyword": "CONCAT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 36 }, @@ -130,7 +170,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 42 }, @@ -139,7 +181,11 @@ "token": "'A'", "value": "A", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 43 }, @@ -148,7 +194,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 46 }, @@ -157,7 +205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -166,7 +216,9 @@ "token": "' '", "value": " ", "keyword": null, - "type": 7, + "type": { + "@type": "@22" + }, "flags": 1, "position": 48 }, @@ -175,7 +227,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 51 }, @@ -184,7 +238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -193,7 +249,9 @@ "token": "'label'", "value": "label", "keyword": null, - "type": 7, + "type": { + "@type": "@22" + }, "flags": 1, "position": 53 }, @@ -202,7 +260,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 60 }, @@ -211,7 +271,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 61 }, @@ -220,30 +282,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 62 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@32" + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -267,9 +333,9 @@ "label" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -294,9 +360,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseInsertIntoErr.out b/tests/data/parser/parseInsertIntoErr.out index 4719287fa..91576fa61 100644 --- a/tests/data/parser/parseInsertIntoErr.out +++ b/tests/data/parser/parseInsertIntoErr.out @@ -2,18 +2,26 @@ "query": "INSERT INTO x INSERT\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO x INSERT\n\n", "len": 22, "last": 22, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "x", "value": "x", "keyword": "X", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +87,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 14 }, @@ -76,30 +98,34 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -121,9 +147,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -153,9 +179,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -163,7 +187,7 @@ [ "Unexpected keyword.", { - "@type": "@8" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parseInsertIntoSet.out b/tests/data/parser/parseInsertIntoSet.out index 78bfff922..1f4164d4e 100644 --- a/tests/data/parser/parseInsertIntoSet.out +++ b/tests/data/parser/parseInsertIntoSet.out @@ -2,18 +2,26 @@ "query": "INSERT INTO aa SET = INET6_ATON('::ffff:8.8.8.8')", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO aa SET = INET6_ATON('::ffff:8.8.8.8')", "len": 50, "last": 50, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "aa", "value": "aa", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +89,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 15 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +111,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -103,7 +135,9 @@ "token": "INET6_ATON", "value": "INET6_ATON", "keyword": "INET6_ATON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 22 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 32 }, @@ -121,7 +157,11 @@ "token": "'::ffff:8.8.8.8'", "value": "::ffff:8.8.8.8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 33 }, @@ -130,30 +170,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 49 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -175,9 +219,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": [ @@ -198,9 +242,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseInsertOnDuplicateKey.out b/tests/data/parser/parseInsertOnDuplicateKey.out index 3922e526a..c50bcd15d 100644 --- a/tests/data/parser/parseInsertOnDuplicateKey.out +++ b/tests/data/parser/parseInsertOnDuplicateKey.out @@ -2,18 +2,26 @@ "query": "INSERT INTO `champs` (`id`,`val`) VALUES (412,'Thresh')\nON DUPLICATE KEY UPDATE `id`=412,`val`='Thresh'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO `champs` (`id`,`val`) VALUES (412,'Thresh')\nON DUPLICATE KEY UPDATE `id`=412,`val`='Thresh'", "len": 103, "last": 103, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 36, + "idx": 36, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`champs`", "value": "champs", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 22 }, @@ -85,7 +113,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 26 }, @@ -94,7 +124,9 @@ "token": "`val`", "value": "val", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -103,7 +135,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 34 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -139,7 +179,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 41 }, @@ -148,7 +190,11 @@ "token": "412", "value": 412, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 42 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 45 }, @@ -166,7 +214,11 @@ "token": "'Thresh'", "value": "Thresh", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 46 }, @@ -175,7 +227,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 54 }, @@ -184,7 +238,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -193,7 +249,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -202,7 +260,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -211,7 +271,9 @@ "token": "DUPLICATE", "value": "DUPLICATE", "keyword": "DUPLICATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 59 }, @@ -220,7 +282,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -229,7 +293,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 69 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -247,7 +315,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -256,7 +326,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -265,7 +337,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 80 }, @@ -274,7 +348,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 84 }, @@ -283,7 +359,9 @@ "token": "412", "value": 412, "keyword": null, - "type": 6, + "type": { + "@type": "@22" + }, "flags": 0, "position": 85 }, @@ -292,7 +370,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 88 }, @@ -301,7 +381,9 @@ "token": "`val`", "value": "val", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 89 }, @@ -310,7 +392,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 94 }, @@ -319,30 +403,34 @@ "token": "'Thresh'", "value": "Thresh", "keyword": null, - "type": 7, + "type": { + "@type": "@25" + }, "flags": 1, "position": 95 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 36, - "idx": 36 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -367,9 +455,9 @@ "val" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -407,9 +495,7 @@ "last": 34 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseInsertOnDuplicateKeyErr.out b/tests/data/parser/parseInsertOnDuplicateKeyErr.out index 4e3d484df..c44a18842 100644 --- a/tests/data/parser/parseInsertOnDuplicateKeyErr.out +++ b/tests/data/parser/parseInsertOnDuplicateKeyErr.out @@ -2,18 +2,26 @@ "query": "INSERT INTO `champs` (`id`,`val`) VALUES (412,'Thresh')\nON DUPLICATE KEY `id`=412,`val`='Thresh'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO `champs` (`id`,`val`) VALUES (412,'Thresh')\nON DUPLICATE KEY `id`=412,`val`='Thresh'", "len": 96, "last": 96, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`champs`", "value": "champs", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 21 }, @@ -76,7 +102,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 22 }, @@ -85,7 +113,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 26 }, @@ -94,7 +124,9 @@ "token": "`val`", "value": "val", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 27 }, @@ -103,7 +135,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 34 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -139,7 +179,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 41 }, @@ -148,7 +190,11 @@ "token": "412", "value": 412, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 42 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 45 }, @@ -166,7 +214,11 @@ "token": "'Thresh'", "value": "Thresh", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 46 }, @@ -175,7 +227,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 54 }, @@ -184,7 +238,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -193,7 +249,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -202,7 +260,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -211,7 +271,9 @@ "token": "DUPLICATE", "value": "DUPLICATE", "keyword": "DUPLICATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 59 }, @@ -220,7 +282,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -229,7 +293,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 69 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -247,7 +315,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 73 }, @@ -256,7 +326,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 77 }, @@ -265,7 +337,9 @@ "token": "412", "value": 412, "keyword": null, - "type": 6, + "type": { + "@type": "@22" + }, "flags": 0, "position": 78 }, @@ -274,7 +348,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 81 }, @@ -283,7 +359,9 @@ "token": "`val`", "value": "val", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 82 }, @@ -292,7 +370,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 87 }, @@ -301,30 +381,34 @@ "token": "'Thresh'", "value": "Thresh", "keyword": null, - "type": 7, + "type": { + "@type": "@25" + }, "flags": 1, "position": 88 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -349,9 +433,9 @@ "val" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -378,9 +462,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -388,35 +470,35 @@ [ "Unexpected token.", { - "@type": "@28" + "@type": "@34" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@28" + "@type": "@34" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@30" + "@type": "@36" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@32" + "@type": "@38" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@34" + "@type": "@40" }, 0 ] diff --git a/tests/data/parser/parseInsertSelect.out b/tests/data/parser/parseInsertSelect.out index ece7c150e..af65d831a 100644 --- a/tests/data/parser/parseInsertSelect.out +++ b/tests/data/parser/parseInsertSelect.out @@ -2,18 +2,26 @@ "query": "INSERT INTO `a` (`value`) SELECT `b`.`value` FROM `b`", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO `a` (`value`) SELECT `b`.`value` FROM `b`", "len": 53, "last": 53, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 16 }, @@ -76,7 +102,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 17 }, @@ -85,7 +113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 24 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -121,7 +157,9 @@ "token": "`b`", "value": "b", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 33 }, @@ -130,7 +168,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 36 }, @@ -139,7 +179,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 37 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -157,7 +201,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -175,30 +223,34 @@ "token": "`b`", "value": "b", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -222,9 +274,9 @@ "value" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -254,11 +306,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -266,7 +318,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -284,9 +336,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseInsertSelectOnDuplicateKey.out b/tests/data/parser/parseInsertSelectOnDuplicateKey.out index 79c204cde..4143bd227 100644 --- a/tests/data/parser/parseInsertSelectOnDuplicateKey.out +++ b/tests/data/parser/parseInsertSelectOnDuplicateKey.out @@ -2,18 +2,26 @@ "query": "INSERT INTO tbl SELECT * FROM bar ON DUPLICATE KEY UPDATE baz = 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO tbl SELECT * FROM bar ON DUPLICATE KEY UPDATE baz = 1", "len": 65, "last": 65, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 28, + "idx": 28, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +111,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -103,7 +135,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -121,7 +157,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 30 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -139,7 +179,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 34 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -157,7 +201,9 @@ "token": "DUPLICATE", "value": "DUPLICATE", "keyword": "DUPLICATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 37 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -175,7 +223,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 47 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +245,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 51 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -211,7 +267,9 @@ "token": "baz", "value": "baz", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 58 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -229,7 +289,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 62 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -247,30 +311,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 64 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 28, - "idx": 28 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -292,9 +362,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -324,11 +394,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -336,7 +406,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -360,9 +430,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseInsertSet.out b/tests/data/parser/parseInsertSet.out index 86d80ae8d..7f639358f 100644 --- a/tests/data/parser/parseInsertSet.out +++ b/tests/data/parser/parseInsertSet.out @@ -2,18 +2,26 @@ "query": "INSERT INTO `a` (`value`) SET `value` = '123'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO `a` (`value`) SET `value` = '123'", "len": 45, "last": 45, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 16 }, @@ -76,7 +102,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 17 }, @@ -85,7 +113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 24 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 26 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -121,7 +157,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 30 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 38 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -157,30 +201,36 @@ "token": "'123'", "value": "123", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 40 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -204,9 +254,9 @@ "value" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": [ @@ -227,9 +277,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseInsertSetOnDuplicateKey.out b/tests/data/parser/parseInsertSetOnDuplicateKey.out index f2b6ce7f7..36d2a1e6d 100644 --- a/tests/data/parser/parseInsertSetOnDuplicateKey.out +++ b/tests/data/parser/parseInsertSetOnDuplicateKey.out @@ -2,18 +2,26 @@ "query": "INSERT INTO `a` (`value`) SET `value` = '123' ON DUPLICATE KEY UPDATE `value` = '1234'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO `a` (`value`) SET `value` = '123' ON DUPLICATE KEY UPDATE `value` = '1234'", "len": 86, "last": 86, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 32, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 16 }, @@ -76,7 +102,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 17 }, @@ -85,7 +113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 24 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 26 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -121,7 +157,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 30 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 38 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -157,7 +201,11 @@ "token": "'123'", "value": "123", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 40 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -175,7 +225,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -193,7 +247,9 @@ "token": "DUPLICATE", "value": "DUPLICATE", "keyword": "DUPLICATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 49 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -211,7 +269,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 59 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -229,7 +291,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -247,7 +313,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 70 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -265,7 +335,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 78 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -283,30 +357,34 @@ "token": "'1234'", "value": "1234", "keyword": null, - "type": 7, + "type": { + "@type": "@23" + }, "flags": 1, "position": 80 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 32 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -330,9 +408,9 @@ "value" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": [ @@ -359,9 +437,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseKill.out b/tests/data/parser/parseKill.out index 77f8ceace..aad68bf64 100644 --- a/tests/data/parser/parseKill.out +++ b/tests/data/parser/parseKill.out @@ -2,18 +2,26 @@ "query": "KILL 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL 1", "len": 6, "last": 6, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 4, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,30 +43,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 5 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 4, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -72,9 +90,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseKill2.out b/tests/data/parser/parseKill2.out index 4dba157c2..d5879369a 100644 --- a/tests/data/parser/parseKill2.out +++ b/tests/data/parser/parseKill2.out @@ -2,18 +2,26 @@ "query": "KILL (SELECT 3 + 4)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL (SELECT 3 + 4)", "len": 19, "last": 19, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 5 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -58,7 +78,11 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 13 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 1, "position": 15 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -94,7 +124,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@11" + }, "flags": 0, "position": 17 }, @@ -103,30 +135,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 18 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -148,11 +184,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -160,7 +196,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -178,9 +214,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseKill3.out b/tests/data/parser/parseKill3.out index 3887f5867..f47393454 100644 --- a/tests/data/parser/parseKill3.out +++ b/tests/data/parser/parseKill3.out @@ -2,18 +2,26 @@ "query": "KILL QUERY ID 10", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL QUERY ID 10", "len": 16, "last": 16, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "QUERY", "value": "QUERY", "keyword": "QUERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "ID", "value": "ID", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,30 +89,36 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 14 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -110,9 +138,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseKillConnection.out b/tests/data/parser/parseKillConnection.out index 027478c06..d130b148c 100644 --- a/tests/data/parser/parseKillConnection.out +++ b/tests/data/parser/parseKillConnection.out @@ -2,18 +2,26 @@ "query": "KILL CONNECTION 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL CONNECTION 1", "len": 17, "last": 17, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "CONNECTION", "value": "CONNECTION", "keyword": "CONNECTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,30 +65,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 16 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -92,9 +114,7 @@ "last": 5 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseKillErr1.out b/tests/data/parser/parseKillErr1.out index bac19500c..b0217f78c 100644 --- a/tests/data/parser/parseKillErr1.out +++ b/tests/data/parser/parseKillErr1.out @@ -2,18 +2,26 @@ "query": "KILL CONNECTION QUERY 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL CONNECTION QUERY 1", "len": 23, "last": 23, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "CONNECTION", "value": "CONNECTION", "keyword": "CONNECTION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,9 @@ "token": "QUERY", "value": "QUERY", "keyword": "QUERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 16 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,30 +87,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 22 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -111,9 +137,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -121,7 +145,7 @@ [ "This option conflicts with \"CONNECTION\".", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseKillErr2.out b/tests/data/parser/parseKillErr2.out index 721fd2505..c290a17c2 100644 --- a/tests/data/parser/parseKillErr2.out +++ b/tests/data/parser/parseKillErr2.out @@ -2,41 +2,51 @@ "query": "KILL", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL", "len": 4, "last": 4, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 2, + "idx": 2, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 2, - "idx": 2 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -54,9 +64,7 @@ "last": 0 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -64,14 +72,14 @@ [ "Unexpected token.", { - "@type": "@3" + "@type": "@4" }, 0 ], [ "Unexpected end of the KILL statement.", { - "@type": "@3" + "@type": "@4" }, 0 ] diff --git a/tests/data/parser/parseKillErr3.out b/tests/data/parser/parseKillErr3.out index 3b0a2395b..fbeb3d3b2 100644 --- a/tests/data/parser/parseKillErr3.out +++ b/tests/data/parser/parseKillErr3.out @@ -2,18 +2,26 @@ "query": "KILL (SELECT)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL (SELECT)", "len": 13, "last": 13, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 5 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 6 }, @@ -49,30 +67,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 12 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -90,9 +112,7 @@ "last": 5 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -100,7 +120,7 @@ [ "An expression was expected.", { - "@type": "@6" + "@type": "@9" }, 0 ] diff --git a/tests/data/parser/parseKillErr4.out b/tests/data/parser/parseKillErr4.out index c5adb58ec..6f72495e2 100644 --- a/tests/data/parser/parseKillErr4.out +++ b/tests/data/parser/parseKillErr4.out @@ -2,18 +2,26 @@ "query": "KILL (INSERT)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL (INSERT)", "len": 13, "last": 13, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 5 }, @@ -40,7 +56,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 6 }, @@ -49,30 +67,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 12 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -97,9 +119,9 @@ "dest": null, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -114,9 +136,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -124,14 +144,14 @@ [ "Unexpected token.", { - "@type": "@5" + "@type": "@8" }, 0 ], [ "Unexpected end of the KILL statement.", { - "@type": "@5" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseKillQuery.out b/tests/data/parser/parseKillQuery.out index 1d2f145c3..f5a4efed7 100644 --- a/tests/data/parser/parseKillQuery.out +++ b/tests/data/parser/parseKillQuery.out @@ -2,18 +2,26 @@ "query": "KILL QUERY 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "KILL QUERY 1", "len": 12, "last": 12, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "KILL", "value": "KILL", "keyword": "KILL", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "QUERY", "value": "QUERY", "keyword": "QUERY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,30 +65,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 11 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -92,9 +114,7 @@ "last": 5 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLimitErr1.out b/tests/data/parser/parseLimitErr1.out index 7b696fe4f..ae4729209 100644 --- a/tests/data/parser/parseLimitErr1.out +++ b/tests/data/parser/parseLimitErr1.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM test LIMIT 1 OFFSET OFFSET 2;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM test LIMIT 1 OFFSET OFFSET 2;", "len": 43, "last": 43, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 19, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +113,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -103,7 +135,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 25 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -121,7 +159,9 @@ "token": "OFFSET", "value": "OFFSET", "keyword": "OFFSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -139,7 +181,9 @@ "token": "OFFSET", "value": "OFFSET", "keyword": "OFFSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 34 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -157,7 +203,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@17" + }, "flags": 0, "position": 41 }, @@ -166,30 +214,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 42 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@25" + }, "flags": 0, "position": null } - ], - "count": 19, - "idx": 19 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -220,11 +272,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": { @@ -236,7 +288,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -245,9 +297,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -255,7 +305,7 @@ [ "An offset was expected.", { - "@type": "@16" + "@type": "@21" }, 0 ] diff --git a/tests/data/parser/parseLimitErr2.out b/tests/data/parser/parseLimitErr2.out index 517b062bf..e44cfccc0 100644 --- a/tests/data/parser/parseLimitErr2.out +++ b/tests/data/parser/parseLimitErr2.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM test LIMIT 1 OFFSET", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM test LIMIT 1 OFFSET", "len": 33, "last": 33, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +113,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -103,7 +135,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 25 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -121,30 +159,34 @@ "token": "OFFSET", "value": "OFFSET", "keyword": "OFFSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -175,11 +217,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": { @@ -191,7 +233,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -200,9 +242,7 @@ "last": 12 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -210,7 +250,7 @@ [ "An offset was expected.", { - "@type": "@14" + "@type": "@19" }, 0 ] diff --git a/tests/data/parser/parseLoad1.out b/tests/data/parser/parseLoad1.out index 9543d635c..b78d96d19 100644 --- a/tests/data/parser/parseLoad1.out +++ b/tests/data/parser/parseLoad1.out @@ -2,18 +2,26 @@ "query": "LOAD DATA CONCURRENT INFILE 'employee1.txt' INTO TABLE employee;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA CONCURRENT INFILE 'employee1.txt' INTO TABLE employee;", "len": 64, "last": 64, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "CONCURRENT", "value": "CONCURRENT", "keyword": "CONCURRENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -49,7 +65,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -67,7 +87,11 @@ "token": "'employee1.txt'", "value": "employee1.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 28 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 49 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -121,7 +155,11 @@ "token": "employee", "value": "employee", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 55 }, @@ -130,37 +168,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 63 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -182,15 +224,15 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null, - "col_name_or_user_var": null, + "charsetName": null, + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": null, - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": null, + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -201,9 +243,7 @@ "last": 12 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoad2.out b/tests/data/parser/parseLoad2.out index dc977eb36..cfa99f86c 100644 --- a/tests/data/parser/parseLoad2.out +++ b/tests/data/parser/parseLoad2.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' IGNORE 1 LINES;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' IGNORE 1 LINES;", "len": 89, "last": 89, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -85,7 +111,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +133,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 44 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -121,7 +157,9 @@ "token": "FIELDS", "value": "FIELDS", "keyword": "FIELDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 49 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -139,7 +179,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 56 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -157,7 +201,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 70 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -175,7 +223,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 74 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -193,7 +245,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 81 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -211,7 +269,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 83 }, @@ -220,37 +280,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 88 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -272,8 +336,8 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": { + "charsetName": null, + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -293,11 +357,11 @@ } } }, - "fields_keyword": "FIELDS", - "lines_options": null, - "col_name_or_user_var": null, + "fieldsKeyword": "FIELDS", + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": { + "ignoreNumber": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -307,8 +371,8 @@ "function": null, "subquery": null }, - "replace_ignore": null, - "lines_rows": "LINES", + "replaceIgnore": null, + "linesRows": "LINES", "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -317,9 +381,7 @@ "last": 23 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoad3.out b/tests/data/parser/parseLoad3.out index bebbe86a4..eee5e82cc 100644 --- a/tests/data/parser/parseLoad3.out +++ b/tests/data/parser/parseLoad3.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE 'employee3.txt' INTO TABLE employee FIELDS TERMINATED BY ',' ENCLOSED BY '\"';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE 'employee3.txt' INTO TABLE employee FIELDS TERMINATED BY ',' ENCLOSED BY '\"';", "len": 94, "last": 94, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'employee3.txt'", "value": "employee3.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -85,7 +111,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +133,11 @@ "token": "employee", "value": "employee", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 44 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +157,9 @@ "token": "FIELDS", "value": "FIELDS", "keyword": "FIELDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 53 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -139,7 +179,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 60 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -157,7 +201,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 74 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -175,7 +223,9 @@ "token": "ENCLOSED BY", "value": "ENCLOSED BY", "keyword": "ENCLOSED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 78 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -193,7 +245,9 @@ "token": "'\"'", "value": "\"", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 90 }, @@ -202,37 +256,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 93 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@28" + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -254,8 +312,8 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": { + "charsetName": null, + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -290,13 +348,13 @@ } } }, - "fields_keyword": "FIELDS", - "lines_options": null, - "col_name_or_user_var": null, + "fieldsKeyword": "FIELDS", + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": null, - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": null, + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -305,9 +363,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoad4.out b/tests/data/parser/parseLoad4.out index f1a9aa18c..e9baf6735 100644 --- a/tests/data/parser/parseLoad4.out +++ b/tests/data/parser/parseLoad4.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nCHARACTER SET 'utf8'\nCOLUMNS TERMINATED BY ','\nLINES TERMINATED BY ';'\nIGNORE 1 LINES\n(col1, col2)\nSET @a = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nCHARACTER SET 'utf8'\nCOLUMNS TERMINATED BY ','\nLINES TERMINATED BY ';'\nIGNORE 1 LINES\n(col1, col2)\nSET @a = 1;", "len": 166, "last": 166, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 52, + "idx": 52, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -121,7 +155,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 51 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -139,7 +179,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 56 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -157,7 +201,9 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 70 }, @@ -166,7 +212,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -175,7 +223,9 @@ "token": "COLUMNS", "value": "COLUMNS", "keyword": "COLUMNS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 77 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -193,7 +245,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 85 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -211,7 +267,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 99 }, @@ -220,7 +278,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -229,7 +289,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 103 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -247,7 +311,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 109 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -265,7 +333,9 @@ "token": "';'", "value": ";", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 123 }, @@ -274,7 +344,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -283,7 +355,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 127 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -301,7 +377,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 134 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -319,7 +401,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 136 }, @@ -328,7 +412,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -337,7 +423,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 142 }, @@ -346,7 +436,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 143 }, @@ -355,7 +447,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@44" + }, "flags": 16, "position": 147 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -373,7 +469,9 @@ "token": "col2", "value": "col2", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 149 }, @@ -382,7 +480,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@44" + }, "flags": 16, "position": 153 }, @@ -391,7 +491,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 154 }, @@ -400,7 +502,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 155 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -418,7 +524,11 @@ "token": "@a", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 159 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 161 }, @@ -436,7 +548,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@44" + }, "flags": 2, "position": 162 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 163 }, @@ -454,7 +570,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@39" + }, "flags": 0, "position": 164 }, @@ -463,37 +581,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 165 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@60" + }, "flags": 0, "position": null } - ], - "count": 52, - "idx": 52 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -515,7 +637,7 @@ "subquery": null }, "partition": null, - "charset_name": { + "charsetName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -525,7 +647,7 @@ "function": null, "subquery": null }, - "fields_options": { + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -545,8 +667,8 @@ } } }, - "fields_keyword": "COLUMNS", - "lines_options": { + "fieldsKeyword": "COLUMNS", + "linesOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "2": { @@ -566,7 +688,7 @@ } } }, - "col_name_or_user_var": [ + "columnNamesOrUserVariables": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -585,7 +707,7 @@ "value": "1" } ], - "ignore_number": { + "ignoreNumber": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -595,8 +717,8 @@ "function": null, "subquery": null }, - "replace_ignore": "IGNORE", - "lines_rows": "LINES", + "replaceIgnore": "IGNORE", + "linesRows": "LINES", "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -605,9 +727,7 @@ "last": 49 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoad5.out b/tests/data/parser/parseLoad5.out index 8964ec7cf..731307e82 100644 --- a/tests/data/parser/parseLoad5.out +++ b/tests/data/parser/parseLoad5.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' REPLACE INTO TABLE test COLUMNS TERMINATED BY ',' IGNORE 1 ROWS;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' REPLACE INTO TABLE test COLUMNS TERMINATED BY ',' IGNORE 1 ROWS;", "len": 98, "last": 98, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 27, + "idx": 27, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 34 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +155,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 53 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -139,7 +179,9 @@ "token": "COLUMNS", "value": "COLUMNS", "keyword": "COLUMNS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 58 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -157,7 +201,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 66 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -175,7 +223,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 80 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -193,7 +245,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 84 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -211,7 +267,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 91 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -229,7 +291,9 @@ "token": "ROWS", "value": "ROWS", "keyword": "ROWS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 93 }, @@ -238,37 +302,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 97 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": null } - ], - "count": 27, - "idx": 27 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -290,8 +358,8 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": { + "charsetName": null, + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -311,11 +379,11 @@ } } }, - "fields_keyword": "COLUMNS", - "lines_options": null, - "col_name_or_user_var": null, + "fieldsKeyword": "COLUMNS", + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": { + "ignoreNumber": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -325,8 +393,8 @@ "function": null, "subquery": null }, - "replace_ignore": "REPLACE", - "lines_rows": "ROWS", + "replaceIgnore": "REPLACE", + "linesRows": "ROWS", "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -335,9 +403,7 @@ "last": 25 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoad6.out b/tests/data/parser/parseLoad6.out index 21e118d98..b4124931c 100644 --- a/tests/data/parser/parseLoad6.out +++ b/tests/data/parser/parseLoad6.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nPARTITION (p0, p1, p2)\nCHARACTER SET 'utf8'\nCOLUMNS TERMINATED BY ','\nLINES TERMINATED BY ';'\nIGNORE 1 LINES\n(col1, col2)\nSET @a = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nPARTITION (p0, p1, p2)\nCHARACTER SET 'utf8'\nCOLUMNS TERMINATED BY ','\nLINES TERMINATED BY ';'\nIGNORE 1 LINES\n(col1, col2)\nSET @a = 1;", "len": 189, "last": 189, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 64, + "idx": 64, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -121,7 +155,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 51 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -139,7 +179,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -157,7 +201,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 66 }, @@ -166,7 +214,9 @@ "token": "p0", "value": "p0", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 67 }, @@ -175,7 +225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 69 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 71 }, @@ -202,7 +258,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 73 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -220,7 +280,9 @@ "token": "p2", "value": "p2", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 77 }, @@ -238,7 +302,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -247,7 +313,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 79 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -265,7 +335,9 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 93 }, @@ -274,7 +346,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -283,7 +357,9 @@ "token": "COLUMNS", "value": "COLUMNS", "keyword": "COLUMNS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 100 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -301,7 +379,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 108 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -319,7 +401,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 122 }, @@ -328,7 +412,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -337,7 +423,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 126 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -355,7 +445,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 132 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -373,7 +467,9 @@ "token": "';'", "value": ";", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 146 }, @@ -382,7 +478,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -391,7 +489,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 150 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -409,7 +511,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 157 }, @@ -418,7 +524,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -427,7 +535,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 159 }, @@ -436,7 +546,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 164 }, @@ -445,7 +557,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 165 }, @@ -454,7 +568,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 166 }, @@ -463,7 +579,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 170 }, @@ -472,7 +590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -481,7 +601,9 @@ "token": "col2", "value": "col2", "keyword": null, - "type": 0, + "type": { + "@type": "@18" + }, "flags": 0, "position": 172 }, @@ -490,7 +612,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 16, "position": 176 }, @@ -499,7 +623,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 177 }, @@ -508,7 +634,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 178 }, @@ -517,7 +645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 181 }, @@ -526,7 +656,11 @@ "token": "@a", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 182 }, @@ -535,7 +669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 184 }, @@ -544,7 +680,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@23" + }, "flags": 2, "position": 185 }, @@ -553,7 +691,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 186 }, @@ -562,7 +702,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@52" + }, "flags": 0, "position": 187 }, @@ -571,37 +713,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 188 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@72" + }, "flags": 0, "position": null } - ], - "count": 64, - "idx": 64 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -635,7 +781,7 @@ "p2" ] }, - "charset_name": { + "charsetName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -645,7 +791,7 @@ "function": null, "subquery": null }, - "fields_options": { + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -665,8 +811,8 @@ } } }, - "fields_keyword": "COLUMNS", - "lines_options": { + "fieldsKeyword": "COLUMNS", + "linesOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "2": { @@ -686,7 +832,7 @@ } } }, - "col_name_or_user_var": [ + "columnNamesOrUserVariables": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -705,7 +851,7 @@ "value": "1" } ], - "ignore_number": { + "ignoreNumber": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -715,8 +861,8 @@ "function": null, "subquery": null }, - "replace_ignore": "IGNORE", - "lines_rows": "LINES", + "replaceIgnore": "IGNORE", + "linesRows": "LINES", "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -725,9 +871,7 @@ "last": 61 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoad7.out b/tests/data/parser/parseLoad7.out index f38e6b37e..a790638fd 100644 --- a/tests/data/parser/parseLoad7.out +++ b/tests/data/parser/parseLoad7.out @@ -2,18 +2,26 @@ "query": "SELECT a\ninto outfile '/tmp/temp.data'\nfields terminated by ',' enclosed by '\"' ESCAPED BY '$'\nFROM sometable", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT a\ninto outfile '/tmp/temp.data'\nfields terminated by ',' enclosed by '\"' ESCAPED BY '$'\nFROM sometable", "len": 109, "last": 109, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 28, + "idx": 28, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "into", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,9 @@ "token": "outfile", "value": "OUTFILE", "keyword": "OUTFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "'/tmp/temp.data'", "value": "/tmp/temp.data", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 22 }, @@ -94,7 +124,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -103,7 +135,9 @@ "token": "fields", "value": "fields", "keyword": "FIELDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 39 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -121,7 +157,9 @@ "token": "terminated by", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 46 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -139,7 +179,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@14" + }, "flags": 1, "position": 60 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -157,7 +201,9 @@ "token": "enclosed by", "value": "ENCLOSED BY", "keyword": "ENCLOSED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 64 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -175,7 +223,9 @@ "token": "'\"'", "value": "\"", "keyword": null, - "type": 7, + "type": { + "@type": "@14" + }, "flags": 1, "position": 76 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -193,7 +245,9 @@ "token": "ESCAPED BY", "value": "ESCAPED BY", "keyword": "ESCAPED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 80 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -211,7 +267,9 @@ "token": "'$'", "value": "$", "keyword": null, - "type": 7, + "type": { + "@type": "@14" + }, "flags": 1, "position": 91 }, @@ -220,7 +278,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -229,7 +289,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 95 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -247,30 +311,34 @@ "token": "sometable", "value": "sometable", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 100 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 28, - "idx": 28 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -301,11 +369,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -316,7 +384,7 @@ "dest": "/tmp/temp.data", "columns": null, "values": null, - "fields_options": { + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -366,12 +434,12 @@ } } }, - "fields_keyword": true, - "lines_options": null + "fieldsKeyword": true, + "linesOptions": null }, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -380,9 +448,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoad8.out b/tests/data/parser/parseLoad8.out index fca14e8df..b36e7ab87 100644 --- a/tests/data/parser/parseLoad8.out +++ b/tests/data/parser/parseLoad8.out @@ -2,18 +2,26 @@ "query": "-- Query from https://github.com/phpmyadmin/sql-parser/issues/578\n-- Issue was that Lexer detected \".e1\" as number token.\n\nLOAD DATA LOCAL INFILE '/home/user/myloadfile.csv'\nIGNORE INTO TABLE erp.e1_table\nFIELDS TERMINATED BY '\\t'\nLINES TERMINATED BY '\\n'\nIGNORE 0 LINES;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- Query from https://github.com/phpmyadmin/sql-parser/issues/578\n-- Issue was that Lexer detected \".e1\" as number token.\n\nLOAD DATA LOCAL INFILE '/home/user/myloadfile.csv'\nIGNORE INTO TABLE erp.e1_table\nFIELDS TERMINATED BY '\\t'\nLINES TERMINATED BY '\\n'\nIGNORE 0 LINES;\n", "len": 272, "last": 272, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 42, + "idx": 42, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- Query from https://github.com/phpmyadmin/sql-parser/issues/578", "value": "-- Query from https://github.com/phpmyadmin/sql-parser/issues/578", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 65 }, @@ -31,7 +43,9 @@ "token": "-- Issue was that Lexer detected \".e1\" as number token.", "value": "-- Issue was that Lexer detected \".e1\" as number token.", "keyword": null, - "type": 4, + "type": { + "@type": "@3" + }, "flags": 4, "position": 66 }, @@ -40,7 +54,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -49,7 +65,11 @@ "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 123 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -67,7 +89,9 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 1, "position": 133 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -85,7 +111,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 3, "position": 139 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -103,7 +133,11 @@ "token": "'/home/user/myloadfile.csv'", "value": "/home/user/myloadfile.csv", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 146 }, @@ -112,7 +146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -121,7 +157,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 3, "position": 174 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 180 }, @@ -139,7 +179,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 3, "position": 181 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -157,7 +201,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 3, "position": 186 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 191 }, @@ -175,7 +223,11 @@ "token": "erp", "value": "erp", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 192 }, @@ -184,7 +236,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 195 }, @@ -193,7 +249,9 @@ "token": "e1_table", "value": "e1_table", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 196 }, @@ -202,7 +260,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 204 }, @@ -211,7 +271,9 @@ "token": "FIELDS", "value": "FIELDS", "keyword": "FIELDS", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 1, "position": 205 }, @@ -220,7 +282,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 211 }, @@ -229,7 +293,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 7, "position": 212 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 225 }, @@ -247,7 +315,9 @@ "token": "'\\t'", "value": "\t", "keyword": null, - "type": 7, + "type": { + "@type": "@16" + }, "flags": 1, "position": 226 }, @@ -256,7 +326,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 230 }, @@ -265,7 +337,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 3, "position": 231 }, @@ -274,7 +348,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 236 }, @@ -283,7 +359,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 7, "position": 237 }, @@ -292,7 +370,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 250 }, @@ -301,7 +381,9 @@ "token": "'\\n'", "value": "\n", "keyword": null, - "type": 7, + "type": { + "@type": "@16" + }, "flags": 1, "position": 251 }, @@ -310,7 +392,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 255 }, @@ -319,7 +403,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 3, "position": 256 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 262 }, @@ -337,7 +425,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 263 }, @@ -346,7 +438,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 264 }, @@ -355,7 +449,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@9" + }, "flags": 3, "position": 265 }, @@ -364,7 +460,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 270 }, @@ -373,37 +473,39 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 271 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@49" + }, "flags": 0, "position": null } - ], - "count": 42, - "idx": 42 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -425,8 +527,8 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": { + "charsetName": null, + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -446,8 +548,8 @@ } } }, - "fields_keyword": "FIELDS", - "lines_options": { + "fieldsKeyword": "FIELDS", + "linesOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "2": { @@ -467,9 +569,9 @@ } } }, - "col_name_or_user_var": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": { + "ignoreNumber": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -479,8 +581,8 @@ "function": null, "subquery": null }, - "replace_ignore": "IGNORE", - "lines_rows": "LINES", + "replaceIgnore": "IGNORE", + "linesRows": "LINES", "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -491,9 +593,7 @@ "last": 40 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLoadErr1.out b/tests/data/parser/parseLoadErr1.out index 41c673a21..a8d63ec10 100644 --- a/tests/data/parser/parseLoadErr1.out +++ b/tests/data/parser/parseLoadErr1.out @@ -2,18 +2,26 @@ "query": "LOAD DATA CONCURRENT FROM 'employee1.txt' INTO TABLE employee;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA CONCURRENT FROM 'employee1.txt' INTO TABLE employee;", "len": 62, "last": 62, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "CONCURRENT", "value": "CONCURRENT", "keyword": "CONCURRENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -49,7 +65,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +87,11 @@ "token": "'employee1.txt'", "value": "employee1.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 26 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -121,7 +155,11 @@ "token": "employee", "value": "employee", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 53 }, @@ -130,48 +168,52 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 61 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": null, + "fileName": null, "table": null, "partition": null, - "charset_name": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null, - "col_name_or_user_var": null, + "charsetName": null, + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": null, - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": null, + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -182,9 +224,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -192,14 +232,14 @@ [ "Unexpected keyword.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseLoadErr2.out b/tests/data/parser/parseLoadErr2.out index f7499746e..a4a09477b 100644 --- a/tests/data/parser/parseLoadErr2.out +++ b/tests/data/parser/parseLoadErr2.out @@ -2,18 +2,26 @@ "query": "LOAD DATA CONCURRENT ABC 'employee1.txt' INTO TABLE employee;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA CONCURRENT ABC 'employee1.txt' INTO TABLE employee;", "len": 61, "last": 61, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "CONCURRENT", "value": "CONCURRENT", "keyword": "CONCURRENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -49,7 +65,11 @@ "token": "ABC", "value": "ABC", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 21 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -67,7 +89,11 @@ "token": "'employee1.txt'", "value": "employee1.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 25 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -85,7 +113,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 41 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -103,7 +135,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -121,7 +157,9 @@ "token": "employee", "value": "employee", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 52 }, @@ -130,48 +168,52 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 60 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": null, + "fileName": null, "table": null, "partition": null, - "charset_name": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null, - "col_name_or_user_var": null, + "charsetName": null, + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": null, - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": null, + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -182,9 +224,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -192,28 +232,28 @@ [ "Unexpected token.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@8" + "@type": "@11" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@10" + "@type": "@14" }, 0 ] diff --git a/tests/data/parser/parseLoadErr3.out b/tests/data/parser/parseLoadErr3.out index 7bc4d3e08..f6fb4762d 100644 --- a/tests/data/parser/parseLoadErr3.out +++ b/tests/data/parser/parseLoadErr3.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nDATA @a = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nDATA @a = 1;", "len": 68, "last": 68, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -121,7 +155,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 51 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -139,7 +179,9 @@ "token": "DATA", "value": "DATA", "keyword": "DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 56 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -157,7 +201,11 @@ "token": "@a", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 61 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -175,7 +225,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 64 }, @@ -184,7 +238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -193,7 +249,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 66 }, @@ -202,37 +262,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 67 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -254,15 +318,15 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null, - "col_name_or_user_var": null, + "charsetName": null, + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": "IGNORE", - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": "IGNORE", + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -271,9 +335,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -281,7 +343,7 @@ [ "Unrecognized statement type.", { - "@type": "@16" + "@type": "@20" }, 0 ] diff --git a/tests/data/parser/parseLoadErr4.out b/tests/data/parser/parseLoadErr4.out index 54849eafa..edc0911ee 100644 --- a/tests/data/parser/parseLoadErr4.out +++ b/tests/data/parser/parseLoadErr4.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO test\nDATA @a = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO test\nDATA @a = 1;", "len": 62, "last": 62, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +133,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 45 }, @@ -112,7 +146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -121,7 +157,9 @@ "token": "DATA", "value": "DATA", "keyword": "DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -139,7 +179,11 @@ "token": "@a", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 55 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -157,7 +203,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 58 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -175,7 +227,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 60 }, @@ -184,37 +240,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 61 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@29" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -227,15 +287,15 @@ }, "table": null, "partition": null, - "charset_name": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null, - "col_name_or_user_var": null, + "charsetName": null, + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": "IGNORE", - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": "IGNORE", + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -244,9 +304,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -254,21 +312,21 @@ [ "Unexpected token.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@14" + "@type": "@18" }, 0 ] diff --git a/tests/data/parser/parseLoadErr5.out b/tests/data/parser/parseLoadErr5.out index f46a9629a..b49fcf801 100644 --- a/tests/data/parser/parseLoadErr5.out +++ b/tests/data/parser/parseLoadErr5.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\n@a = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\n@a = 1;", "len": 63, "last": 63, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -121,7 +155,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 51 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -139,7 +179,11 @@ "token": "@a", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 56 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -157,7 +203,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 59 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -175,7 +227,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 61 }, @@ -184,37 +240,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 62 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@29" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -236,15 +296,15 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null, - "col_name_or_user_var": null, + "charsetName": null, + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": "IGNORE", - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": "IGNORE", + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -253,9 +313,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -263,21 +321,21 @@ [ "Unexpected token.", { - "@type": "@16" + "@type": "@20" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@16" + "@type": "@20" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@20" + "@type": "@26" }, 0 ] diff --git a/tests/data/parser/parseLoadErr6.out b/tests/data/parser/parseLoadErr6.out index 7bc4d3e08..f6fb4762d 100644 --- a/tests/data/parser/parseLoadErr6.out +++ b/tests/data/parser/parseLoadErr6.out @@ -2,18 +2,26 @@ "query": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nDATA @a = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOAD DATA INFILE '/tmp/test.txt' IGNORE\nINTO TABLE test\nDATA @a = 1;", "len": 68, "last": 68, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOAD DATA", "value": "LOAD DATA", "keyword": "LOAD DATA", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 9 }, @@ -31,7 +43,9 @@ "token": "INFILE", "value": "INFILE", "keyword": "INFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +65,11 @@ "token": "'/tmp/test.txt'", "value": "/tmp/test.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,7 +89,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -85,7 +111,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +133,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -121,7 +155,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 51 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -139,7 +179,9 @@ "token": "DATA", "value": "DATA", "keyword": "DATA", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 56 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -157,7 +201,11 @@ "token": "@a", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 61 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -175,7 +225,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 64 }, @@ -184,7 +238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -193,7 +249,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 66 }, @@ -202,37 +262,41 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 67 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\LoadStatement", - "file_name": { + "fileName": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -254,15 +318,15 @@ "subquery": null }, "partition": null, - "charset_name": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null, - "col_name_or_user_var": null, + "charsetName": null, + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null, + "columnNamesOrUserVariables": null, "set": null, - "ignore_number": null, - "replace_ignore": "IGNORE", - "lines_rows": null, + "ignoreNumber": null, + "replaceIgnore": "IGNORE", + "linesRows": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -271,9 +335,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -281,7 +343,7 @@ [ "Unrecognized statement type.", { - "@type": "@16" + "@type": "@20" }, 0 ] diff --git a/tests/data/parser/parseLock1.out b/tests/data/parser/parseLock1.out index c507d1f96..f47140d02 100644 --- a/tests/data/parser/parseLock1.out +++ b/tests/data/parser/parseLock1.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS `t1` READ LOCAL;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS `t1` READ LOCAL;", "len": 43, "last": 43, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 24 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +135,9 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 37 }, @@ -130,30 +168,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 42 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,9 +224,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLock2.out b/tests/data/parser/parseLock2.out index f943c3570..241b76f30 100644 --- a/tests/data/parser/parseLock2.out +++ b/tests/data/parser/parseLock2.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS `t1` READ;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS `t1` READ;", "len": 32, "last": 32, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -112,30 +146,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 31 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -164,9 +202,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLock3.out b/tests/data/parser/parseLock3.out index 18ec9d007..c58f70759 100644 --- a/tests/data/parser/parseLock3.out +++ b/tests/data/parser/parseLock3.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS `t1` LOW_PRIORITY WRITE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS `t1` LOW_PRIORITY WRITE;", "len": 46, "last": 46, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 15, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -121,7 +157,9 @@ "token": "WRITE", "value": "WRITE", "keyword": "WRITE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -130,30 +168,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 45 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@20" + }, "flags": 0, "position": null } - ], - "count": 15, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -182,9 +224,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLock4.out b/tests/data/parser/parseLock4.out index 111190800..da68df61c 100644 --- a/tests/data/parser/parseLock4.out +++ b/tests/data/parser/parseLock4.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS `t1` WRITE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS `t1` WRITE;", "len": 33, "last": 33, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "WRITE", "value": "WRITE", "keyword": "WRITE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -112,30 +146,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 32 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -164,9 +202,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLock5.out b/tests/data/parser/parseLock5.out index cdd97dce1..0c7fb12cb 100644 --- a/tests/data/parser/parseLock5.out +++ b/tests/data/parser/parseLock5.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS `t1` READ LOCAL, table2 AS `t2` WRITE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS `t1` READ LOCAL, table2 AS `t2` WRITE;", "len": 60, "last": 60, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 32 }, @@ -130,7 +168,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 37 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -148,7 +192,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 39 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -166,7 +214,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -184,7 +236,9 @@ "token": "`t2`", "value": "t2", "keyword": null, - "type": 8, + "type": { + "@type": "@14" + }, "flags": 2, "position": 49 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -202,7 +258,9 @@ "token": "WRITE", "value": "WRITE", "keyword": "WRITE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 54 }, @@ -211,30 +269,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 59 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@30" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -277,9 +339,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLock6.out b/tests/data/parser/parseLock6.out index b3070a2a3..5de30c781 100644 --- a/tests/data/parser/parseLock6.out +++ b/tests/data/parser/parseLock6.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 READ LOCAL, table2 AS `t2` WRITE;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 READ LOCAL, table2 AS `t2` WRITE;", "len": 52, "last": 52, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 24 }, @@ -94,7 +122,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 29 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -112,7 +146,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -130,7 +168,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -148,7 +190,11 @@ "token": "`t2`", "value": "t2", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 41 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -166,7 +214,9 @@ "token": "WRITE", "value": "WRITE", "keyword": "WRITE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -175,30 +225,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 51 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@26" + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -241,9 +295,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseLockErr1.out b/tests/data/parser/parseLockErr1.out index 3df2f32e6..753a1779f 100644 --- a/tests/data/parser/parseLockErr1.out +++ b/tests/data/parser/parseLockErr1.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1", "len": 18, "last": 18, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,30 +65,36 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -101,9 +123,7 @@ "last": 5 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -111,7 +131,7 @@ [ "Unexpected end of LOCK expression.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseLockErr10.out b/tests/data/parser/parseLockErr10.out index 4ab018920..4462585eb 100644 --- a/tests/data/parser/parseLockErr10.out +++ b/tests/data/parser/parseLockErr10.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS table1 LOW_PRIORITY WRITE abc", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS table1 LOW_PRIORITY WRITE abc", "len": 51, "last": 51, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +133,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -121,7 +155,9 @@ "token": "WRITE", "value": "WRITE", "keyword": "WRITE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -139,30 +177,34 @@ "token": "abc", "value": "abc", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 48 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -191,9 +233,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -201,7 +241,7 @@ [ "Unexpected token.", { - "@type": "@16" + "@type": "@19" }, 0 ] diff --git a/tests/data/parser/parseLockErr2.out b/tests/data/parser/parseLockErr2.out index 1db477b2b..8421b4bc3 100644 --- a/tests/data/parser/parseLockErr2.out +++ b/tests/data/parser/parseLockErr2.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS `t1` LOCAL", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS `t1` LOCAL", "len": 32, "last": 32, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "`t1`", "value": "t1", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,30 +135,34 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 27 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -155,9 +191,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -165,14 +199,14 @@ [ "An alias was previously found.", { - "@type": "@12" + "@type": "@16" }, 0 ], [ "Unexpected keyword.", { - "@type": "@12" + "@type": "@16" }, 0 ], diff --git a/tests/data/parser/parseLockErr3.out b/tests/data/parser/parseLockErr3.out index 7ac845814..e5419ed7e 100644 --- a/tests/data/parser/parseLockErr3.out +++ b/tests/data/parser/parseLockErr3.out @@ -2,18 +2,26 @@ "query": "-- TABLES misspelled\nLOCK TABLE table1 AS t1 READ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- TABLES misspelled\nLOCK TABLE table1 AS t1 READ", "len": 49, "last": 49, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 15, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- TABLES misspelled", "value": "-- TABLES misspelled", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 20 }, @@ -31,7 +43,11 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 21 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -49,7 +67,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 26 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -67,7 +89,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 32 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -85,7 +113,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 39 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -103,7 +135,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 42 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -121,30 +157,34 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 45 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 15 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -158,9 +198,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -168,21 +206,21 @@ [ "Unexpected keyword.", { - "@type": "@6" + "@type": "@9" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@8" + "@type": "@11" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@10" + "@type": "@14" }, 0 ] diff --git a/tests/data/parser/parseLockErr4.out b/tests/data/parser/parseLockErr4.out index c6ae535ae..563bd9915 100644 --- a/tests/data/parser/parseLockErr4.out +++ b/tests/data/parser/parseLockErr4.out @@ -2,18 +2,26 @@ "query": "-- missing TABLES keyword\nLOCK table1 READ LOCAL", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- missing TABLES keyword\nLOCK table1 READ LOCAL", "len": 48, "last": 48, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- missing TABLES keyword", "value": "-- missing TABLES keyword", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 25 }, @@ -31,7 +43,11 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 26 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -49,7 +67,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 31 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -67,7 +91,9 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 38 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -85,30 +113,34 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 43 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -122,9 +154,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -132,14 +162,14 @@ [ "Unexpected token.", { - "@type": "@6" + "@type": "@9" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@8" + "@type": "@12" }, 0 ] diff --git a/tests/data/parser/parseLockErr5.out b/tests/data/parser/parseLockErr5.out index de0cb8b10..2313592e7 100644 --- a/tests/data/parser/parseLockErr5.out +++ b/tests/data/parser/parseLockErr5.out @@ -2,18 +2,26 @@ "query": "-- extraneous comma\nLOCK TABLES table1 READ LOCAL,", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- extraneous comma\nLOCK TABLES table1 READ LOCAL,", "len": 50, "last": 50, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- extraneous comma", "value": "-- extraneous comma", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 19 }, @@ -31,7 +43,11 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 20 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -49,7 +67,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 25 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -67,7 +89,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 32 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -85,7 +113,9 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 39 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +135,9 @@ "token": "LOCAL", "value": "LOCAL", "keyword": "LOCAL", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 44 }, @@ -112,30 +146,36 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 49 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -164,9 +204,7 @@ "last": 12 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -174,7 +212,7 @@ [ "Unexpected end of LOCK statement.", { - "@type": "@13" + "@type": "@17" }, 0 ] diff --git a/tests/data/parser/parseLockErr6.out b/tests/data/parser/parseLockErr6.out index 274786d19..bb965d089 100644 --- a/tests/data/parser/parseLockErr6.out +++ b/tests/data/parser/parseLockErr6.out @@ -2,18 +2,26 @@ "query": "-- missing lock type\nLOCK TABLES table1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- missing lock type\nLOCK TABLES table1", "len": 39, "last": 39, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- missing lock type", "value": "-- missing lock type", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 20 }, @@ -31,7 +43,11 @@ "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 21 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -49,7 +67,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 1, "position": 26 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -67,30 +89,36 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 33 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -119,9 +147,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -129,7 +155,7 @@ [ "Unexpected end of LOCK expression.", { - "@type": "@8" + "@type": "@11" }, 0 ] diff --git a/tests/data/parser/parseLockErr7.out b/tests/data/parser/parseLockErr7.out index 4ba9c814c..54c20b9d0 100644 --- a/tests/data/parser/parseLockErr7.out +++ b/tests/data/parser/parseLockErr7.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS table1 non_keyword", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS table1 non_keyword", "len": 40, "last": 40, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,30 +133,34 @@ "token": "non_keyword", "value": "non_keyword", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 29 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -155,9 +189,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -165,14 +197,14 @@ [ "An alias was previously found.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unexpected token.", { - "@type": "@12" + "@type": "@15" }, 0 ], diff --git a/tests/data/parser/parseLockErr8.out b/tests/data/parser/parseLockErr8.out index d2cfaf66b..53b6b10c6 100644 --- a/tests/data/parser/parseLockErr8.out +++ b/tests/data/parser/parseLockErr8.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS table1 READ AUTO_INCREMENT", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS table1 READ AUTO_INCREMENT", "len": 48, "last": 48, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +133,9 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,30 +155,34 @@ "token": "AUTO_INCREMENT", "value": "AUTO_INCREMENT", "keyword": "AUTO_INCREMENT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 34 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -173,9 +211,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -183,7 +219,7 @@ [ "Unexpected keyword.", { - "@type": "@14" + "@type": "@17" }, 0 ] diff --git a/tests/data/parser/parseLockErr9.out b/tests/data/parser/parseLockErr9.out index 873b3b4c0..d66100428 100644 --- a/tests/data/parser/parseLockErr9.out +++ b/tests/data/parser/parseLockErr9.out @@ -2,18 +2,26 @@ "query": "LOCK TABLES table1 AS table1 LOW_PRIORITY READ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "LOCK TABLES table1 AS table1 LOW_PRIORITY READ", "len": 46, "last": 46, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "LOCK", "value": "LOCK", "keyword": "LOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 5 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 22 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +133,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -121,30 +155,34 @@ "token": "READ", "value": "READ", "keyword": "READ", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -173,9 +211,7 @@ "last": 13 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -183,14 +219,14 @@ [ "Unexpected keyword.", { - "@type": "@14" + "@type": "@17" }, 0 ], [ "Unexpected end of LOCK expression.", { - "@type": "@12" + "@type": "@15" }, 0 ] diff --git a/tests/data/parser/parsePurge.out b/tests/data/parser/parsePurge.out index 6cb679aac..be7cc1ca2 100644 --- a/tests/data/parser/parsePurge.out +++ b/tests/data/parser/parsePurge.out @@ -2,18 +2,26 @@ "query": "PURGE BINARY LOGS TO 'mysql-bin.010';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "PURGE BINARY LOGS TO 'mysql-bin.010';", "len": 37, "last": 37, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "PURGE", "value": "PURGE", "keyword": "PURGE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "BINARY", "value": "BINARY", "keyword": "BINARY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "LOGS", "value": "LOGS", "keyword": "LOGS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +109,11 @@ "token": "'mysql-bin.010'", "value": "mysql-bin.010", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 21 }, @@ -94,39 +122,43 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 36 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement", - "log_type": "BINARY", - "end_option": "TO", - "end_expr": { + "logType": "BINARY", + "endOption": "TO", + "endExpr": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -141,9 +173,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parsePurge2.out b/tests/data/parser/parsePurge2.out index e9a48d490..3400ae3d6 100644 --- a/tests/data/parser/parsePurge2.out +++ b/tests/data/parser/parsePurge2.out @@ -2,18 +2,26 @@ "query": "PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';", "len": 47, "last": 47, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "PURGE", "value": "PURGE", "keyword": "PURGE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "BINARY", "value": "BINARY", "keyword": "BINARY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "LOGS", "value": "LOGS", "keyword": "LOGS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,9 @@ "token": "BEFORE", "value": "BEFORE", "keyword": "BEFORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +109,11 @@ "token": "'2008-04-02 22:46:26'", "value": "2008-04-02 22:46:26", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 25 }, @@ -94,39 +122,43 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 46 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement", - "log_type": "BINARY", - "end_option": "BEFORE", - "end_expr": { + "logType": "BINARY", + "endOption": "BEFORE", + "endExpr": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -141,9 +173,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parsePurge3.out b/tests/data/parser/parsePurge3.out index 800042d5a..53ae9aa4a 100644 --- a/tests/data/parser/parsePurge3.out +++ b/tests/data/parser/parsePurge3.out @@ -2,18 +2,26 @@ "query": "PURGE MASTER LOGS BEFORE '2008-04-02 22:46:26';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "PURGE MASTER LOGS BEFORE '2008-04-02 22:46:26';", "len": 47, "last": 47, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "PURGE", "value": "PURGE", "keyword": "PURGE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "MASTER", "value": "MASTER", "keyword": "MASTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "LOGS", "value": "LOGS", "keyword": "LOGS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,9 @@ "token": "BEFORE", "value": "BEFORE", "keyword": "BEFORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +109,11 @@ "token": "'2008-04-02 22:46:26'", "value": "2008-04-02 22:46:26", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 25 }, @@ -94,39 +122,43 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 46 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement", - "log_type": "MASTER", - "end_option": "BEFORE", - "end_expr": { + "logType": "MASTER", + "endOption": "BEFORE", + "endExpr": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -141,9 +173,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parsePurge4.out b/tests/data/parser/parsePurge4.out index 04eca917d..233d41a8d 100644 --- a/tests/data/parser/parsePurge4.out +++ b/tests/data/parser/parsePurge4.out @@ -2,18 +2,26 @@ "query": "PURGE MASTER LOGS TO 'mysql-bin.010';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "PURGE MASTER LOGS TO 'mysql-bin.010';", "len": 37, "last": 37, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "PURGE", "value": "PURGE", "keyword": "PURGE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "MASTER", "value": "MASTER", "keyword": "MASTER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "LOGS", "value": "LOGS", "keyword": "LOGS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +109,11 @@ "token": "'mysql-bin.010'", "value": "mysql-bin.010", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 21 }, @@ -94,39 +122,43 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 36 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@15" + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement", - "log_type": "MASTER", - "end_option": "TO", - "end_expr": { + "logType": "MASTER", + "endOption": "TO", + "endExpr": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -141,9 +173,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parsePurgeErr.out b/tests/data/parser/parsePurgeErr.out index eefbc11e0..8b8118773 100644 --- a/tests/data/parser/parsePurgeErr.out +++ b/tests/data/parser/parsePurgeErr.out @@ -2,18 +2,26 @@ "query": "PURGE LOGS TO 'mysql-bin.010';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "PURGE LOGS TO 'mysql-bin.010';", "len": 30, "last": 30, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "PURGE", "value": "PURGE", "keyword": "PURGE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "LOGS", "value": "LOGS", "keyword": "LOGS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 11 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +87,11 @@ "token": "'mysql-bin.010'", "value": "mysql-bin.010", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 14 }, @@ -76,47 +100,49 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 29 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement", - "log_type": null, - "end_option": null, - "end_expr": null, + "logType": null, + "endOption": null, + "endExpr": null, "options": null, "first": 0, "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -124,28 +150,28 @@ [ "Unexpected keyword", { - "@type": "@4" + "@type": "@6" }, 0 ], [ "Unexpected keyword", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "Unexpected token.", { - "@type": "@8" + "@type": "@10" }, 0 ], [ "Unexpected token.", { - "@type": "@8" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parsePurgeErr2.out b/tests/data/parser/parsePurgeErr2.out index 977c2a0b3..664161bba 100644 --- a/tests/data/parser/parsePurgeErr2.out +++ b/tests/data/parser/parsePurgeErr2.out @@ -2,18 +2,26 @@ "query": "PURGE BINARY LOGS INTO;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "PURGE BINARY LOGS INTO;", "len": 23, "last": 23, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "PURGE", "value": "PURGE", "keyword": "PURGE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "BINARY", "value": "BINARY", "keyword": "BINARY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "LOGS", "value": "LOGS", "keyword": "LOGS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,47 +98,49 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 22 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@12" + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement", - "log_type": "BINARY", - "end_option": null, - "end_expr": null, + "logType": "BINARY", + "endOption": null, + "endExpr": null, "options": null, "first": 0, "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -124,14 +148,14 @@ [ "Unexpected keyword", { - "@type": "@8" + "@type": "@10" }, 0 ], [ "Unexpected token.", { - "@type": "@8" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parsePurgeErr3.out b/tests/data/parser/parsePurgeErr3.out index f9c044301..5563918d9 100644 --- a/tests/data/parser/parsePurgeErr3.out +++ b/tests/data/parser/parsePurgeErr3.out @@ -2,18 +2,26 @@ "query": "PURGE BINARY LOGS TO 'mysql.bin' INTO;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "PURGE BINARY LOGS TO 'mysql.bin' INTO;", "len": 38, "last": 38, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "PURGE", "value": "PURGE", "keyword": "PURGE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,9 @@ "token": "BINARY", "value": "BINARY", "keyword": "BINARY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 6 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "LOGS", "value": "LOGS", "keyword": "LOGS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +87,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +109,11 @@ "token": "'mysql.bin'", "value": "mysql.bin", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 21 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -112,39 +144,43 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 37 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@17" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [ { "@type": "PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement", - "log_type": "BINARY", - "end_option": "TO", - "end_expr": { + "logType": "BINARY", + "endOption": "TO", + "endExpr": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -159,9 +195,7 @@ "last": 11 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -169,14 +203,14 @@ [ "Unexpected token.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unexpected token.", { - "@type": "@12" + "@type": "@15" }, 0 ] diff --git a/tests/data/parser/parseRename.out b/tests/data/parser/parseRename.out index 2ace05c3b..0ea7038ee 100644 --- a/tests/data/parser/parseRename.out +++ b/tests/data/parser/parseRename.out @@ -2,18 +2,26 @@ "query": "RENAME TABLE foo TO bar", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RENAME TABLE foo TO bar", "len": 23, "last": 23, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,30 +111,34 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 20 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -145,9 +175,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseRename2.out b/tests/data/parser/parseRename2.out index 4bf0b715a..d3b39b881 100644 --- a/tests/data/parser/parseRename2.out +++ b/tests/data/parser/parseRename2.out @@ -2,18 +2,26 @@ "query": "RENAME TABLE foo TO bar, baz TO qux;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RENAME TABLE foo TO bar, baz TO qux;", "len": 36, "last": 36, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +111,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 20 }, @@ -94,7 +122,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 23 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -112,7 +146,9 @@ "token": "baz", "value": "baz", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 25 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -130,7 +168,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -148,7 +190,9 @@ "token": "qux", "value": "qux", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 32 }, @@ -157,30 +201,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 35 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@23" + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -240,9 +288,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseRenameErr1.out b/tests/data/parser/parseRenameErr1.out index e5aa1b906..1be57eaab 100644 --- a/tests/data/parser/parseRenameErr1.out +++ b/tests/data/parser/parseRenameErr1.out @@ -2,18 +2,26 @@ "query": "RENAME TABLE a TO TO", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RENAME TABLE a TO TO", "len": 20, "last": 20, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +89,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -85,30 +111,34 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -136,9 +166,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -146,7 +174,7 @@ [ "The new name of the table was expected.", { - "@type": "@10" + "@type": "@13" }, 0 ] diff --git a/tests/data/parser/parseRenameErr2.out b/tests/data/parser/parseRenameErr2.out index cec2758b2..cbcbe0e39 100644 --- a/tests/data/parser/parseRenameErr2.out +++ b/tests/data/parser/parseRenameErr2.out @@ -2,18 +2,26 @@ "query": "RENAME TABLE TABLE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RENAME TABLE TABLE", "len": 18, "last": 18, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,30 +65,34 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -85,9 +105,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -95,14 +113,14 @@ [ "The old name of the table was expected.", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "A rename operation was expected.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseRenameErr3.out b/tests/data/parser/parseRenameErr3.out index 01d446bcd..d93db1cd9 100644 --- a/tests/data/parser/parseRenameErr3.out +++ b/tests/data/parser/parseRenameErr3.out @@ -2,18 +2,26 @@ "query": "RENAME TABLE a FROM", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RENAME TABLE a FROM", "len": 19, "last": 19, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,30 +89,34 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -119,9 +145,7 @@ "from": [] } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -129,21 +153,21 @@ [ "Keyword \"TO\" was expected.", { - "@type": "@8" + "@type": "@11" }, 0 ], [ "A rename operation was expected.", { - "@type": "@7" + "@type": "@10" }, 0 ], [ "An expression was expected.", { - "@type": "@9" + "@type": "@12" }, 0 ] diff --git a/tests/data/parser/parseRenameErr4.out b/tests/data/parser/parseRenameErr4.out index 04325a75d..27eef2790 100644 --- a/tests/data/parser/parseRenameErr4.out +++ b/tests/data/parser/parseRenameErr4.out @@ -2,18 +2,26 @@ "query": "RENAME TABLE foo TO bar TO", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RENAME TABLE foo TO bar TO", "len": 26, "last": 26, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +111,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 20 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -103,30 +133,34 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -163,9 +197,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -173,7 +205,7 @@ [ "Unrecognized keyword.", { - "@type": "@12" + "@type": "@15" }, 0 ] diff --git a/tests/data/parser/parseRenameErr5.out b/tests/data/parser/parseRenameErr5.out index 2d8271799..7f0b8e429 100644 --- a/tests/data/parser/parseRenameErr5.out +++ b/tests/data/parser/parseRenameErr5.out @@ -2,18 +2,26 @@ "query": "RENAME\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RENAME\n", "len": 7, "last": 7, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 3, + "idx": 4, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RENAME", "value": "RENAME", "keyword": "RENAME", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,30 +30,36 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 3, - "idx": 4 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -58,9 +72,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseReplace.out b/tests/data/parser/parseReplace.out index 649d56fbb..adcfece43 100644 --- a/tests/data/parser/parseReplace.out +++ b/tests/data/parser/parseReplace.out @@ -2,18 +2,26 @@ "query": "REPLACE LOW_PRIORITY\nINTO users(id, username)\nVALUES (1, 'Foo'), (2, 'Bar')", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE LOW_PRIORITY\nINTO users(id, username)\nVALUES (1, 'Foo'), (2, 'Bar')", "len": 75, "last": 75, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 31, + "idx": 31, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -49,7 +65,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +87,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 26 }, @@ -76,7 +100,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 31 }, @@ -85,7 +113,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 32 }, @@ -94,7 +124,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 34 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -112,7 +146,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 36 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 44 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +179,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 46 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 53 }, @@ -166,7 +212,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 54 }, @@ -175,7 +225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 55 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -193,7 +247,11 @@ "token": "'Foo'", "value": "Foo", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 57 }, @@ -202,7 +260,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 62 }, @@ -211,7 +271,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 63 }, @@ -220,7 +282,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -229,7 +293,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 65 }, @@ -238,7 +304,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@24" + }, "flags": 0, "position": 66 }, @@ -247,7 +315,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 67 }, @@ -256,7 +326,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -265,7 +337,9 @@ "token": "'Bar'", "value": "Bar", "keyword": null, - "type": 7, + "type": { + "@type": "@28" + }, "flags": 1, "position": 69 }, @@ -274,30 +348,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 74 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 31, - "idx": 31 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -322,9 +400,9 @@ "username" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -362,9 +440,7 @@ "last": 29 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseReplace2.out b/tests/data/parser/parseReplace2.out index 3b1daf819..b479a669b 100644 --- a/tests/data/parser/parseReplace2.out +++ b/tests/data/parser/parseReplace2.out @@ -2,18 +2,26 @@ "query": "REPLACE LOW_PRIORITY\nINTO users\nSET id = 1,\n username = 'Bar';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE LOW_PRIORITY\nINTO users\nSET id = 1,\n username = 'Bar';", "len": 65, "last": 65, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -49,7 +65,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +87,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 26 }, @@ -76,7 +100,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -85,7 +111,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 32 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +133,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 36 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -121,7 +155,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 39 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -139,7 +179,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -148,7 +192,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 42 }, @@ -157,7 +203,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -166,7 +214,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 48 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -184,7 +236,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 2, "position": 57 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -202,7 +258,11 @@ "token": "'Bar'", "value": "Bar", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 59 }, @@ -211,30 +271,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 64 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -256,9 +320,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": [ @@ -284,9 +348,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseReplaceErr.out b/tests/data/parser/parseReplaceErr.out index 4a8185769..46b941187 100644 --- a/tests/data/parser/parseReplaceErr.out +++ b/tests/data/parser/parseReplaceErr.out @@ -2,18 +2,26 @@ "query": "REPLACE LOW_PRIORITY\nINTO users(id, username)\n(1, 'Foo'), (2, 'Bar')", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE LOW_PRIORITY\nINTO users(id, username)\n(1, 'Foo'), (2, 'Bar')", "len": 68, "last": 68, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 29, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "LOW_PRIORITY", "value": "LOW_PRIORITY", "keyword": "LOW_PRIORITY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -49,7 +65,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -67,7 +87,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 26 }, @@ -76,7 +100,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 31 }, @@ -85,7 +113,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 32 }, @@ -94,7 +124,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 34 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -112,7 +146,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@11" + }, "flags": 0, "position": 36 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 44 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +179,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 46 }, @@ -148,7 +190,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 47 }, @@ -157,7 +203,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 48 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -175,7 +225,11 @@ "token": "'Foo'", "value": "Foo", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 50 }, @@ -184,7 +238,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 55 }, @@ -193,7 +249,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 56 }, @@ -202,7 +260,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -211,7 +271,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 58 }, @@ -220,7 +282,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@22" + }, "flags": 0, "position": 59 }, @@ -229,7 +293,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 60 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -247,7 +315,9 @@ "token": "'Bar'", "value": "Bar", "keyword": null, - "type": 7, + "type": { + "@type": "@26" + }, "flags": 1, "position": 62 }, @@ -256,30 +326,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 67 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 29 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -304,9 +378,9 @@ "username" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -321,9 +395,7 @@ "last": 13 } ], - "brackets": 2, - "strict": false, - "errors": [] + "brackets": 2 }, "errors": { "lexer": [], @@ -331,35 +403,35 @@ [ "Unexpected token.", { - "@type": "@16" + "@type": "@20" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@17" + "@type": "@21" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@20" + "@type": "@25" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@25" + "@type": "@31" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@28" + "@type": "@34" }, 0 ] diff --git a/tests/data/parser/parseReplaceErr2.out b/tests/data/parser/parseReplaceErr2.out index 0eabb06e1..413e9ebdd 100644 --- a/tests/data/parser/parseReplaceErr2.out +++ b/tests/data/parser/parseReplaceErr2.out @@ -2,18 +2,26 @@ "query": "REPLACE SELECT\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE SELECT\n", "len": 15, "last": 15, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,30 +54,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -85,11 +103,11 @@ "@type": "PhpMyAdmin\\SqlParser\\Statements\\SelectStatement", "expr": [], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -97,7 +115,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -106,9 +124,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -116,14 +132,14 @@ [ "Unexpected keyword.", { - "@type": "@4" + "@type": "@6" }, 0 ], [ "An expression was expected.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseReplaceErr3.out b/tests/data/parser/parseReplaceErr3.out index f1777463b..c60a9ab49 100644 --- a/tests/data/parser/parseReplaceErr3.out +++ b/tests/data/parser/parseReplaceErr3.out @@ -2,18 +2,26 @@ "query": "REPLACE INTO x \"string\"\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE INTO x \"string\"\n\n", "len": 25, "last": 25, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "x", "value": "x", "keyword": "X", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +87,11 @@ "token": "\"string\"", "value": "string", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 15 }, @@ -76,30 +100,34 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -121,9 +149,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -136,9 +164,7 @@ "last": 5 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -146,14 +172,14 @@ [ "Unexpected token.", { - "@type": "@8" + "@type": "@10" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@8" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parseReplaceIntoErr.out b/tests/data/parser/parseReplaceIntoErr.out index 2499731bc..b117996c3 100644 --- a/tests/data/parser/parseReplaceIntoErr.out +++ b/tests/data/parser/parseReplaceIntoErr.out @@ -2,18 +2,26 @@ "query": "REPLACE INTO x INSERT\n\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE INTO x INSERT\n\n", "len": 23, "last": 23, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "x", "value": "x", "keyword": "X", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +87,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 15 }, @@ -76,30 +98,34 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -121,9 +147,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -151,9 +177,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -161,7 +185,7 @@ [ "Unexpected keyword.", { - "@type": "@8" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parseReplaceSelect.out b/tests/data/parser/parseReplaceSelect.out index 6786e14a1..d0d516dc7 100644 --- a/tests/data/parser/parseReplaceSelect.out +++ b/tests/data/parser/parseReplaceSelect.out @@ -2,18 +2,26 @@ "query": "REPLACE INTO `a` (`value`) SELECT value from `b`", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE INTO `a` (`value`) SELECT value from `b`", "len": 49, "last": 49, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 17 }, @@ -76,7 +102,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 18 }, @@ -85,7 +113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "value", "value": "value", "keyword": "VALUE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 34 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 41 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -157,30 +201,34 @@ "token": "`b`", "value": "b", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 46 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -204,9 +252,9 @@ "value" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -236,11 +284,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -248,7 +296,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -264,9 +312,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseReplaceSet.out b/tests/data/parser/parseReplaceSet.out index 2bf3b17ab..e52e7654e 100644 --- a/tests/data/parser/parseReplaceSet.out +++ b/tests/data/parser/parseReplaceSet.out @@ -2,18 +2,26 @@ "query": "REPLACE INTO `a` (`value`) SET value = '123'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE INTO `a` (`value`) SET value = '123'", "len": 44, "last": 44, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 17 }, @@ -76,7 +102,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 18 }, @@ -85,7 +113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -121,7 +157,9 @@ "token": "value", "value": "value", "keyword": "VALUE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 31 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -139,7 +179,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 2, "position": 37 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -157,30 +201,36 @@ "token": "'123'", "value": "123", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 39 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -204,9 +254,9 @@ "value" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": [ @@ -225,9 +275,7 @@ "last": 16 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseReplaceValues.out b/tests/data/parser/parseReplaceValues.out index 8ecc2fc89..39eea591e 100644 --- a/tests/data/parser/parseReplaceValues.out +++ b/tests/data/parser/parseReplaceValues.out @@ -2,18 +2,26 @@ "query": "REPLACE INTO `a` (`value`) VALUES ('123'), ('123')", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "REPLACE INTO `a` (`value`) VALUES ('123'), ('123')", "len": 50, "last": 50, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "REPLACE", "value": "REPLACE", "keyword": "REPLACE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,11 @@ "token": "`a`", "value": "a", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 13 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 17 }, @@ -76,7 +102,9 @@ "token": "`value`", "value": "value", "keyword": null, - "type": 8, + "type": { + "@type": "@9" + }, "flags": 2, "position": 18 }, @@ -85,7 +113,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 34 }, @@ -130,7 +168,11 @@ "token": "'123'", "value": "123", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 35 }, @@ -139,7 +181,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 40 }, @@ -148,7 +192,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 41 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -166,7 +214,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 43 }, @@ -175,7 +225,9 @@ "token": "'123'", "value": "123", "keyword": null, - "type": 7, + "type": { + "@type": "@20" + }, "flags": 1, "position": 44 }, @@ -184,30 +236,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@12" + }, "flags": 16, "position": 49 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -231,9 +287,9 @@ "value" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -265,9 +321,7 @@ "last": 19 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseRestore.out b/tests/data/parser/parseRestore.out index 36ef5f36a..8d8492811 100644 --- a/tests/data/parser/parseRestore.out +++ b/tests/data/parser/parseRestore.out @@ -2,18 +2,26 @@ "query": "RESTORE TABLE my_table FROM \"/path/to/backup/directory\"", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "RESTORE TABLE my_table FROM \"/path/to/backup/directory\"", "len": 55, "last": 55, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "RESTORE", "value": "RESTORE", "keyword": "RESTORE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 1, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -31,7 +43,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,11 @@ "token": "my_table", "value": "my_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +89,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,30 +111,36 @@ "token": "\"/path/to/backup/directory\"", "value": "/path/to/backup/directory", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 28 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -143,9 +175,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect.out b/tests/data/parser/parseSelect.out index bfa4822c4..9e5e14b05 100644 --- a/tests/data/parser/parseSelect.out +++ b/tests/data/parser/parseSelect.out @@ -2,18 +2,26 @@ "query": "SELECT ALL MAX_STATEMENT_TIME = 10\n 1 + 2 AS result,\n @idx,\n id,\n test.`users`.username AS `name`\nFROM\n `test`.users, posts\n PARTITION (p1, p2)\nWHERE\n id > 0\nORDER BY\n username DESC,\n id\nLIMIT 3 OFFSET 2;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT ALL MAX_STATEMENT_TIME = 10\n 1 + 2 AS result,\n @idx,\n id,\n test.`users`.username AS `name`\nFROM\n `test`.users, posts\n PARTITION (p1, p2)\nWHERE\n id > 0\nORDER BY\n username DESC,\n id\nLIMIT 3 OFFSET 2;", "len": 231, "last": 231, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 81, + "idx": 81, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "ALL", "value": "ALL", "keyword": "ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,9 @@ "token": "MAX_STATEMENT_TIME", "value": "MAX_STATEMENT_TIME", "keyword": "MAX_STATEMENT_TIME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 11 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -67,7 +87,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 30 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -85,7 +111,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 32 }, @@ -94,7 +124,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -103,7 +135,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@14" + }, "flags": 0, "position": 39 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -121,7 +157,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 1, "position": 41 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -139,7 +179,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@14" + }, "flags": 0, "position": 43 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -157,7 +201,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -175,7 +223,11 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 48 }, @@ -184,7 +236,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 54 }, @@ -193,7 +247,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +258,11 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 60 }, @@ -211,7 +271,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 64 }, @@ -220,7 +282,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -229,7 +293,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 70 }, @@ -238,7 +304,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 72 }, @@ -247,7 +315,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -256,7 +326,9 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 78 }, @@ -265,7 +337,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 82 }, @@ -274,7 +348,9 @@ "token": "`users`", "value": "users", "keyword": null, - "type": 8, + "type": { + "@type": "@29" + }, "flags": 2, "position": 83 }, @@ -283,7 +359,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 90 }, @@ -292,7 +370,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 91 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -310,7 +392,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 100 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -328,7 +414,9 @@ "token": "`name`", "value": "name", "keyword": null, - "type": 8, + "type": { + "@type": "@29" + }, "flags": 2, "position": 103 }, @@ -337,7 +425,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -346,7 +436,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 110 }, @@ -355,7 +447,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -364,7 +458,9 @@ "token": "`test`", "value": "test", "keyword": null, - "type": 8, + "type": { + "@type": "@29" + }, "flags": 2, "position": 119 }, @@ -373,7 +469,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 125 }, @@ -382,7 +480,9 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 126 }, @@ -391,7 +491,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 131 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -409,7 +513,9 @@ "token": "posts", "value": "posts", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 133 }, @@ -418,7 +524,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -427,7 +535,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 143 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -445,7 +557,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 153 }, @@ -454,7 +568,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 154 }, @@ -463,7 +579,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 156 }, @@ -472,7 +590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -481,7 +601,9 @@ "token": "p2", "value": "p2", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 158 }, @@ -490,7 +612,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 160 }, @@ -499,7 +623,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 161 }, @@ -508,7 +634,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 162 }, @@ -517,7 +645,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 167 }, @@ -526,7 +656,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 172 }, @@ -535,7 +667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -544,7 +678,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 175 }, @@ -553,7 +689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -562,7 +700,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@14" + }, "flags": 0, "position": 177 }, @@ -571,7 +711,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 178 }, @@ -580,7 +722,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 179 }, @@ -589,7 +733,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 187 }, @@ -598,7 +744,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 192 }, @@ -607,7 +755,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 200 }, @@ -616,7 +766,9 @@ "token": "DESC", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 201 }, @@ -625,7 +777,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 205 }, @@ -634,7 +788,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 206 }, @@ -643,7 +799,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 211 }, @@ -652,7 +810,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 213 }, @@ -661,7 +821,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 214 }, @@ -670,7 +832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 219 }, @@ -679,7 +843,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@14" + }, "flags": 0, "position": 220 }, @@ -688,7 +854,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 221 }, @@ -697,7 +865,9 @@ "token": "OFFSET", "value": "OFFSET", "keyword": "OFFSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 222 }, @@ -706,7 +876,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 228 }, @@ -715,7 +887,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@14" + }, "flags": 0, "position": 229 }, @@ -724,30 +898,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 230 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@88" + }, "flags": 0, "position": null } - ], - "count": 81, - "idx": 81 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -818,7 +996,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", "raw": [ @@ -837,11 +1015,14 @@ "id" ], "isOperator": false, - "expr": "id > 0" + "expr": "id > 0", + "leftOperand": "id", + "operator": ">", + "rightOperand": "0" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [ { @@ -856,7 +1037,11 @@ "function": null, "subquery": null }, - "type": "DESC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Desc", + "value": "DESC" + } }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderKeyword", @@ -870,7 +1055,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": { @@ -882,7 +1071,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -899,9 +1088,7 @@ "last": 78 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect10.out b/tests/data/parser/parseSelect10.out index 7b7623ee0..e8849ac86 100644 --- a/tests/data/parser/parseSelect10.out +++ b/tests/data/parser/parseSelect10.out @@ -2,18 +2,26 @@ "query": "SELECT my_column FROM my_table WHERE BINARY(my_column) != BINARY(UPPER(my_column))\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT my_column FROM my_table WHERE BINARY(my_column) != BINARY(UPPER(my_column))\n", "len": 83, "last": 83, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 26, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "my_column", "value": "my_column", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "my_table", "value": "my_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -85,7 +111,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 31 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -103,7 +133,9 @@ "token": "BINARY", "value": "BINARY", "keyword": "BINARY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 37 }, @@ -112,7 +144,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 43 }, @@ -121,7 +157,9 @@ "token": "my_column", "value": "my_column", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 53 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -148,7 +190,9 @@ "token": "!=", "value": "!=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 55 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -166,7 +212,9 @@ "token": "BINARY", "value": "BINARY", "keyword": "BINARY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 43, "position": 58 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 64 }, @@ -184,7 +234,9 @@ "token": "UPPER", "value": "UPPER", "keyword": "UPPER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 65 }, @@ -193,7 +245,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 70 }, @@ -202,7 +256,9 @@ "token": "my_column", "value": "my_column", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 71 }, @@ -211,7 +267,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 80 }, @@ -220,7 +278,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 81 }, @@ -229,30 +289,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 26 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -283,7 +347,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -293,11 +357,14 @@ "UPPER" ], "isOperator": false, - "expr": "BINARY(my_column) != BINARY(UPPER(my_column))" + "expr": "BINARY(my_column) != BINARY(UPPER(my_column))", + "leftOperand": "BINARY(my_column)", + "operator": "!=", + "rightOperand": "BINARY(UPPER(my_column))" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -305,7 +372,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -314,9 +381,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect11.out b/tests/data/parser/parseSelect11.out index f35c24919..14b5e630d 100644 --- a/tests/data/parser/parseSelect11.out +++ b/tests/data/parser/parseSelect11.out @@ -2,18 +2,26 @@ "query": "SELECT 1 AND NOT 1\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 1 AND NOT 1\n", "len": 19, "last": 19, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -67,7 +89,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -85,7 +111,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@7" + }, "flags": 0, "position": 17 }, @@ -94,30 +122,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 11, - "idx": 11 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -137,11 +169,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -149,7 +181,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -158,9 +190,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect12.out b/tests/data/parser/parseSelect12.out index 587a1e2a7..4b77610fb 100644 --- a/tests/data/parser/parseSelect12.out +++ b/tests/data/parser/parseSelect12.out @@ -2,18 +2,26 @@ "query": "SELECT NOT 1 AS test", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT NOT 1 AS test", "len": 20, "last": 20, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 13 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -85,30 +111,36 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 16 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,11 +160,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -140,7 +172,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -149,9 +181,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect13.out b/tests/data/parser/parseSelect13.out index 3e913e3c8..2699726bf 100644 --- a/tests/data/parser/parseSelect13.out +++ b/tests/data/parser/parseSelect13.out @@ -2,18 +2,26 @@ "query": "SELECT post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted, user.*, userfield.*, usertextfield.*, icon.title as icontitle, icon.iconpath, avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight, spamlog.postid AS spamlog_postid, deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason, editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline, editlog.reason AS edit_reason, editlog.hashistory, postparsed.pagetext_html, postparsed.hasimages, sigparsed.signatureparsed, sigparsed.hasimages AS sighasimages, sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid , post_icon_list.icon_id_list, post_icon_list.is_auto AS icon_is_auto, approvedlog.modid AS approvedmodid, approvedlog.dateline AS approveddateline, approvedlog.status AS approvedstatus, approvedlog.info AS approvedinfo, movedlog.modid AS movedmodid, movedlog.dateline AS moveddateline, movedlog.status AS movedstatus, movedlog.info AS movedinfo, ( SELECT useragent FROM session WHERE userid=post.userid AND lastactivity > 1644859580 ORDER BY lastactivity DESC LIMIT 1 ) AS useragent, IF ( user.userid IS NOT NULL, (SELECT COUNT(usernoteid) FROM usernote AS usernote WHERE usernote.userid=user.userid AND usernote.priority>=0), 0 ) AS usernotecount , deletionlog.dateline AS del_dateline, scheduled_approval.defer_time AS vbpmal_approval_defer_time, additional_user_data.last_year_message_count, additional_user_data.last_year_reputation, additional_user_data.last_year_groan_count, paid_post_activation.activation_id AS paid_post_activation_id, alm_Model_UserData.credits FROM post AS post LEFT JOIN user AS user ON(user.userid = post.userid) LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid) LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid) LEFT JOIN icon AS icon ON(icon.iconid = post.iconid) LEFT JOIN avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN customavatar AS customavatar ON(customavatar.userid = user.userid) LEFT JOIN spamlog AS spamlog ON(spamlog.postid = post.postid) LEFT JOIN deletionlog AS deletionlog ON(post.postid = deletionlog.primaryid AND deletionlog.type = 'post') LEFT JOIN editlog AS editlog ON(editlog.postid = post.postid) LEFT JOIN postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = 23 AND postparsed.languageid = 5) LEFT JOIN sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = 23 AND sigparsed.languageid = 5) LEFT JOIN sigpic AS sigpic ON(sigpic.userid = post.userid) LEFT JOIN vbppim_post_icon_list AS post_icon_list ON post_icon_list.post_id=post.postid LEFT JOIN vbpmal_log AS approvedlog ON (approvedlog.itemid=post.postid AND approvedlog.action='postapprove') LEFT JOIN vbpmal_log AS movedlog ON (movedlog.itemid=post.postid AND movedlog.action='postmove') LEFT JOIN vbpmal_scheduled_post_approval AS scheduled_approval ON scheduled_approval.post_id = post.postid LEFT JOIN vbpsmt_additional_user_data AS additional_user_data ON additional_user_data.userid=post.userid LEFT JOIN market_pp_post_activation_mapping AS paid_post_activation ON paid_post_activation.post_id = post.postid LEFT JOIN alm_Model_UserData AS alm_Model_UserData ON alm_Model_UserData.user_id=user.userid WHERE post.postid IN (0,3254399,3254508,3254743,3254817,3254969,3255328,3255582,3257603,3257873,3258126,3258150,3258254,3258272,3258311,3260767,3260770,3260776,3261180,3261263,3261317,3261318) ORDER BY post.dateline", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted, user.*, userfield.*, usertextfield.*, icon.title as icontitle, icon.iconpath, avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight, spamlog.postid AS spamlog_postid, deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason, editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline, editlog.reason AS edit_reason, editlog.hashistory, postparsed.pagetext_html, postparsed.hasimages, sigparsed.signatureparsed, sigparsed.hasimages AS sighasimages, sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid , post_icon_list.icon_id_list, post_icon_list.is_auto AS icon_is_auto, approvedlog.modid AS approvedmodid, approvedlog.dateline AS approveddateline, approvedlog.status AS approvedstatus, approvedlog.info AS approvedinfo, movedlog.modid AS movedmodid, movedlog.dateline AS moveddateline, movedlog.status AS movedstatus, movedlog.info AS movedinfo, ( SELECT useragent FROM session WHERE userid=post.userid AND lastactivity > 1644859580 ORDER BY lastactivity DESC LIMIT 1 ) AS useragent, IF ( user.userid IS NOT NULL, (SELECT COUNT(usernoteid) FROM usernote AS usernote WHERE usernote.userid=user.userid AND usernote.priority>=0), 0 ) AS usernotecount , deletionlog.dateline AS del_dateline, scheduled_approval.defer_time AS vbpmal_approval_defer_time, additional_user_data.last_year_message_count, additional_user_data.last_year_reputation, additional_user_data.last_year_groan_count, paid_post_activation.activation_id AS paid_post_activation_id, alm_Model_UserData.credits FROM post AS post LEFT JOIN user AS user ON(user.userid = post.userid) LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid) LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid) LEFT JOIN icon AS icon ON(icon.iconid = post.iconid) LEFT JOIN avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN customavatar AS customavatar ON(customavatar.userid = user.userid) LEFT JOIN spamlog AS spamlog ON(spamlog.postid = post.postid) LEFT JOIN deletionlog AS deletionlog ON(post.postid = deletionlog.primaryid AND deletionlog.type = 'post') LEFT JOIN editlog AS editlog ON(editlog.postid = post.postid) LEFT JOIN postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = 23 AND postparsed.languageid = 5) LEFT JOIN sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = 23 AND sigparsed.languageid = 5) LEFT JOIN sigpic AS sigpic ON(sigpic.userid = post.userid) LEFT JOIN vbppim_post_icon_list AS post_icon_list ON post_icon_list.post_id=post.postid LEFT JOIN vbpmal_log AS approvedlog ON (approvedlog.itemid=post.postid AND approvedlog.action='postapprove') LEFT JOIN vbpmal_log AS movedlog ON (movedlog.itemid=post.postid AND movedlog.action='postmove') LEFT JOIN vbpmal_scheduled_post_approval AS scheduled_approval ON scheduled_approval.post_id = post.postid LEFT JOIN vbpsmt_additional_user_data AS additional_user_data ON additional_user_data.userid=post.userid LEFT JOIN market_pp_post_activation_mapping AS paid_post_activation ON paid_post_activation.post_id = post.postid LEFT JOIN alm_Model_UserData AS alm_Model_UserData ON alm_Model_UserData.user_id=user.userid WHERE post.postid IN (0,3254399,3254508,3254743,3254817,3254969,3255328,3255582,3257603,3257873,3258126,3258150,3258254,3258272,3258311,3260767,3260770,3260776,3261180,3261263,3261317,3261318) ORDER BY post.dateline", "len": 3834, "last": 3834, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 1035, + "idx": 1035, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 11 }, @@ -49,7 +69,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 12 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 13 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 15 }, @@ -85,7 +113,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 19 }, @@ -94,7 +124,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 20 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -112,7 +146,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 29 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -130,7 +168,9 @@ "token": "postusername", "value": "postusername", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 32 }, @@ -139,7 +179,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 44 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -157,7 +201,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 46 }, @@ -166,7 +212,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 50 }, @@ -175,7 +223,9 @@ "token": "ipaddress", "value": "ipaddress", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 51 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -193,7 +245,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -211,7 +267,9 @@ "token": "ip", "value": "ip", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 64 }, @@ -220,7 +278,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 66 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -238,7 +300,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 68 }, @@ -247,7 +311,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 70 }, @@ -256,7 +322,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 71 }, @@ -265,7 +333,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 75 }, @@ -274,7 +344,9 @@ "token": "visible", "value": "visible", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 76 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -292,7 +366,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 84 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -310,7 +388,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 86 }, @@ -319,7 +401,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 87 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -337,7 +423,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 89 }, @@ -346,7 +434,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 90 }, @@ -355,7 +445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -364,7 +456,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 92 }, @@ -373,7 +467,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 93 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -391,7 +489,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 95 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -409,7 +511,9 @@ "token": "isdeleted", "value": "isdeleted", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 98 }, @@ -418,7 +522,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 107 }, @@ -427,7 +533,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -436,7 +544,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 109 }, @@ -445,7 +555,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 113 }, @@ -454,7 +566,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 114 }, @@ -463,7 +577,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 115 }, @@ -472,7 +588,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -481,7 +599,9 @@ "token": "userfield", "value": "userfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 117 }, @@ -490,7 +610,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 126 }, @@ -499,7 +621,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 127 }, @@ -508,7 +632,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 128 }, @@ -517,7 +643,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -526,7 +654,9 @@ "token": "usertextfield", "value": "usertextfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 130 }, @@ -535,7 +665,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 143 }, @@ -544,7 +676,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 144 }, @@ -553,7 +687,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 145 }, @@ -562,7 +698,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 146 }, @@ -571,7 +709,9 @@ "token": "icon", "value": "icon", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 147 }, @@ -580,7 +720,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 151 }, @@ -589,7 +731,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 152 }, @@ -598,7 +742,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -607,7 +753,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 158 }, @@ -616,7 +764,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -625,7 +775,9 @@ "token": "icontitle", "value": "icontitle", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 161 }, @@ -634,7 +786,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 170 }, @@ -643,7 +797,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -652,7 +808,9 @@ "token": "icon", "value": "icon", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 172 }, @@ -661,7 +819,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 176 }, @@ -670,7 +830,9 @@ "token": "iconpath", "value": "iconpath", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 177 }, @@ -679,7 +841,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 185 }, @@ -688,7 +852,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 186 }, @@ -697,7 +863,9 @@ "token": "avatar", "value": "avatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 187 }, @@ -706,7 +874,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 193 }, @@ -715,7 +885,9 @@ "token": "avatarpath", "value": "avatarpath", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 194 }, @@ -724,7 +896,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 204 }, @@ -733,7 +907,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 205 }, @@ -742,7 +918,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 206 }, @@ -751,7 +929,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 209 }, @@ -760,7 +940,9 @@ "token": "ISNULL", "value": "ISNULL", "keyword": "ISNULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 210 }, @@ -769,7 +951,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 216 }, @@ -778,7 +962,9 @@ "token": "customavatar", "value": "customavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 217 }, @@ -787,7 +973,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 229 }, @@ -796,7 +984,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 230 }, @@ -805,7 +995,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 236 }, @@ -814,7 +1006,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 237 }, @@ -823,7 +1017,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 238 }, @@ -832,7 +1028,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 240 }, @@ -841,7 +1039,9 @@ "token": "hascustomavatar", "value": "hascustomavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 241 }, @@ -850,7 +1050,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 256 }, @@ -859,7 +1061,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 257 }, @@ -868,7 +1072,9 @@ "token": "customavatar", "value": "customavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 258 }, @@ -877,7 +1083,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 270 }, @@ -886,7 +1094,9 @@ "token": "dateline", "value": "dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 271 }, @@ -895,7 +1105,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 279 }, @@ -904,7 +1116,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 280 }, @@ -913,7 +1127,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 282 }, @@ -922,7 +1138,9 @@ "token": "avatardateline", "value": "avatardateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 283 }, @@ -931,7 +1149,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 297 }, @@ -940,7 +1160,9 @@ "token": "customavatar", "value": "customavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 298 }, @@ -949,7 +1171,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 310 }, @@ -958,7 +1182,9 @@ "token": "width", "value": "width", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 311 }, @@ -967,7 +1193,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 316 }, @@ -976,7 +1204,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 317 }, @@ -985,7 +1215,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 319 }, @@ -994,7 +1226,9 @@ "token": "avwidth", "value": "avwidth", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 320 }, @@ -1003,7 +1237,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 327 }, @@ -1012,7 +1248,9 @@ "token": "customavatar", "value": "customavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 328 }, @@ -1021,7 +1259,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 340 }, @@ -1030,7 +1270,9 @@ "token": "height", "value": "height", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 341 }, @@ -1039,7 +1281,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 347 }, @@ -1048,7 +1292,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 348 }, @@ -1057,7 +1303,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 350 }, @@ -1066,7 +1314,9 @@ "token": "avheight", "value": "avheight", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 351 }, @@ -1075,7 +1325,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 359 }, @@ -1084,7 +1336,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 360 }, @@ -1093,7 +1347,9 @@ "token": "spamlog", "value": "spamlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 361 }, @@ -1102,7 +1358,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 368 }, @@ -1111,7 +1369,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 369 }, @@ -1120,7 +1380,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 375 }, @@ -1129,7 +1391,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 376 }, @@ -1138,7 +1402,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 378 }, @@ -1147,7 +1413,9 @@ "token": "spamlog_postid", "value": "spamlog_postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 379 }, @@ -1156,7 +1424,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 393 }, @@ -1165,7 +1435,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 394 }, @@ -1174,7 +1446,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 395 }, @@ -1183,7 +1457,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 406 }, @@ -1192,7 +1468,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 407 }, @@ -1201,7 +1479,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 413 }, @@ -1210,7 +1490,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 414 }, @@ -1219,7 +1501,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 416 }, @@ -1228,7 +1512,9 @@ "token": "del_userid", "value": "del_userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 417 }, @@ -1237,7 +1523,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 427 }, @@ -1246,7 +1534,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 428 }, @@ -1255,7 +1545,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 429 }, @@ -1264,7 +1556,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 440 }, @@ -1273,7 +1567,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 441 }, @@ -1282,7 +1578,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 449 }, @@ -1291,7 +1589,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 450 }, @@ -1300,7 +1600,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 452 }, @@ -1309,7 +1611,9 @@ "token": "del_username", "value": "del_username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 453 }, @@ -1318,7 +1622,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 465 }, @@ -1327,7 +1633,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 466 }, @@ -1336,7 +1644,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 467 }, @@ -1345,7 +1655,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 478 }, @@ -1354,7 +1666,9 @@ "token": "reason", "value": "reason", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 479 }, @@ -1363,7 +1677,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 485 }, @@ -1372,7 +1688,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 486 }, @@ -1381,7 +1699,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 488 }, @@ -1390,7 +1710,9 @@ "token": "del_reason", "value": "del_reason", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 489 }, @@ -1399,7 +1721,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 499 }, @@ -1408,7 +1732,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 500 }, @@ -1417,7 +1743,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 501 }, @@ -1426,7 +1754,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 508 }, @@ -1435,7 +1765,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 509 }, @@ -1444,7 +1776,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 515 }, @@ -1453,7 +1787,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 516 }, @@ -1462,7 +1798,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 518 }, @@ -1471,7 +1809,9 @@ "token": "edit_userid", "value": "edit_userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 519 }, @@ -1480,7 +1820,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 530 }, @@ -1489,7 +1831,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 531 }, @@ -1498,7 +1842,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 532 }, @@ -1507,7 +1853,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 539 }, @@ -1516,7 +1864,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 540 }, @@ -1525,7 +1875,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 548 }, @@ -1534,7 +1886,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 549 }, @@ -1543,7 +1897,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 551 }, @@ -1552,7 +1908,9 @@ "token": "edit_username", "value": "edit_username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 552 }, @@ -1561,7 +1919,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 565 }, @@ -1570,7 +1930,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 566 }, @@ -1579,7 +1941,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 567 }, @@ -1588,7 +1952,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 574 }, @@ -1597,7 +1963,9 @@ "token": "dateline", "value": "dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 575 }, @@ -1606,7 +1974,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 583 }, @@ -1615,7 +1985,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 584 }, @@ -1624,7 +1996,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 586 }, @@ -1633,7 +2007,9 @@ "token": "edit_dateline", "value": "edit_dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 587 }, @@ -1642,7 +2018,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 600 }, @@ -1651,7 +2029,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 601 }, @@ -1660,7 +2040,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 602 }, @@ -1669,7 +2051,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 609 }, @@ -1678,7 +2062,9 @@ "token": "reason", "value": "reason", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 610 }, @@ -1687,7 +2073,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 616 }, @@ -1696,7 +2084,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 617 }, @@ -1705,7 +2095,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 619 }, @@ -1714,7 +2106,9 @@ "token": "edit_reason", "value": "edit_reason", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 620 }, @@ -1723,7 +2117,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 631 }, @@ -1732,7 +2128,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 632 }, @@ -1741,7 +2139,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 633 }, @@ -1750,7 +2150,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 640 }, @@ -1759,7 +2161,9 @@ "token": "hashistory", "value": "hashistory", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 641 }, @@ -1768,7 +2172,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 651 }, @@ -1777,7 +2183,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 652 }, @@ -1786,7 +2194,9 @@ "token": "postparsed", "value": "postparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 653 }, @@ -1795,7 +2205,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 663 }, @@ -1804,7 +2216,9 @@ "token": "pagetext_html", "value": "pagetext_html", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 664 }, @@ -1813,7 +2227,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 677 }, @@ -1822,7 +2238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 678 }, @@ -1831,7 +2249,9 @@ "token": "postparsed", "value": "postparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 679 }, @@ -1840,7 +2260,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 689 }, @@ -1849,7 +2271,9 @@ "token": "hasimages", "value": "hasimages", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 690 }, @@ -1858,7 +2282,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 699 }, @@ -1867,7 +2293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 700 }, @@ -1876,7 +2304,9 @@ "token": "sigparsed", "value": "sigparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 701 }, @@ -1885,7 +2315,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 710 }, @@ -1894,7 +2326,9 @@ "token": "signatureparsed", "value": "signatureparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 711 }, @@ -1903,7 +2337,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 726 }, @@ -1912,7 +2348,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 727 }, @@ -1921,7 +2359,9 @@ "token": "sigparsed", "value": "sigparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 728 }, @@ -1930,7 +2370,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 737 }, @@ -1939,7 +2381,9 @@ "token": "hasimages", "value": "hasimages", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 738 }, @@ -1948,7 +2392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 747 }, @@ -1957,7 +2403,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 748 }, @@ -1966,7 +2414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 750 }, @@ -1975,7 +2425,9 @@ "token": "sighasimages", "value": "sighasimages", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 751 }, @@ -1984,7 +2436,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 763 }, @@ -1993,7 +2447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 764 }, @@ -2002,7 +2458,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 765 }, @@ -2011,7 +2469,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 771 }, @@ -2020,7 +2480,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 772 }, @@ -2029,7 +2491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 778 }, @@ -2038,7 +2502,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 779 }, @@ -2047,7 +2513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 781 }, @@ -2056,7 +2524,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 782 }, @@ -2065,7 +2535,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 788 }, @@ -2074,7 +2546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 789 }, @@ -2083,7 +2557,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 790 }, @@ -2092,7 +2568,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 796 }, @@ -2101,7 +2579,9 @@ "token": "dateline", "value": "dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 797 }, @@ -2110,7 +2590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 805 }, @@ -2119,7 +2601,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 806 }, @@ -2128,7 +2612,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 808 }, @@ -2137,7 +2623,9 @@ "token": "sigpicdateline", "value": "sigpicdateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 809 }, @@ -2146,7 +2634,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 823 }, @@ -2155,7 +2645,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 824 }, @@ -2164,7 +2656,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 825 }, @@ -2173,7 +2667,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 831 }, @@ -2182,7 +2678,9 @@ "token": "width", "value": "width", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 832 }, @@ -2191,7 +2689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 837 }, @@ -2200,7 +2700,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 838 }, @@ -2209,7 +2711,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 840 }, @@ -2218,7 +2722,9 @@ "token": "sigpicwidth", "value": "sigpicwidth", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 841 }, @@ -2227,7 +2733,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 852 }, @@ -2236,7 +2744,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 853 }, @@ -2245,7 +2755,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 854 }, @@ -2254,7 +2766,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 860 }, @@ -2263,7 +2777,9 @@ "token": "height", "value": "height", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 861 }, @@ -2272,7 +2788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 867 }, @@ -2281,7 +2799,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 868 }, @@ -2290,7 +2810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 870 }, @@ -2299,7 +2821,9 @@ "token": "sigpicheight", "value": "sigpicheight", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 871 }, @@ -2308,7 +2832,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 883 }, @@ -2317,7 +2843,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 884 }, @@ -2326,7 +2854,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 885 }, @@ -2335,7 +2865,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 887 }, @@ -2344,7 +2876,9 @@ "token": "displaygroupid", "value": "displaygroupid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 888 }, @@ -2353,7 +2887,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 902 }, @@ -2362,7 +2898,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 903 }, @@ -2371,7 +2909,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 904 }, @@ -2380,7 +2920,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 905 }, @@ -2389,7 +2931,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 906 }, @@ -2398,7 +2942,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 910 }, @@ -2407,7 +2953,9 @@ "token": "usergroupid", "value": "usergroupid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 911 }, @@ -2416,7 +2964,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 922 }, @@ -2425,7 +2975,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 923 }, @@ -2434,7 +2986,9 @@ "token": "displaygroupid", "value": "displaygroupid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 924 }, @@ -2443,7 +2997,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 938 }, @@ -2452,7 +3008,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 939 }, @@ -2461,7 +3019,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 940 }, @@ -2470,7 +3030,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 942 }, @@ -2479,7 +3041,9 @@ "token": "displaygroupid", "value": "displaygroupid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 943 }, @@ -2488,7 +3052,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 957 }, @@ -2497,7 +3063,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 958 }, @@ -2506,7 +3074,9 @@ "token": "infractiongroupid", "value": "infractiongroupid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 959 }, @@ -2515,7 +3085,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 976 }, @@ -2524,7 +3096,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 977 }, @@ -2533,7 +3107,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 978 }, @@ -2542,7 +3118,9 @@ "token": "post_icon_list", "value": "post_icon_list", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 979 }, @@ -2551,7 +3129,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 993 }, @@ -2560,7 +3140,9 @@ "token": "icon_id_list", "value": "icon_id_list", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 994 }, @@ -2569,7 +3151,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1006 }, @@ -2578,7 +3162,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1007 }, @@ -2587,7 +3173,9 @@ "token": "post_icon_list", "value": "post_icon_list", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1008 }, @@ -2596,7 +3184,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1022 }, @@ -2605,7 +3195,9 @@ "token": "is_auto", "value": "is_auto", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1023 }, @@ -2614,7 +3206,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1030 }, @@ -2623,7 +3217,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1031 }, @@ -2632,7 +3228,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1033 }, @@ -2641,7 +3239,9 @@ "token": "icon_is_auto", "value": "icon_is_auto", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1034 }, @@ -2650,7 +3250,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1046 }, @@ -2659,7 +3261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1047 }, @@ -2668,7 +3272,9 @@ "token": "approvedlog", "value": "approvedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1048 }, @@ -2677,7 +3283,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1059 }, @@ -2686,7 +3294,9 @@ "token": "modid", "value": "modid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1060 }, @@ -2695,7 +3305,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1065 }, @@ -2704,7 +3316,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1066 }, @@ -2713,7 +3327,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1068 }, @@ -2722,7 +3338,9 @@ "token": "approvedmodid", "value": "approvedmodid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1069 }, @@ -2731,7 +3349,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1082 }, @@ -2740,7 +3360,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1083 }, @@ -2749,7 +3371,9 @@ "token": "approvedlog", "value": "approvedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1084 }, @@ -2758,7 +3382,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1095 }, @@ -2767,7 +3393,9 @@ "token": "dateline", "value": "dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1096 }, @@ -2776,7 +3404,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1104 }, @@ -2785,7 +3415,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1105 }, @@ -2794,7 +3426,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1107 }, @@ -2803,7 +3437,9 @@ "token": "approveddateline", "value": "approveddateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1108 }, @@ -2812,7 +3448,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1124 }, @@ -2821,7 +3459,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1125 }, @@ -2830,7 +3470,9 @@ "token": "approvedlog", "value": "approvedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1126 }, @@ -2839,7 +3481,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1137 }, @@ -2848,7 +3492,9 @@ "token": "status", "value": "status", "keyword": "STATUS", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1138 }, @@ -2857,7 +3503,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1144 }, @@ -2866,7 +3514,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1145 }, @@ -2875,7 +3525,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1147 }, @@ -2884,7 +3536,9 @@ "token": "approvedstatus", "value": "approvedstatus", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1148 }, @@ -2893,7 +3547,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1162 }, @@ -2902,7 +3558,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1163 }, @@ -2911,7 +3569,9 @@ "token": "approvedlog", "value": "approvedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1164 }, @@ -2920,7 +3580,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1175 }, @@ -2929,7 +3591,9 @@ "token": "info", "value": "info", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1176 }, @@ -2938,7 +3602,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1180 }, @@ -2947,7 +3613,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1181 }, @@ -2956,7 +3624,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1183 }, @@ -2965,7 +3635,9 @@ "token": "approvedinfo", "value": "approvedinfo", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1184 }, @@ -2974,7 +3646,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1196 }, @@ -2983,7 +3657,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1197 }, @@ -2992,7 +3668,9 @@ "token": "movedlog", "value": "movedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1198 }, @@ -3001,7 +3679,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1206 }, @@ -3010,7 +3690,9 @@ "token": "modid", "value": "modid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1207 }, @@ -3019,7 +3701,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1212 }, @@ -3028,7 +3712,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1213 }, @@ -3037,7 +3723,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1215 }, @@ -3046,7 +3734,9 @@ "token": "movedmodid", "value": "movedmodid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1216 }, @@ -3055,7 +3745,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1226 }, @@ -3064,7 +3756,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1227 }, @@ -3073,7 +3767,9 @@ "token": "movedlog", "value": "movedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1228 }, @@ -3082,7 +3778,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1236 }, @@ -3091,7 +3789,9 @@ "token": "dateline", "value": "dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1237 }, @@ -3100,7 +3800,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1245 }, @@ -3109,7 +3811,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1246 }, @@ -3118,7 +3822,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1248 }, @@ -3127,7 +3833,9 @@ "token": "moveddateline", "value": "moveddateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1249 }, @@ -3136,7 +3844,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1262 }, @@ -3145,7 +3855,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1263 }, @@ -3154,7 +3866,9 @@ "token": "movedlog", "value": "movedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1264 }, @@ -3163,7 +3877,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1272 }, @@ -3172,7 +3888,9 @@ "token": "status", "value": "status", "keyword": "STATUS", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1273 }, @@ -3181,7 +3899,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1279 }, @@ -3190,7 +3910,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1280 }, @@ -3199,7 +3921,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1282 }, @@ -3208,7 +3932,9 @@ "token": "movedstatus", "value": "movedstatus", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1283 }, @@ -3217,7 +3943,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1294 }, @@ -3226,7 +3954,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1295 }, @@ -3235,7 +3965,9 @@ "token": "movedlog", "value": "movedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1296 }, @@ -3244,7 +3976,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1304 }, @@ -3253,7 +3987,9 @@ "token": "info", "value": "info", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1305 }, @@ -3262,7 +3998,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1309 }, @@ -3271,7 +4009,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1310 }, @@ -3280,7 +4020,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1312 }, @@ -3289,7 +4031,9 @@ "token": "movedinfo", "value": "movedinfo", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1313 }, @@ -3298,7 +4042,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1322 }, @@ -3307,7 +4053,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1323 }, @@ -3316,7 +4064,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1324 }, @@ -3325,7 +4075,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1325 }, @@ -3334,7 +4086,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1326 }, @@ -3343,7 +4097,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1332 }, @@ -3352,7 +4108,9 @@ "token": "useragent", "value": "useragent", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1333 }, @@ -3361,7 +4119,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1342 }, @@ -3370,7 +4130,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1343 }, @@ -3379,7 +4141,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1347 }, @@ -3388,7 +4152,9 @@ "token": "session", "value": "session", "keyword": "SESSION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 1348 }, @@ -3397,7 +4163,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1355 }, @@ -3406,7 +4174,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1356 }, @@ -3415,7 +4185,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1361 }, @@ -3424,7 +4196,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1362 }, @@ -3433,7 +4207,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 1368 }, @@ -3442,7 +4218,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1369 }, @@ -3451,7 +4229,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1373 }, @@ -3460,7 +4240,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1374 }, @@ -3469,7 +4251,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1380 }, @@ -3478,7 +4262,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1381 }, @@ -3487,7 +4273,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1384 }, @@ -3496,7 +4284,9 @@ "token": "lastactivity", "value": "lastactivity", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1385 }, @@ -3505,7 +4295,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1397 }, @@ -3514,7 +4306,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 1398 }, @@ -3523,7 +4317,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1399 }, @@ -3532,7 +4328,9 @@ "token": "1644859580", "value": 1644859580, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 1400 }, @@ -3541,7 +4339,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1410 }, @@ -3550,7 +4350,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 1411 }, @@ -3559,7 +4361,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1419 }, @@ -3568,7 +4372,9 @@ "token": "lastactivity", "value": "lastactivity", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1420 }, @@ -3577,7 +4383,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1432 }, @@ -3586,7 +4394,9 @@ "token": "DESC", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1433 }, @@ -3595,7 +4405,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1437 }, @@ -3604,7 +4416,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1438 }, @@ -3613,7 +4427,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1443 }, @@ -3622,7 +4438,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 1444 }, @@ -3631,7 +4449,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1445 }, @@ -3640,7 +4460,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1446 }, @@ -3649,7 +4471,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1447 }, @@ -3658,7 +4482,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1448 }, @@ -3667,7 +4493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1450 }, @@ -3676,7 +4504,9 @@ "token": "useragent", "value": "useragent", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1451 }, @@ -3685,7 +4515,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1460 }, @@ -3694,7 +4526,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1461 }, @@ -3703,7 +4537,9 @@ "token": "IF", "value": "IF", "keyword": "IF", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 1462 }, @@ -3712,7 +4548,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1464 }, @@ -3721,7 +4559,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1465 }, @@ -3730,7 +4570,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1466 }, @@ -3739,7 +4581,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1467 }, @@ -3748,7 +4592,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1471 }, @@ -3757,7 +4603,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1472 }, @@ -3766,7 +4614,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1478 }, @@ -3775,7 +4625,9 @@ "token": "IS", "value": "IS", "keyword": "IS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1479 }, @@ -3784,7 +4636,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1481 }, @@ -3793,7 +4647,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 1482 }, @@ -3802,7 +4658,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1490 }, @@ -3811,7 +4669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1491 }, @@ -3820,7 +4680,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1492 }, @@ -3829,7 +4691,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1493 }, @@ -3838,7 +4702,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1499 }, @@ -3847,7 +4713,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 1500 }, @@ -3856,7 +4724,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1505 }, @@ -3865,7 +4735,9 @@ "token": "usernoteid", "value": "usernoteid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1506 }, @@ -3874,7 +4746,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1516 }, @@ -3883,7 +4757,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1517 }, @@ -3892,7 +4768,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1518 }, @@ -3901,7 +4779,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1522 }, @@ -3910,7 +4790,9 @@ "token": "usernote", "value": "usernote", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1523 }, @@ -3919,7 +4801,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1531 }, @@ -3928,7 +4812,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1532 }, @@ -3937,7 +4823,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1534 }, @@ -3946,7 +4834,9 @@ "token": "usernote", "value": "usernote", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1535 }, @@ -3955,7 +4845,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1543 }, @@ -3964,7 +4856,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1544 }, @@ -3973,7 +4867,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1549 }, @@ -3982,7 +4878,9 @@ "token": "usernote", "value": "usernote", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1550 }, @@ -3991,7 +4889,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1558 }, @@ -4000,7 +4900,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1559 }, @@ -4009,7 +4911,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 1565 }, @@ -4018,7 +4922,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1566 }, @@ -4027,7 +4933,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1570 }, @@ -4036,7 +4944,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1571 }, @@ -4045,7 +4955,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1577 }, @@ -4054,7 +4966,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1578 }, @@ -4063,7 +4977,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1581 }, @@ -4072,7 +4988,9 @@ "token": "usernote", "value": "usernote", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1582 }, @@ -4081,7 +4999,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1590 }, @@ -4090,7 +5010,9 @@ "token": "priority", "value": "priority", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1591 }, @@ -4099,7 +5021,9 @@ "token": ">=", "value": ">=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 1599 }, @@ -4108,7 +5032,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 1601 }, @@ -4117,7 +5043,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1602 }, @@ -4126,7 +5054,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1603 }, @@ -4135,7 +5065,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1604 }, @@ -4144,7 +5076,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 1605 }, @@ -4153,7 +5087,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1606 }, @@ -4162,7 +5098,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1607 }, @@ -4171,7 +5109,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1608 }, @@ -4180,7 +5120,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1609 }, @@ -4189,7 +5131,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1611 }, @@ -4198,7 +5142,9 @@ "token": "usernotecount", "value": "usernotecount", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1612 }, @@ -4207,7 +5153,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1625 }, @@ -4216,7 +5164,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1626 }, @@ -4225,7 +5175,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1627 }, @@ -4234,7 +5186,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1628 }, @@ -4243,7 +5197,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1639 }, @@ -4252,7 +5208,9 @@ "token": "dateline", "value": "dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1640 }, @@ -4261,7 +5219,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1648 }, @@ -4270,7 +5230,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1649 }, @@ -4279,7 +5241,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1651 }, @@ -4288,7 +5252,9 @@ "token": "del_dateline", "value": "del_dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1652 }, @@ -4297,7 +5263,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1664 }, @@ -4306,7 +5274,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1665 }, @@ -4315,7 +5285,9 @@ "token": "scheduled_approval", "value": "scheduled_approval", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1666 }, @@ -4324,7 +5296,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1684 }, @@ -4333,7 +5307,9 @@ "token": "defer_time", "value": "defer_time", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1685 }, @@ -4342,7 +5318,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1695 }, @@ -4351,7 +5329,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1696 }, @@ -4360,7 +5340,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1698 }, @@ -4369,7 +5351,9 @@ "token": "vbpmal_approval_defer_time", "value": "vbpmal_approval_defer_time", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1699 }, @@ -4378,7 +5362,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1725 }, @@ -4387,7 +5373,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1726 }, @@ -4396,7 +5384,9 @@ "token": "additional_user_data", "value": "additional_user_data", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1727 }, @@ -4405,7 +5395,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1747 }, @@ -4414,7 +5406,9 @@ "token": "last_year_message_count", "value": "last_year_message_count", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1748 }, @@ -4423,7 +5417,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1771 }, @@ -4432,7 +5428,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1772 }, @@ -4441,7 +5439,9 @@ "token": "additional_user_data", "value": "additional_user_data", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1773 }, @@ -4450,7 +5450,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1793 }, @@ -4459,7 +5461,9 @@ "token": "last_year_reputation", "value": "last_year_reputation", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1794 }, @@ -4468,7 +5472,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1814 }, @@ -4477,7 +5483,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1815 }, @@ -4486,7 +5494,9 @@ "token": "additional_user_data", "value": "additional_user_data", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1816 }, @@ -4495,7 +5505,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1836 }, @@ -4504,7 +5516,9 @@ "token": "last_year_groan_count", "value": "last_year_groan_count", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1837 }, @@ -4513,7 +5527,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1858 }, @@ -4522,7 +5538,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1859 }, @@ -4531,7 +5549,9 @@ "token": "paid_post_activation", "value": "paid_post_activation", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1860 }, @@ -4540,7 +5560,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1880 }, @@ -4549,7 +5571,9 @@ "token": "activation_id", "value": "activation_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1881 }, @@ -4558,7 +5582,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1894 }, @@ -4567,7 +5593,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1895 }, @@ -4576,7 +5604,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1897 }, @@ -4585,7 +5615,9 @@ "token": "paid_post_activation_id", "value": "paid_post_activation_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1898 }, @@ -4594,7 +5626,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1921 }, @@ -4603,7 +5637,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1922 }, @@ -4612,7 +5648,9 @@ "token": "alm_Model_UserData", "value": "alm_Model_UserData", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1923 }, @@ -4621,7 +5659,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1941 }, @@ -4630,7 +5670,9 @@ "token": "credits", "value": "credits", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1942 }, @@ -4639,7 +5681,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1949 }, @@ -4648,7 +5692,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1950 }, @@ -4657,7 +5703,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1954 }, @@ -4666,7 +5714,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1955 }, @@ -4675,7 +5725,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1959 }, @@ -4684,7 +5736,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1960 }, @@ -4693,7 +5747,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1962 }, @@ -4702,7 +5758,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1963 }, @@ -4711,7 +5769,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1967 }, @@ -4720,7 +5780,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 1968 }, @@ -4729,7 +5791,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1977 }, @@ -4738,7 +5802,9 @@ "token": "user", "value": "user", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 1978 }, @@ -4747,7 +5813,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1982 }, @@ -4756,7 +5824,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1983 }, @@ -4765,7 +5835,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1985 }, @@ -4774,7 +5846,9 @@ "token": "user", "value": "user", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 1986 }, @@ -4783,7 +5857,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 1990 }, @@ -4792,7 +5868,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 1991 }, @@ -4801,7 +5879,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1993 }, @@ -4810,7 +5890,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1994 }, @@ -4819,7 +5901,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 1998 }, @@ -4828,7 +5912,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 1999 }, @@ -4837,7 +5923,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2005 }, @@ -4846,7 +5934,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2006 }, @@ -4855,7 +5945,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2007 }, @@ -4864,7 +5956,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2008 }, @@ -4873,7 +5967,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2012 }, @@ -4882,7 +5978,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2013 }, @@ -4891,7 +5989,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2019 }, @@ -4900,7 +6000,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2020 }, @@ -4909,7 +6011,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2021 }, @@ -4918,7 +6022,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2030 }, @@ -4927,7 +6033,9 @@ "token": "userfield", "value": "userfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2031 }, @@ -4936,7 +6044,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2040 }, @@ -4945,7 +6055,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2041 }, @@ -4954,7 +6066,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2043 }, @@ -4963,7 +6077,9 @@ "token": "userfield", "value": "userfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2044 }, @@ -4972,7 +6088,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2053 }, @@ -4981,7 +6099,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2054 }, @@ -4990,7 +6110,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2056 }, @@ -4999,7 +6121,9 @@ "token": "userfield", "value": "userfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2057 }, @@ -5008,7 +6132,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2066 }, @@ -5017,7 +6143,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2067 }, @@ -5026,7 +6154,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2073 }, @@ -5035,7 +6165,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2074 }, @@ -5044,7 +6176,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2075 }, @@ -5053,7 +6187,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2076 }, @@ -5062,7 +6198,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2080 }, @@ -5071,7 +6209,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2081 }, @@ -5080,7 +6220,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2087 }, @@ -5089,7 +6231,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2088 }, @@ -5098,7 +6242,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2089 }, @@ -5107,7 +6253,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2098 }, @@ -5116,7 +6264,9 @@ "token": "usertextfield", "value": "usertextfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2099 }, @@ -5125,7 +6275,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2112 }, @@ -5134,7 +6286,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2113 }, @@ -5143,7 +6297,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2115 }, @@ -5152,7 +6308,9 @@ "token": "usertextfield", "value": "usertextfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2116 }, @@ -5161,7 +6319,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2129 }, @@ -5170,7 +6330,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2130 }, @@ -5179,7 +6341,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2132 }, @@ -5188,7 +6352,9 @@ "token": "usertextfield", "value": "usertextfield", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2133 }, @@ -5197,7 +6363,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2146 }, @@ -5206,7 +6374,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2147 }, @@ -5215,7 +6385,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2153 }, @@ -5224,7 +6396,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2154 }, @@ -5233,7 +6407,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2155 }, @@ -5242,7 +6418,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2156 }, @@ -5251,7 +6429,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2160 }, @@ -5260,7 +6440,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2161 }, @@ -5269,7 +6451,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2167 }, @@ -5278,7 +6462,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2168 }, @@ -5287,7 +6473,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2169 }, @@ -5296,7 +6484,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2178 }, @@ -5305,7 +6495,9 @@ "token": "icon", "value": "icon", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2179 }, @@ -5314,7 +6506,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2183 }, @@ -5323,7 +6517,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2184 }, @@ -5332,7 +6528,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2186 }, @@ -5341,7 +6539,9 @@ "token": "icon", "value": "icon", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2187 }, @@ -5350,7 +6550,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2191 }, @@ -5359,7 +6561,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2192 }, @@ -5368,7 +6572,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2194 }, @@ -5377,7 +6583,9 @@ "token": "icon", "value": "icon", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2195 }, @@ -5386,7 +6594,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2199 }, @@ -5395,7 +6605,9 @@ "token": "iconid", "value": "iconid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2200 }, @@ -5404,7 +6616,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2206 }, @@ -5413,7 +6627,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2207 }, @@ -5422,7 +6638,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2208 }, @@ -5431,7 +6649,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2209 }, @@ -5440,7 +6660,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2213 }, @@ -5449,7 +6671,9 @@ "token": "iconid", "value": "iconid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2214 }, @@ -5458,7 +6682,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2220 }, @@ -5467,7 +6693,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2221 }, @@ -5476,7 +6704,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2222 }, @@ -5485,7 +6715,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2231 }, @@ -5494,7 +6726,9 @@ "token": "avatar", "value": "avatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2232 }, @@ -5503,7 +6737,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2238 }, @@ -5512,7 +6748,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2239 }, @@ -5521,7 +6759,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2241 }, @@ -5530,7 +6770,9 @@ "token": "avatar", "value": "avatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2242 }, @@ -5539,7 +6781,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2248 }, @@ -5548,7 +6792,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2250 }, @@ -5557,7 +6803,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2252 }, @@ -5566,7 +6814,9 @@ "token": "avatar", "value": "avatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2253 }, @@ -5575,7 +6825,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2259 }, @@ -5584,7 +6836,9 @@ "token": "avatarid", "value": "avatarid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2260 }, @@ -5593,7 +6847,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2268 }, @@ -5602,7 +6858,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2269 }, @@ -5611,7 +6869,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2270 }, @@ -5620,7 +6880,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2271 }, @@ -5629,7 +6891,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2275 }, @@ -5638,7 +6902,9 @@ "token": "avatarid", "value": "avatarid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2276 }, @@ -5647,7 +6913,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2284 }, @@ -5656,7 +6924,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2285 }, @@ -5665,7 +6935,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2286 }, @@ -5674,7 +6946,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2295 }, @@ -5683,7 +6957,9 @@ "token": "customavatar", "value": "customavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2296 }, @@ -5692,7 +6968,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2308 }, @@ -5701,7 +6979,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2309 }, @@ -5710,7 +6990,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2311 }, @@ -5719,7 +7001,9 @@ "token": "customavatar", "value": "customavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2312 }, @@ -5728,7 +7012,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2324 }, @@ -5737,7 +7023,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2325 }, @@ -5746,7 +7034,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2327 }, @@ -5755,7 +7045,9 @@ "token": "customavatar", "value": "customavatar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2328 }, @@ -5764,7 +7056,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2340 }, @@ -5773,7 +7067,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2341 }, @@ -5782,7 +7078,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2347 }, @@ -5791,7 +7089,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2348 }, @@ -5800,7 +7100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2349 }, @@ -5809,7 +7111,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2350 }, @@ -5818,7 +7122,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2354 }, @@ -5827,7 +7133,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2355 }, @@ -5836,7 +7144,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2361 }, @@ -5845,7 +7155,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2362 }, @@ -5854,7 +7166,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2363 }, @@ -5863,7 +7177,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2372 }, @@ -5872,7 +7188,9 @@ "token": "spamlog", "value": "spamlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2373 }, @@ -5881,7 +7199,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2380 }, @@ -5890,7 +7210,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2381 }, @@ -5899,7 +7221,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2383 }, @@ -5908,7 +7232,9 @@ "token": "spamlog", "value": "spamlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2384 }, @@ -5917,7 +7243,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2391 }, @@ -5926,7 +7254,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2392 }, @@ -5935,7 +7265,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2394 }, @@ -5944,7 +7276,9 @@ "token": "spamlog", "value": "spamlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2395 }, @@ -5953,7 +7287,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2402 }, @@ -5962,7 +7298,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2403 }, @@ -5971,7 +7309,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2409 }, @@ -5980,7 +7320,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2410 }, @@ -5989,7 +7331,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2411 }, @@ -5998,7 +7342,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2412 }, @@ -6007,7 +7353,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2416 }, @@ -6016,7 +7364,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2417 }, @@ -6025,7 +7375,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2423 }, @@ -6034,7 +7386,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2424 }, @@ -6043,7 +7397,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2425 }, @@ -6052,7 +7408,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2434 }, @@ -6061,7 +7419,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2435 }, @@ -6070,7 +7430,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2446 }, @@ -6079,7 +7441,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2447 }, @@ -6088,7 +7452,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2449 }, @@ -6097,7 +7463,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2450 }, @@ -6106,7 +7474,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2461 }, @@ -6115,7 +7485,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2462 }, @@ -6124,7 +7496,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2464 }, @@ -6133,7 +7507,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2465 }, @@ -6142,7 +7518,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2469 }, @@ -6151,7 +7529,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2470 }, @@ -6160,7 +7540,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2476 }, @@ -6169,7 +7551,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2477 }, @@ -6178,7 +7562,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2478 }, @@ -6187,7 +7573,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2479 }, @@ -6196,7 +7584,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2490 }, @@ -6205,7 +7595,9 @@ "token": "primaryid", "value": "primaryid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2491 }, @@ -6214,7 +7606,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2500 }, @@ -6223,7 +7617,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2501 }, @@ -6232,7 +7628,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2504 }, @@ -6241,7 +7639,9 @@ "token": "deletionlog", "value": "deletionlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2505 }, @@ -6250,7 +7650,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2516 }, @@ -6259,7 +7661,9 @@ "token": "type", "value": "type", "keyword": "TYPE", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2517 }, @@ -6268,7 +7672,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2521 }, @@ -6277,7 +7683,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2522 }, @@ -6286,7 +7694,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2523 }, @@ -6295,7 +7705,11 @@ "token": "'post'", "value": "post", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 2524 }, @@ -6304,7 +7718,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2530 }, @@ -6313,7 +7729,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2531 }, @@ -6322,7 +7740,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2532 }, @@ -6331,7 +7751,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2541 }, @@ -6340,7 +7762,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2542 }, @@ -6349,7 +7773,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2549 }, @@ -6358,7 +7784,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2550 }, @@ -6367,7 +7795,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2552 }, @@ -6376,7 +7806,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2553 }, @@ -6385,7 +7817,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2560 }, @@ -6394,7 +7828,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2561 }, @@ -6403,7 +7839,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2563 }, @@ -6412,7 +7850,9 @@ "token": "editlog", "value": "editlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2564 }, @@ -6421,7 +7861,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2571 }, @@ -6430,7 +7872,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2572 }, @@ -6439,7 +7883,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2578 }, @@ -6448,7 +7894,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2579 }, @@ -6457,7 +7905,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2580 }, @@ -6466,7 +7916,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2581 }, @@ -6475,7 +7927,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2585 }, @@ -6484,7 +7938,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2586 }, @@ -6493,7 +7949,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2592 }, @@ -6502,7 +7960,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2593 }, @@ -6511,7 +7971,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2594 }, @@ -6520,7 +7982,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2603 }, @@ -6529,7 +7993,9 @@ "token": "postparsed", "value": "postparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2604 }, @@ -6538,7 +8004,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2614 }, @@ -6547,7 +8015,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2615 }, @@ -6556,7 +8026,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2617 }, @@ -6565,7 +8037,9 @@ "token": "postparsed", "value": "postparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2618 }, @@ -6574,7 +8048,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2628 }, @@ -6583,7 +8059,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2629 }, @@ -6592,7 +8070,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2631 }, @@ -6601,7 +8081,9 @@ "token": "postparsed", "value": "postparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2632 }, @@ -6610,7 +8092,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2642 }, @@ -6619,7 +8103,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2643 }, @@ -6628,7 +8114,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2649 }, @@ -6637,7 +8125,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2650 }, @@ -6646,7 +8136,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2651 }, @@ -6655,7 +8147,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2652 }, @@ -6664,7 +8158,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2656 }, @@ -6673,7 +8169,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2657 }, @@ -6682,7 +8180,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2663 }, @@ -6691,7 +8191,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2664 }, @@ -6700,7 +8202,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2667 }, @@ -6709,7 +8213,9 @@ "token": "postparsed", "value": "postparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2668 }, @@ -6718,7 +8224,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2678 }, @@ -6727,7 +8235,9 @@ "token": "styleid", "value": "styleid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2679 }, @@ -6736,7 +8246,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2686 }, @@ -6745,7 +8257,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2687 }, @@ -6754,7 +8268,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2688 }, @@ -6763,7 +8279,9 @@ "token": "23", "value": 23, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 2689 }, @@ -6772,7 +8290,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2691 }, @@ -6781,7 +8301,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2692 }, @@ -6790,7 +8312,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2695 }, @@ -6799,7 +8323,9 @@ "token": "postparsed", "value": "postparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2696 }, @@ -6808,7 +8334,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2706 }, @@ -6817,7 +8345,9 @@ "token": "languageid", "value": "languageid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2707 }, @@ -6826,7 +8356,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2717 }, @@ -6835,7 +8367,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2718 }, @@ -6844,7 +8378,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2719 }, @@ -6853,7 +8389,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 2720 }, @@ -6862,7 +8400,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2721 }, @@ -6871,7 +8411,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2722 }, @@ -6880,7 +8422,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2723 }, @@ -6889,7 +8433,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2732 }, @@ -6898,7 +8444,9 @@ "token": "sigparsed", "value": "sigparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2733 }, @@ -6907,7 +8455,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2742 }, @@ -6916,7 +8466,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2743 }, @@ -6925,7 +8477,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2745 }, @@ -6934,7 +8488,9 @@ "token": "sigparsed", "value": "sigparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2746 }, @@ -6943,7 +8499,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2755 }, @@ -6952,7 +8510,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2756 }, @@ -6961,7 +8521,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2758 }, @@ -6970,7 +8532,9 @@ "token": "sigparsed", "value": "sigparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2759 }, @@ -6979,7 +8543,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2768 }, @@ -6988,7 +8554,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2769 }, @@ -6997,7 +8565,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2775 }, @@ -7006,7 +8576,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2776 }, @@ -7015,7 +8587,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2777 }, @@ -7024,7 +8598,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2778 }, @@ -7033,7 +8609,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2782 }, @@ -7042,7 +8620,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2783 }, @@ -7051,7 +8631,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2789 }, @@ -7060,7 +8642,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2790 }, @@ -7069,7 +8653,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2793 }, @@ -7078,7 +8664,9 @@ "token": "sigparsed", "value": "sigparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2794 }, @@ -7087,7 +8675,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2803 }, @@ -7096,7 +8686,9 @@ "token": "styleid", "value": "styleid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2804 }, @@ -7105,7 +8697,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2811 }, @@ -7114,7 +8708,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2812 }, @@ -7123,7 +8719,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2813 }, @@ -7132,7 +8730,9 @@ "token": "23", "value": 23, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 2814 }, @@ -7141,7 +8741,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2816 }, @@ -7150,7 +8752,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2817 }, @@ -7159,7 +8763,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2820 }, @@ -7168,7 +8774,9 @@ "token": "sigparsed", "value": "sigparsed", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2821 }, @@ -7177,7 +8785,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2830 }, @@ -7186,7 +8796,9 @@ "token": "languageid", "value": "languageid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2831 }, @@ -7195,7 +8807,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2841 }, @@ -7204,7 +8818,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2842 }, @@ -7213,7 +8829,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2843 }, @@ -7222,7 +8840,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 2844 }, @@ -7231,7 +8851,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2845 }, @@ -7240,7 +8862,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2846 }, @@ -7249,7 +8873,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2847 }, @@ -7258,7 +8884,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2856 }, @@ -7267,7 +8895,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2857 }, @@ -7276,7 +8906,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2863 }, @@ -7285,7 +8917,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2864 }, @@ -7294,7 +8928,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2866 }, @@ -7303,7 +8939,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2867 }, @@ -7312,7 +8950,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2873 }, @@ -7321,7 +8961,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2874 }, @@ -7330,7 +8972,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2876 }, @@ -7339,7 +8983,9 @@ "token": "sigpic", "value": "sigpic", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2877 }, @@ -7348,7 +8994,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2883 }, @@ -7357,7 +9005,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2884 }, @@ -7366,7 +9016,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2890 }, @@ -7375,7 +9027,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2891 }, @@ -7384,7 +9038,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2892 }, @@ -7393,7 +9049,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2893 }, @@ -7402,7 +9060,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2897 }, @@ -7411,7 +9071,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2898 }, @@ -7420,7 +9082,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2904 }, @@ -7429,7 +9093,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2905 }, @@ -7438,7 +9104,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2906 }, @@ -7447,7 +9115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2915 }, @@ -7456,7 +9126,9 @@ "token": "vbppim_post_icon_list", "value": "vbppim_post_icon_list", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2916 }, @@ -7465,7 +9137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2937 }, @@ -7474,7 +9148,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2938 }, @@ -7483,7 +9159,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2940 }, @@ -7492,7 +9170,9 @@ "token": "post_icon_list", "value": "post_icon_list", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2941 }, @@ -7501,7 +9181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2955 }, @@ -7510,7 +9192,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 2956 }, @@ -7519,7 +9203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2958 }, @@ -7528,7 +9214,9 @@ "token": "post_icon_list", "value": "post_icon_list", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2959 }, @@ -7537,7 +9225,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2973 }, @@ -7546,7 +9236,9 @@ "token": "post_id", "value": "post_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2974 }, @@ -7555,7 +9247,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 2981 }, @@ -7564,7 +9258,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2982 }, @@ -7573,7 +9269,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 2986 }, @@ -7582,7 +9280,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 2987 }, @@ -7591,7 +9291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 2993 }, @@ -7600,7 +9302,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 2994 }, @@ -7609,7 +9313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3003 }, @@ -7618,7 +9324,9 @@ "token": "vbpmal_log", "value": "vbpmal_log", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3004 }, @@ -7627,7 +9335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3014 }, @@ -7636,7 +9346,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3015 }, @@ -7645,7 +9357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3017 }, @@ -7654,7 +9368,9 @@ "token": "approvedlog", "value": "approvedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3018 }, @@ -7663,7 +9379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3029 }, @@ -7672,7 +9390,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3030 }, @@ -7681,7 +9401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3032 }, @@ -7690,7 +9412,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3033 }, @@ -7699,7 +9423,9 @@ "token": "approvedlog", "value": "approvedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3034 }, @@ -7708,7 +9434,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3045 }, @@ -7717,7 +9445,9 @@ "token": "itemid", "value": "itemid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3046 }, @@ -7726,7 +9456,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3052 }, @@ -7735,7 +9467,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3053 }, @@ -7744,7 +9478,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3057 }, @@ -7753,7 +9489,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3058 }, @@ -7762,7 +9500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3064 }, @@ -7771,7 +9511,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3065 }, @@ -7780,7 +9522,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3068 }, @@ -7789,7 +9533,9 @@ "token": "approvedlog", "value": "approvedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3069 }, @@ -7798,7 +9544,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3080 }, @@ -7807,7 +9555,9 @@ "token": "action", "value": "action", "keyword": "ACTION", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3081 }, @@ -7816,7 +9566,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3087 }, @@ -7825,7 +9577,9 @@ "token": "'postapprove'", "value": "postapprove", "keyword": null, - "type": 7, + "type": { + "@type": "@706" + }, "flags": 1, "position": 3088 }, @@ -7834,7 +9588,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3101 }, @@ -7843,7 +9599,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3102 }, @@ -7852,7 +9610,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 3103 }, @@ -7861,7 +9621,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3112 }, @@ -7870,7 +9632,9 @@ "token": "vbpmal_log", "value": "vbpmal_log", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3113 }, @@ -7879,7 +9643,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3123 }, @@ -7888,7 +9654,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3124 }, @@ -7897,7 +9665,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3126 }, @@ -7906,7 +9676,9 @@ "token": "movedlog", "value": "movedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3127 }, @@ -7915,7 +9687,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3135 }, @@ -7924,7 +9698,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3136 }, @@ -7933,7 +9709,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3138 }, @@ -7942,7 +9720,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3139 }, @@ -7951,7 +9731,9 @@ "token": "movedlog", "value": "movedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3140 }, @@ -7960,7 +9742,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3148 }, @@ -7969,7 +9753,9 @@ "token": "itemid", "value": "itemid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3149 }, @@ -7978,7 +9764,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3155 }, @@ -7987,7 +9775,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3156 }, @@ -7996,7 +9786,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3160 }, @@ -8005,7 +9797,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3161 }, @@ -8014,7 +9808,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3167 }, @@ -8023,7 +9819,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3168 }, @@ -8032,7 +9830,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3171 }, @@ -8041,7 +9841,9 @@ "token": "movedlog", "value": "movedlog", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3172 }, @@ -8050,7 +9852,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3180 }, @@ -8059,7 +9863,9 @@ "token": "action", "value": "action", "keyword": "ACTION", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3181 }, @@ -8068,7 +9874,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3187 }, @@ -8077,7 +9885,9 @@ "token": "'postmove'", "value": "postmove", "keyword": null, - "type": 7, + "type": { + "@type": "@706" + }, "flags": 1, "position": 3188 }, @@ -8086,7 +9896,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3198 }, @@ -8095,7 +9907,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3199 }, @@ -8104,7 +9918,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 3200 }, @@ -8113,7 +9929,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3209 }, @@ -8122,7 +9940,9 @@ "token": "vbpmal_scheduled_post_approval", "value": "vbpmal_scheduled_post_approval", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3210 }, @@ -8131,7 +9951,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3240 }, @@ -8140,7 +9962,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3241 }, @@ -8149,7 +9973,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3243 }, @@ -8158,7 +9984,9 @@ "token": "scheduled_approval", "value": "scheduled_approval", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3244 }, @@ -8167,7 +9995,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3262 }, @@ -8176,7 +10006,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3263 }, @@ -8185,7 +10017,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3265 }, @@ -8194,7 +10028,9 @@ "token": "scheduled_approval", "value": "scheduled_approval", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3266 }, @@ -8203,7 +10039,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3284 }, @@ -8212,7 +10050,9 @@ "token": "post_id", "value": "post_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3285 }, @@ -8221,7 +10061,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3292 }, @@ -8230,7 +10072,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3293 }, @@ -8239,7 +10083,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3294 }, @@ -8248,7 +10094,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3295 }, @@ -8257,7 +10105,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3299 }, @@ -8266,7 +10116,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3300 }, @@ -8275,7 +10127,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3306 }, @@ -8284,7 +10138,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 3307 }, @@ -8293,7 +10149,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3316 }, @@ -8302,7 +10160,9 @@ "token": "vbpsmt_additional_user_data", "value": "vbpsmt_additional_user_data", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3317 }, @@ -8311,7 +10171,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3344 }, @@ -8320,7 +10182,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3345 }, @@ -8329,7 +10193,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3347 }, @@ -8338,7 +10204,9 @@ "token": "additional_user_data", "value": "additional_user_data", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3348 }, @@ -8347,7 +10215,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3368 }, @@ -8356,7 +10226,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3369 }, @@ -8365,7 +10237,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3371 }, @@ -8374,7 +10248,9 @@ "token": "additional_user_data", "value": "additional_user_data", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3372 }, @@ -8383,7 +10259,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3392 }, @@ -8392,7 +10270,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3393 }, @@ -8401,7 +10281,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3399 }, @@ -8410,7 +10292,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3400 }, @@ -8419,7 +10303,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3404 }, @@ -8428,7 +10314,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3405 }, @@ -8437,7 +10325,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3411 }, @@ -8446,7 +10336,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 3412 }, @@ -8455,7 +10347,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3421 }, @@ -8464,7 +10358,9 @@ "token": "market_pp_post_activation_mapping", "value": "market_pp_post_activation_mapping", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3422 }, @@ -8473,7 +10369,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3455 }, @@ -8482,7 +10380,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3456 }, @@ -8491,7 +10391,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3458 }, @@ -8500,7 +10402,9 @@ "token": "paid_post_activation", "value": "paid_post_activation", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3459 }, @@ -8509,7 +10413,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3479 }, @@ -8518,7 +10424,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3480 }, @@ -8527,7 +10435,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3482 }, @@ -8536,7 +10446,9 @@ "token": "paid_post_activation", "value": "paid_post_activation", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3483 }, @@ -8545,7 +10457,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3503 }, @@ -8554,7 +10468,9 @@ "token": "post_id", "value": "post_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3504 }, @@ -8563,7 +10479,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3511 }, @@ -8572,7 +10490,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3512 }, @@ -8581,7 +10501,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3513 }, @@ -8590,7 +10512,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3514 }, @@ -8599,7 +10523,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3518 }, @@ -8608,7 +10534,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3519 }, @@ -8617,7 +10545,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3525 }, @@ -8626,7 +10556,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 3526 }, @@ -8635,7 +10567,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3535 }, @@ -8644,7 +10578,9 @@ "token": "alm_Model_UserData", "value": "alm_Model_UserData", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3536 }, @@ -8653,7 +10589,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3554 }, @@ -8662,7 +10600,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3555 }, @@ -8671,7 +10611,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3557 }, @@ -8680,7 +10622,9 @@ "token": "alm_Model_UserData", "value": "alm_Model_UserData", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3558 }, @@ -8689,7 +10633,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3576 }, @@ -8698,7 +10644,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3577 }, @@ -8707,7 +10655,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3579 }, @@ -8716,7 +10666,9 @@ "token": "alm_Model_UserData", "value": "alm_Model_UserData", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3580 }, @@ -8725,7 +10677,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3598 }, @@ -8734,7 +10688,9 @@ "token": "user_id", "value": "user_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3599 }, @@ -8743,7 +10699,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 3606 }, @@ -8752,7 +10710,9 @@ "token": "user", "value": "user", "keyword": "user", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3607 }, @@ -8761,7 +10721,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3611 }, @@ -8770,7 +10732,9 @@ "token": "userid", "value": "userid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3612 }, @@ -8779,7 +10743,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3618 }, @@ -8788,7 +10754,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 3619 }, @@ -8797,7 +10765,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3624 }, @@ -8806,7 +10776,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3625 }, @@ -8815,7 +10787,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3629 }, @@ -8824,7 +10798,9 @@ "token": "postid", "value": "postid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3630 }, @@ -8833,7 +10809,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3636 }, @@ -8842,7 +10820,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 3637 }, @@ -8851,7 +10831,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3639 }, @@ -8860,7 +10842,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3640 }, @@ -8869,7 +10853,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3641 }, @@ -8878,7 +10864,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3642 }, @@ -8887,7 +10875,9 @@ "token": "3254399", "value": 3254399, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3643 }, @@ -8896,7 +10886,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3650 }, @@ -8905,7 +10897,9 @@ "token": "3254508", "value": 3254508, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3651 }, @@ -8914,7 +10908,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3658 }, @@ -8923,7 +10919,9 @@ "token": "3254743", "value": 3254743, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3659 }, @@ -8932,7 +10930,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3666 }, @@ -8941,7 +10941,9 @@ "token": "3254817", "value": 3254817, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3667 }, @@ -8950,7 +10952,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3674 }, @@ -8959,7 +10963,9 @@ "token": "3254969", "value": 3254969, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3675 }, @@ -8968,7 +10974,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3682 }, @@ -8977,7 +10985,9 @@ "token": "3255328", "value": 3255328, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3683 }, @@ -8986,7 +10996,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3690 }, @@ -8995,7 +11007,9 @@ "token": "3255582", "value": 3255582, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3691 }, @@ -9004,7 +11018,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3698 }, @@ -9013,7 +11029,9 @@ "token": "3257603", "value": 3257603, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3699 }, @@ -9022,7 +11040,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3706 }, @@ -9031,7 +11051,9 @@ "token": "3257873", "value": 3257873, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3707 }, @@ -9040,7 +11062,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3714 }, @@ -9049,7 +11073,9 @@ "token": "3258126", "value": 3258126, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3715 }, @@ -9058,7 +11084,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3722 }, @@ -9067,7 +11095,9 @@ "token": "3258150", "value": 3258150, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3723 }, @@ -9076,7 +11106,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3730 }, @@ -9085,7 +11117,9 @@ "token": "3258254", "value": 3258254, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3731 }, @@ -9094,7 +11128,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3738 }, @@ -9103,7 +11139,9 @@ "token": "3258272", "value": 3258272, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3739 }, @@ -9112,7 +11150,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3746 }, @@ -9121,7 +11161,9 @@ "token": "3258311", "value": 3258311, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3747 }, @@ -9130,7 +11172,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3754 }, @@ -9139,7 +11183,9 @@ "token": "3260767", "value": 3260767, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3755 }, @@ -9148,7 +11194,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3762 }, @@ -9157,7 +11205,9 @@ "token": "3260770", "value": 3260770, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3763 }, @@ -9166,7 +11216,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3770 }, @@ -9175,7 +11227,9 @@ "token": "3260776", "value": 3260776, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3771 }, @@ -9184,7 +11238,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3778 }, @@ -9193,7 +11249,9 @@ "token": "3261180", "value": 3261180, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3779 }, @@ -9202,7 +11260,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3786 }, @@ -9211,7 +11271,9 @@ "token": "3261263", "value": 3261263, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3787 }, @@ -9220,7 +11282,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3794 }, @@ -9229,7 +11293,9 @@ "token": "3261317", "value": 3261317, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3795 }, @@ -9238,7 +11304,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3802 }, @@ -9247,7 +11315,9 @@ "token": "3261318", "value": 3261318, "keyword": null, - "type": 6, + "type": { + "@type": "@40" + }, "flags": 0, "position": 3803 }, @@ -9256,7 +11326,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3810 }, @@ -9265,7 +11337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3811 }, @@ -9274,7 +11348,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 3812 }, @@ -9283,7 +11359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 3820 }, @@ -9292,7 +11370,9 @@ "token": "post", "value": "post", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3821 }, @@ -9301,7 +11381,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 3825 }, @@ -9310,30 +11392,34 @@ "token": "dateline", "value": "dateline", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 3826 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 1035, - "idx": 1035 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -9874,7 +11960,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -9884,11 +11970,14 @@ "postid" ], "isOperator": false, - "expr": "post.postid IN (0,3254399,3254508,3254743,3254817,3254969,3255328,3255582,3257603,3257873,3258126,3258150,3258254,3258272,3258311,3260767,3260770,3260776,3261180,3261263,3261317,3261318)" + "expr": "post.postid IN (0,3254399,3254508,3254743,3254817,3254969,3255328,3255582,3257603,3257873,3258126,3258150,3258254,3258272,3258311,3260767,3260770,3260776,3261180,3261263,3261317,3261318)", + "leftOperand": "post.postid IN (0,3254399,3254508,3254743,3254817,3254969,3255328,3255582,3257603,3257873,3258126,3258150,3258254,3258272,3258311,3260767,3260770,3260776,3261180,3261263,3261317,3261318)", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [ { @@ -9903,7 +11992,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -9932,10 +12025,14 @@ "post" ], "isOperator": false, - "expr": "(user.userid = post.userid)" + "expr": "(user.userid = post.userid)", + "leftOperand": "(user.userid", + "operator": "=", + "rightOperand": "post.userid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -9959,10 +12056,14 @@ "user" ], "isOperator": false, - "expr": "(userfield.userid = user.userid)" + "expr": "(userfield.userid = user.userid)", + "leftOperand": "(userfield.userid", + "operator": "=", + "rightOperand": "user.userid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -9986,10 +12087,14 @@ "user" ], "isOperator": false, - "expr": "(usertextfield.userid = user.userid)" + "expr": "(usertextfield.userid = user.userid)", + "leftOperand": "(usertextfield.userid", + "operator": "=", + "rightOperand": "user.userid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10013,10 +12118,14 @@ "post" ], "isOperator": false, - "expr": "(icon.iconid = post.iconid)" + "expr": "(icon.iconid = post.iconid)", + "leftOperand": "(icon.iconid", + "operator": "=", + "rightOperand": "post.iconid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10040,10 +12149,14 @@ "user" ], "isOperator": false, - "expr": "(avatar.avatarid = user.avatarid)" + "expr": "(avatar.avatarid = user.avatarid)", + "leftOperand": "(avatar.avatarid", + "operator": "=", + "rightOperand": "user.avatarid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10067,10 +12180,14 @@ "user" ], "isOperator": false, - "expr": "(customavatar.userid = user.userid)" + "expr": "(customavatar.userid = user.userid)", + "leftOperand": "(customavatar.userid", + "operator": "=", + "rightOperand": "user.userid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10094,10 +12211,14 @@ "post" ], "isOperator": false, - "expr": "(spamlog.postid = post.postid)" + "expr": "(spamlog.postid = post.postid)", + "leftOperand": "(spamlog.postid", + "operator": "=", + "rightOperand": "post.postid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10122,13 +12243,19 @@ "primaryid" ], "isOperator": false, - "expr": "(post.postid = deletionlog.primaryid" + "expr": "(post.postid = deletionlog.primaryid", + "leftOperand": "(post.postid", + "operator": "=", + "rightOperand": "deletionlog.primaryid" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -10138,10 +12265,14 @@ "post" ], "isOperator": false, - "expr": "deletionlog.type = 'post')" + "expr": "deletionlog.type = 'post')", + "leftOperand": "deletionlog.type", + "operator": "=", + "rightOperand": "'post')" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10165,10 +12296,14 @@ "post" ], "isOperator": false, - "expr": "(editlog.postid = post.postid)" + "expr": "(editlog.postid = post.postid)", + "leftOperand": "(editlog.postid", + "operator": "=", + "rightOperand": "post.postid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10192,13 +12327,19 @@ "post" ], "isOperator": false, - "expr": "(postparsed.postid = post.postid" + "expr": "(postparsed.postid = post.postid", + "leftOperand": "(postparsed.postid", + "operator": "=", + "rightOperand": "post.postid" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -10207,13 +12348,19 @@ "styleid" ], "isOperator": false, - "expr": "postparsed.styleid = 23" + "expr": "postparsed.styleid = 23", + "leftOperand": "postparsed.styleid", + "operator": "=", + "rightOperand": "23" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -10222,10 +12369,14 @@ "languageid" ], "isOperator": false, - "expr": "postparsed.languageid = 5)" + "expr": "postparsed.languageid = 5)", + "leftOperand": "postparsed.languageid", + "operator": "=", + "rightOperand": "5)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10249,13 +12400,19 @@ "user" ], "isOperator": false, - "expr": "(sigparsed.userid = user.userid" + "expr": "(sigparsed.userid = user.userid", + "leftOperand": "(sigparsed.userid", + "operator": "=", + "rightOperand": "user.userid" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -10264,13 +12421,19 @@ "styleid" ], "isOperator": false, - "expr": "sigparsed.styleid = 23" + "expr": "sigparsed.styleid = 23", + "leftOperand": "sigparsed.styleid", + "operator": "=", + "rightOperand": "23" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -10279,10 +12442,14 @@ "languageid" ], "isOperator": false, - "expr": "sigparsed.languageid = 5)" + "expr": "sigparsed.languageid = 5)", + "leftOperand": "sigparsed.languageid", + "operator": "=", + "rightOperand": "5)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10306,10 +12473,14 @@ "post" ], "isOperator": false, - "expr": "(sigpic.userid = post.userid)" + "expr": "(sigpic.userid = post.userid)", + "leftOperand": "(sigpic.userid", + "operator": "=", + "rightOperand": "post.userid)" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10334,10 +12505,14 @@ "postid" ], "isOperator": false, - "expr": "post_icon_list.post_id=post.postid" + "expr": "post_icon_list.post_id=post.postid", + "leftOperand": "post_icon_list.post_id", + "operator": "=", + "rightOperand": "post.postid" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10362,13 +12537,19 @@ "postid" ], "isOperator": false, - "expr": "(approvedlog.itemid=post.postid" + "expr": "(approvedlog.itemid=post.postid", + "leftOperand": "(approvedlog.itemid", + "operator": "=", + "rightOperand": "post.postid" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -10378,10 +12559,14 @@ "postapprove" ], "isOperator": false, - "expr": "approvedlog.action='postapprove')" + "expr": "approvedlog.action='postapprove')", + "leftOperand": "approvedlog.action", + "operator": "=", + "rightOperand": "'postapprove')" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10406,13 +12591,19 @@ "postid" ], "isOperator": false, - "expr": "(movedlog.itemid=post.postid" + "expr": "(movedlog.itemid=post.postid", + "leftOperand": "(movedlog.itemid", + "operator": "=", + "rightOperand": "post.postid" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -10422,10 +12613,14 @@ "postmove" ], "isOperator": false, - "expr": "movedlog.action='postmove')" + "expr": "movedlog.action='postmove')", + "leftOperand": "movedlog.action", + "operator": "=", + "rightOperand": "'postmove')" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10450,10 +12645,14 @@ "postid" ], "isOperator": false, - "expr": "scheduled_approval.post_id = post.postid" + "expr": "scheduled_approval.post_id = post.postid", + "leftOperand": "scheduled_approval.post_id", + "operator": "=", + "rightOperand": "post.postid" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10477,10 +12676,14 @@ "post" ], "isOperator": false, - "expr": "additional_user_data.userid=post.userid" + "expr": "additional_user_data.userid=post.userid", + "leftOperand": "additional_user_data.userid", + "operator": "=", + "rightOperand": "post.userid" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10505,10 +12708,14 @@ "postid" ], "isOperator": false, - "expr": "paid_post_activation.post_id = post.postid" + "expr": "paid_post_activation.post_id = post.postid", + "leftOperand": "paid_post_activation.post_id", + "operator": "=", + "rightOperand": "post.postid" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -10533,14 +12740,18 @@ "userid" ], "isOperator": false, - "expr": "alm_Model_UserData.user_id=user.userid" + "expr": "alm_Model_UserData.user_id=user.userid", + "leftOperand": "alm_Model_UserData.user_id", + "operator": "=", + "rightOperand": "user.userid" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -10549,9 +12760,7 @@ "last": 1033 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect14.out b/tests/data/parser/parseSelect14.out index bc0549863..427689626 100644 --- a/tests/data/parser/parseSelect14.out +++ b/tests/data/parser/parseSelect14.out @@ -2,18 +2,26 @@ "query": "SELECT tbl.id, NOT tbl.id FROM tbl", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT tbl.id, NOT tbl.id FROM tbl", "len": 34, "last": 34, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 10 }, @@ -49,7 +69,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 13 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -94,7 +124,9 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 19 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 22 }, @@ -112,7 +146,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -130,7 +168,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -148,30 +190,34 @@ "token": "tbl", "value": "tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 31 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -212,11 +258,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -224,7 +270,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -233,9 +279,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect15.out b/tests/data/parser/parseSelect15.out index e67ae65e3..40f2c4da2 100644 --- a/tests/data/parser/parseSelect15.out +++ b/tests/data/parser/parseSelect15.out @@ -2,18 +2,26 @@ "query": "SELECT `````` FROM ``````;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT `````` FROM ``````;", "len": 26, "last": 26, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "``````", "value": "``", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "``````", "value": "``", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 19 }, @@ -76,30 +100,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 25 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -130,11 +158,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -142,7 +170,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -151,9 +179,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect16.out b/tests/data/parser/parseSelect16.out index 22e6f8c2f..b724afa8b 100644 --- a/tests/data/parser/parseSelect16.out +++ b/tests/data/parser/parseSelect16.out @@ -2,18 +2,26 @@ "query": "SELECT\np.aa,\np.bb,\nCASE\nWHEN p.cc = 'Y' and dd = 'Found' then '99.99999'\nWHEN p.cc = '' and dd = 'Found' then '00.00000'\n ELSE '99.99999' END as RR,\nCASE\nWHEN dd = 'Found' then 'Y'\n ELSE 'N' END as RRI,\nCASE\n\tWHEN (SELECT MAX(cd) from LSA act group by act.an having p.acn = act.an) > '2021-01-28' THEN '06/30/2020'\n WHEN p.co < '2021-01-28' THEN '12/31/2019'\n ELSE '06/30/2020' END as DAOD\nFROM `LTKP` p\nleft join `LQA` qa\non qa.pi = p.ID\nleft join LSA act\non p.acn = act.an\nwhere p.a =1 and p.mr = 1 and p.sc<> '23' and qa.qt = 'TEXT' and p.tl = \"TEXT\" and qa.a = 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT\np.aa,\np.bb,\nCASE\nWHEN p.cc = 'Y' and dd = 'Found' then '99.99999'\nWHEN p.cc = '' and dd = 'Found' then '00.00000'\n ELSE '99.99999' END as RR,\nCASE\nWHEN dd = 'Found' then 'Y'\n ELSE 'N' END as RRI,\nCASE\n\tWHEN (SELECT MAX(cd) from LSA act group by act.an having p.acn = act.an) > '2021-01-28' THEN '06/30/2020'\n WHEN p.co < '2021-01-28' THEN '12/31/2019'\n ELSE '06/30/2020' END as DAOD\nFROM `LTKP` p\nleft join `LQA` qa\non qa.pi = p.ID\nleft join LSA act\non p.acn = act.an\nwhere p.a =1 and p.mr = 1 and p.sc<> '23' and qa.qt = 'TEXT' and p.tl = \"TEXT\" and qa.a = 1", "len": 579, "last": 579, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 263, + "idx": 263, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,9 @@ "token": "aa", "value": "aa", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 11 }, @@ -67,7 +91,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -76,7 +102,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 13 }, @@ -85,7 +113,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 14 }, @@ -94,7 +124,9 @@ "token": "bb", "value": "bb", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 15 }, @@ -103,7 +135,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 17 }, @@ -112,7 +146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -121,7 +157,9 @@ "token": "CASE", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -130,7 +168,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -139,7 +179,9 @@ "token": "WHEN", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -157,7 +201,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 29 }, @@ -166,7 +212,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 30 }, @@ -175,7 +223,9 @@ "token": "cc", "value": "cc", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 31 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -193,7 +245,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 34 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -211,7 +267,11 @@ "token": "'Y'", "value": "Y", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 36 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -229,7 +291,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -247,7 +313,9 @@ "token": "dd", "value": "dd", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 44 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -265,7 +335,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 47 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -283,7 +357,9 @@ "token": "'Found'", "value": "Found", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 49 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -301,7 +379,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 57 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -319,7 +401,9 @@ "token": "'99.99999'", "value": "99.99999", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 62 }, @@ -328,7 +412,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -337,7 +423,9 @@ "token": "WHEN", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -355,7 +445,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 78 }, @@ -364,7 +456,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 79 }, @@ -373,7 +467,9 @@ "token": "cc", "value": "cc", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 80 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -391,7 +489,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 83 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -409,7 +511,9 @@ "token": "''", "value": "", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 85 }, @@ -418,7 +522,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -427,7 +533,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 88 }, @@ -436,7 +544,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -445,7 +555,9 @@ "token": "dd", "value": "dd", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 92 }, @@ -454,7 +566,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -463,7 +577,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 95 }, @@ -472,7 +588,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -481,7 +599,9 @@ "token": "'Found'", "value": "Found", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 97 }, @@ -490,7 +610,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -499,7 +621,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 105 }, @@ -508,7 +632,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -517,7 +643,9 @@ "token": "'00.00000'", "value": "00.00000", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 110 }, @@ -526,7 +654,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -535,7 +665,9 @@ "token": "ELSE", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -544,7 +676,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -553,7 +687,9 @@ "token": "'99.99999'", "value": "99.99999", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 130 }, @@ -562,7 +698,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -571,7 +709,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 141 }, @@ -580,7 +720,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -589,7 +731,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 145 }, @@ -598,7 +742,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, @@ -607,7 +753,9 @@ "token": "RR", "value": "RR", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 148 }, @@ -616,7 +764,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 150 }, @@ -625,7 +775,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 151 }, @@ -634,7 +786,9 @@ "token": "CASE", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 152 }, @@ -643,7 +797,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -652,7 +808,9 @@ "token": "WHEN", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 157 }, @@ -661,7 +819,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 161 }, @@ -670,7 +830,9 @@ "token": "dd", "value": "dd", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 162 }, @@ -679,7 +841,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 164 }, @@ -688,7 +852,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 165 }, @@ -697,7 +863,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 166 }, @@ -706,7 +874,9 @@ "token": "'Found'", "value": "Found", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 167 }, @@ -715,7 +885,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 174 }, @@ -724,7 +896,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 175 }, @@ -733,7 +907,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 179 }, @@ -742,7 +918,9 @@ "token": "'Y'", "value": "Y", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 180 }, @@ -751,7 +929,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 183 }, @@ -760,7 +940,9 @@ "token": "ELSE", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 188 }, @@ -769,7 +951,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 192 }, @@ -778,7 +962,9 @@ "token": "'N'", "value": "N", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 193 }, @@ -787,7 +973,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 196 }, @@ -796,7 +984,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 197 }, @@ -805,7 +995,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 200 }, @@ -814,7 +1006,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 201 }, @@ -823,7 +1017,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 203 }, @@ -832,7 +1028,9 @@ "token": "RRI", "value": "RRI", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 204 }, @@ -841,7 +1039,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 207 }, @@ -850,7 +1050,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 208 }, @@ -859,7 +1061,9 @@ "token": "CASE", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 209 }, @@ -868,7 +1072,9 @@ "token": "\n\t", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 213 }, @@ -877,7 +1083,9 @@ "token": "WHEN", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 215 }, @@ -886,7 +1094,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 219 }, @@ -895,7 +1105,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 220 }, @@ -904,7 +1116,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 221 }, @@ -913,7 +1127,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 227 }, @@ -922,7 +1138,9 @@ "token": "MAX", "value": "MAX", "keyword": "MAX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 228 }, @@ -931,7 +1149,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 231 }, @@ -940,7 +1160,9 @@ "token": "cd", "value": "cd", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 232 }, @@ -949,7 +1171,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 234 }, @@ -958,7 +1182,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 235 }, @@ -967,7 +1193,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 236 }, @@ -976,7 +1204,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 240 }, @@ -985,7 +1215,9 @@ "token": "LSA", "value": "LSA", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 241 }, @@ -994,7 +1226,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 244 }, @@ -1003,7 +1237,9 @@ "token": "act", "value": "act", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 245 }, @@ -1012,7 +1248,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 248 }, @@ -1021,7 +1259,9 @@ "token": "group by", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 249 }, @@ -1030,7 +1270,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 257 }, @@ -1039,7 +1281,9 @@ "token": "act", "value": "act", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 258 }, @@ -1048,7 +1292,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 261 }, @@ -1057,7 +1303,9 @@ "token": "an", "value": "an", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 262 }, @@ -1066,7 +1314,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 264 }, @@ -1075,7 +1325,9 @@ "token": "having", "value": "HAVING", "keyword": "HAVING", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 265 }, @@ -1084,7 +1336,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 271 }, @@ -1093,7 +1347,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 272 }, @@ -1102,7 +1358,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 273 }, @@ -1111,7 +1369,9 @@ "token": "acn", "value": "acn", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 274 }, @@ -1120,7 +1380,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 277 }, @@ -1129,7 +1391,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 278 }, @@ -1138,7 +1402,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 279 }, @@ -1147,7 +1413,9 @@ "token": "act", "value": "act", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 280 }, @@ -1156,7 +1424,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 283 }, @@ -1165,7 +1435,9 @@ "token": "an", "value": "an", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 284 }, @@ -1174,7 +1446,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 286 }, @@ -1183,7 +1457,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 287 }, @@ -1192,7 +1468,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 288 }, @@ -1201,7 +1479,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 289 }, @@ -1210,7 +1490,9 @@ "token": "'2021-01-28'", "value": "2021-01-28", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 290 }, @@ -1219,7 +1501,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 302 }, @@ -1228,7 +1512,9 @@ "token": "THEN", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 303 }, @@ -1237,7 +1523,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 307 }, @@ -1246,7 +1534,9 @@ "token": "'06/30/2020'", "value": "06/30/2020", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 308 }, @@ -1255,7 +1545,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 320 }, @@ -1264,7 +1556,9 @@ "token": "WHEN", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 325 }, @@ -1273,7 +1567,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 329 }, @@ -1282,7 +1578,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 330 }, @@ -1291,7 +1589,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 331 }, @@ -1300,7 +1600,9 @@ "token": "co", "value": "co", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 332 }, @@ -1309,7 +1611,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 334 }, @@ -1318,7 +1622,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 335 }, @@ -1327,7 +1633,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 336 }, @@ -1336,7 +1644,9 @@ "token": "'2021-01-28'", "value": "2021-01-28", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 337 }, @@ -1345,7 +1655,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 349 }, @@ -1354,7 +1666,9 @@ "token": "THEN", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 350 }, @@ -1363,7 +1677,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 354 }, @@ -1372,7 +1688,9 @@ "token": "'12/31/2019'", "value": "12/31/2019", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 355 }, @@ -1381,7 +1699,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 367 }, @@ -1390,7 +1710,9 @@ "token": "ELSE", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 372 }, @@ -1399,7 +1721,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 376 }, @@ -1408,7 +1732,9 @@ "token": "'06/30/2020'", "value": "06/30/2020", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 377 }, @@ -1417,7 +1743,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 389 }, @@ -1426,7 +1754,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 390 }, @@ -1435,7 +1765,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 393 }, @@ -1444,7 +1776,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 394 }, @@ -1453,7 +1787,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 396 }, @@ -1462,7 +1798,9 @@ "token": "DAOD", "value": "DAOD", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 397 }, @@ -1471,7 +1809,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 401 }, @@ -1480,7 +1820,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 402 }, @@ -1489,7 +1831,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 406 }, @@ -1498,7 +1842,11 @@ "token": "`LTKP`", "value": "LTKP", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 407 }, @@ -1507,7 +1855,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 413 }, @@ -1516,7 +1866,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 414 }, @@ -1525,7 +1877,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 415 }, @@ -1534,7 +1888,9 @@ "token": "left join", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 416 }, @@ -1543,7 +1899,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 425 }, @@ -1552,7 +1910,9 @@ "token": "`LQA`", "value": "LQA", "keyword": null, - "type": 8, + "type": { + "@type": "@173" + }, "flags": 2, "position": 426 }, @@ -1561,7 +1921,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 431 }, @@ -1570,7 +1932,9 @@ "token": "qa", "value": "qa", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 432 }, @@ -1579,7 +1943,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 434 }, @@ -1588,7 +1954,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 435 }, @@ -1597,7 +1965,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 437 }, @@ -1606,7 +1976,9 @@ "token": "qa", "value": "qa", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 438 }, @@ -1615,7 +1987,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 440 }, @@ -1624,7 +1998,9 @@ "token": "pi", "value": "pi", "keyword": "PI", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 441 }, @@ -1633,7 +2009,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 443 }, @@ -1642,7 +2020,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 444 }, @@ -1651,7 +2031,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 445 }, @@ -1660,7 +2042,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 446 }, @@ -1669,7 +2053,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 447 }, @@ -1678,7 +2064,9 @@ "token": "ID", "value": "ID", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 448 }, @@ -1687,7 +2075,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 450 }, @@ -1696,7 +2086,9 @@ "token": "left join", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 451 }, @@ -1705,7 +2097,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 460 }, @@ -1714,7 +2108,9 @@ "token": "LSA", "value": "LSA", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 461 }, @@ -1723,7 +2119,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 464 }, @@ -1732,7 +2130,9 @@ "token": "act", "value": "act", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 465 }, @@ -1741,7 +2141,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 468 }, @@ -1750,7 +2152,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 469 }, @@ -1759,7 +2163,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 471 }, @@ -1768,7 +2174,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 472 }, @@ -1777,7 +2185,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 473 }, @@ -1786,7 +2196,9 @@ "token": "acn", "value": "acn", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 474 }, @@ -1795,7 +2207,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 477 }, @@ -1804,7 +2218,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 478 }, @@ -1813,7 +2229,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 479 }, @@ -1822,7 +2240,9 @@ "token": "act", "value": "act", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 480 }, @@ -1831,7 +2251,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 483 }, @@ -1840,7 +2262,9 @@ "token": "an", "value": "an", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 484 }, @@ -1849,7 +2273,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 486 }, @@ -1858,7 +2284,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 487 }, @@ -1867,7 +2295,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 492 }, @@ -1876,7 +2306,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 494 }, @@ -1885,7 +2317,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 495 }, @@ -1894,7 +2328,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 496 }, @@ -1903,7 +2339,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 497 }, @@ -1912,7 +2350,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 498 }, @@ -1921,7 +2361,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 499 }, @@ -1930,7 +2374,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 500 }, @@ -1939,7 +2385,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 501 }, @@ -1948,7 +2396,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 504 }, @@ -1957,7 +2407,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 505 }, @@ -1966,7 +2418,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 506 }, @@ -1975,7 +2429,9 @@ "token": "mr", "value": "mr", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 507 }, @@ -1984,7 +2440,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 509 }, @@ -1993,7 +2451,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 510 }, @@ -2002,7 +2462,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 511 }, @@ -2011,7 +2473,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@221" + }, "flags": 0, "position": 512 }, @@ -2020,7 +2484,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 513 }, @@ -2029,7 +2495,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 514 }, @@ -2038,7 +2506,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 517 }, @@ -2047,7 +2517,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 518 }, @@ -2056,7 +2528,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 519 }, @@ -2065,7 +2539,9 @@ "token": "sc", "value": "sc", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 520 }, @@ -2074,7 +2550,9 @@ "token": "<>", "value": "<>", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 522 }, @@ -2083,7 +2561,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 524 }, @@ -2092,7 +2572,9 @@ "token": "'23'", "value": "23", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 525 }, @@ -2101,7 +2583,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 529 }, @@ -2110,7 +2594,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 530 }, @@ -2119,7 +2605,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 533 }, @@ -2128,7 +2616,9 @@ "token": "qa", "value": "qa", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 534 }, @@ -2137,7 +2627,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 536 }, @@ -2146,7 +2638,9 @@ "token": "qt", "value": "qt", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 537 }, @@ -2155,7 +2649,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 539 }, @@ -2164,7 +2660,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 540 }, @@ -2173,7 +2671,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 541 }, @@ -2182,7 +2682,9 @@ "token": "'TEXT'", "value": "TEXT", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 1, "position": 542 }, @@ -2191,7 +2693,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 548 }, @@ -2200,7 +2704,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 549 }, @@ -2209,7 +2715,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 552 }, @@ -2218,7 +2726,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 553 }, @@ -2227,7 +2737,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 554 }, @@ -2236,7 +2748,9 @@ "token": "tl", "value": "tl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 555 }, @@ -2245,7 +2759,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 557 }, @@ -2254,7 +2770,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 558 }, @@ -2263,7 +2781,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 559 }, @@ -2272,7 +2792,9 @@ "token": "\"TEXT\"", "value": "TEXT", "keyword": null, - "type": 7, + "type": { + "@type": "@29" + }, "flags": 2, "position": 560 }, @@ -2281,7 +2803,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 566 }, @@ -2290,7 +2814,9 @@ "token": "and", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 567 }, @@ -2299,7 +2825,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 570 }, @@ -2308,7 +2836,9 @@ "token": "qa", "value": "qa", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 571 }, @@ -2317,7 +2847,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 573 }, @@ -2326,7 +2858,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 574 }, @@ -2335,7 +2869,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 575 }, @@ -2344,7 +2880,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 576 }, @@ -2353,7 +2891,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 577 }, @@ -2362,30 +2902,34 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@221" + }, "flags": 0, "position": 578 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 263, - "idx": 263 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -2426,13 +2970,19 @@ "Y" ], "isOperator": false, - "expr": "p.cc = 'Y'" + "expr": "p.cc = 'Y'", + "leftOperand": "p.cc", + "operator": "=", + "rightOperand": "'Y'" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -2441,7 +2991,10 @@ "Found" ], "isOperator": false, - "expr": "dd = 'Found'" + "expr": "dd = 'Found'", + "leftOperand": "dd", + "operator": "=", + "rightOperand": "'Found'" } ], [ @@ -2453,13 +3006,19 @@ "" ], "isOperator": false, - "expr": "p.cc = ''" + "expr": "p.cc = ''", + "leftOperand": "p.cc", + "operator": "=", + "rightOperand": "''" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -2468,7 +3027,10 @@ "Found" ], "isOperator": false, - "expr": "dd = 'Found'" + "expr": "dd = 'Found'", + "leftOperand": "dd", + "operator": "=", + "rightOperand": "'Found'" } ] ], @@ -2494,8 +3056,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": { + "compareValues": [], + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -2520,7 +3082,10 @@ "Found" ], "isOperator": false, - "expr": "dd = 'Found'" + "expr": "dd = 'Found'", + "leftOperand": "dd", + "operator": "=", + "rightOperand": "'Found'" } ] ], @@ -2536,8 +3101,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": { + "compareValues": [], + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -2568,7 +3133,10 @@ "2021-01-28" ], "isOperator": false, - "expr": "(SELECT MAX(cd) from LSA act group by act.an having p.acn = act.an) > '2021-01-28'" + "expr": "(SELECT MAX(cd) from LSA act group by act.an having p.acn = act.an) > '2021-01-28'", + "leftOperand": "(SELECT MAX(cd) from LSA act group by act.an having p.acn = act.an)", + "operator": ">", + "rightOperand": "'2021-01-28'" } ], [ @@ -2580,7 +3148,10 @@ "2021-01-28" ], "isOperator": false, - "expr": "p.co < '2021-01-28'" + "expr": "p.co < '2021-01-28'", + "leftOperand": "p.co", + "operator": "<", + "rightOperand": "'2021-01-28'" } ] ], @@ -2606,8 +3177,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": { + "compareValues": [], + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -2633,7 +3204,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -2643,13 +3214,19 @@ "a" ], "isOperator": false, - "expr": "p.a =1" + "expr": "p.a =1", + "leftOperand": "p.a", + "operator": "=", + "rightOperand": "1" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -2658,13 +3235,19 @@ "mr" ], "isOperator": false, - "expr": "p.mr = 1" + "expr": "p.mr = 1", + "leftOperand": "p.mr", + "operator": "=", + "rightOperand": "1" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -2674,13 +3257,19 @@ "23" ], "isOperator": false, - "expr": "p.sc<> '23'" + "expr": "p.sc<> '23'", + "leftOperand": "p.sc", + "operator": "<>", + "rightOperand": "'23'" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -2690,13 +3279,19 @@ "TEXT" ], "isOperator": false, - "expr": "qa.qt = 'TEXT'" + "expr": "qa.qt = 'TEXT'", + "leftOperand": "qa.qt", + "operator": "=", + "rightOperand": "'TEXT'" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -2706,13 +3301,19 @@ "TEXT" ], "isOperator": false, - "expr": "p.tl = \"TEXT\"" + "expr": "p.tl = \"TEXT\"", + "leftOperand": "p.tl", + "operator": "=", + "rightOperand": "\"TEXT\"" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -2721,11 +3322,14 @@ "a" ], "isOperator": false, - "expr": "qa.a = 1" + "expr": "qa.a = 1", + "leftOperand": "qa.a", + "operator": "=", + "rightOperand": "1" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -2755,10 +3359,14 @@ "ID" ], "isOperator": false, - "expr": "qa.pi = p.ID" + "expr": "qa.pi = p.ID", + "leftOperand": "qa.pi", + "operator": "=", + "rightOperand": "p.ID" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -2783,14 +3391,18 @@ "an" ], "isOperator": false, - "expr": "p.acn = act.an" + "expr": "p.acn = act.an", + "leftOperand": "p.acn", + "operator": "=", + "rightOperand": "act.an" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -2799,9 +3411,7 @@ "last": 261 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect2.out b/tests/data/parser/parseSelect2.out index c7fd682a3..2a24adf33 100644 --- a/tests/data/parser/parseSelect2.out +++ b/tests/data/parser/parseSelect2.out @@ -2,18 +2,26 @@ "query": "SELECT (SELECT 'foo') bar, (SELECT 'baz') AS qux, a as b FROM tabl;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT (SELECT 'foo') bar, (SELECT 'baz') AS qux, a as b FROM tabl;", "len": 67, "last": 67, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 33, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,11 @@ "token": "'foo'", "value": "foo", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 15 }, @@ -67,7 +91,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,11 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 22 }, @@ -94,7 +126,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 25 }, @@ -103,7 +137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -112,7 +148,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 27 }, @@ -121,7 +159,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 28 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -139,7 +181,9 @@ "token": "'baz'", "value": "baz", "keyword": null, - "type": 7, + "type": { + "@type": "@11" + }, "flags": 1, "position": 35 }, @@ -148,7 +192,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 40 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -166,7 +214,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -184,7 +236,9 @@ "token": "qux", "value": "qux", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 45 }, @@ -193,7 +247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 48 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -211,7 +269,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 50 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -229,7 +291,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -247,7 +313,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 55 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -265,7 +335,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 57 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -283,7 +357,9 @@ "token": "tabl", "value": "tabl", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 62 }, @@ -292,30 +368,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 66 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@39" + }, "flags": 0, "position": null } - ], - "count": 33, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -366,11 +446,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -378,7 +458,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -387,9 +467,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect3.out b/tests/data/parser/parseSelect3.out index afa5c0208..5b6375be6 100644 --- a/tests/data/parser/parseSelect3.out +++ b/tests/data/parser/parseSelect3.out @@ -2,18 +2,26 @@ "query": "SELECT left_tbl.*\nFROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id\nWHERE right_tbl.id IS NULL;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT left_tbl.*\nFROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id\nWHERE right_tbl.id IS NULL;", "len": 109, "last": 109, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 37, + "idx": 37, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "left_tbl", "value": "left_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 15 }, @@ -49,7 +69,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 16 }, @@ -58,7 +80,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +91,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +113,9 @@ "token": "left_tbl", "value": "left_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +135,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 32 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -121,7 +157,9 @@ "token": "right_tbl", "value": "right_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 42 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -139,7 +179,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -157,7 +201,9 @@ "token": "left_tbl", "value": "left_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 55 }, @@ -166,7 +212,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 63 }, @@ -175,7 +223,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 64 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -193,7 +245,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 67 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -211,7 +267,9 @@ "token": "right_tbl", "value": "right_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 69 }, @@ -220,7 +278,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 78 }, @@ -229,7 +289,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 79 }, @@ -238,7 +300,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -247,7 +311,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -265,7 +333,9 @@ "token": "right_tbl", "value": "right_tbl", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 88 }, @@ -274,7 +344,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 97 }, @@ -283,7 +355,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 98 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -301,7 +377,9 @@ "token": "IS", "value": "IS", "keyword": "IS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 101 }, @@ -310,7 +388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -319,7 +399,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 104 }, @@ -328,30 +410,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 108 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@42" + }, "flags": 0, "position": null } - ], - "count": 37, - "idx": 37 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -382,7 +468,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -392,11 +478,14 @@ "id" ], "isOperator": false, - "expr": "right_tbl.id IS NULL" + "expr": "right_tbl.id IS NULL", + "leftOperand": "right_tbl.id IS NULL", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -425,14 +514,18 @@ "right_tbl" ], "isOperator": false, - "expr": "left_tbl.id = right_tbl.id" + "expr": "left_tbl.id = right_tbl.id", + "leftOperand": "left_tbl.id", + "operator": "=", + "rightOperand": "right_tbl.id" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -441,9 +534,7 @@ "last": 34 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect4.out b/tests/data/parser/parseSelect4.out index beba51301..0fc45296a 100644 --- a/tests/data/parser/parseSelect4.out +++ b/tests/data/parser/parseSelect4.out @@ -2,18 +2,26 @@ "query": "SELECT *\n FROM test\n WHERE RIGHT(name, 2) = 'AB';\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT *\n FROM test\n WHERE RIGHT(name, 2) = 'AB';\n", "len": 54, "last": 54, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 17 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -103,7 +135,9 @@ "token": "RIGHT", "value": "RIGHT", "keyword": "RIGHT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 31 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 36 }, @@ -121,7 +157,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 37 }, @@ -130,7 +168,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 41 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +190,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 43 }, @@ -157,7 +203,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 44 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -175,7 +225,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 46 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -193,7 +247,11 @@ "token": "'AB'", "value": "AB", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 48 }, @@ -202,7 +260,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 52 }, @@ -211,30 +273,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@30" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -265,7 +329,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -275,11 +339,14 @@ "AB" ], "isOperator": false, - "expr": "RIGHT(name, 2) = 'AB'" + "expr": "RIGHT(name, 2) = 'AB'", + "leftOperand": "RIGHT(name, 2)", + "operator": "=", + "rightOperand": "'AB'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -287,7 +354,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -296,9 +363,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect5.out b/tests/data/parser/parseSelect5.out index f27abfe25..9c377a171 100644 --- a/tests/data/parser/parseSelect5.out +++ b/tests/data/parser/parseSelect5.out @@ -2,18 +2,26 @@ "query": "SELECT c1, c2, c3\n /* Subquery in FROM list */\n FROM (SELECT C1, c2, c3 FROM test2) t1\n WHERE RIGHT(name, 2) = 'AB';\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT c1, c2, c3\n /* Subquery in FROM list */\n FROM (SELECT C1, c2, c3 FROM test2) t1\n WHERE RIGHT(name, 2) = 'AB';\n", "len": 123, "last": 123, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 48, + "idx": 48, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "c1", "value": "c1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -58,7 +80,9 @@ "token": "c2", "value": "c2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 13 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -85,7 +113,9 @@ "token": "c3", "value": "c3", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 15 }, @@ -94,7 +124,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -103,7 +135,11 @@ "token": "/* Subquery in FROM list */", "value": "/* Subquery in FROM list */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 21 }, @@ -112,7 +148,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -121,7 +159,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -139,7 +181,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 57 }, @@ -148,7 +192,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 58 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -166,7 +214,9 @@ "token": "C1", "value": "C1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 65 }, @@ -175,7 +225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 67 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -193,7 +247,9 @@ "token": "c2", "value": "c2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 69 }, @@ -202,7 +258,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 71 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -220,7 +280,9 @@ "token": "c3", "value": "c3", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 73 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -238,7 +302,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -256,7 +324,9 @@ "token": "test2", "value": "test2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, @@ -265,7 +335,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 86 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -301,7 +379,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 94 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -319,7 +401,9 @@ "token": "RIGHT", "value": "RIGHT", "keyword": "RIGHT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 100 }, @@ -328,7 +412,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 105 }, @@ -337,7 +423,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 106 }, @@ -346,7 +434,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 110 }, @@ -355,7 +445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -364,7 +456,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 112 }, @@ -373,7 +469,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 113 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -391,7 +491,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 115 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -409,7 +513,11 @@ "token": "'AB'", "value": "AB", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 117 }, @@ -418,7 +526,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 121 }, @@ -427,30 +539,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@55" + }, "flags": 0, "position": null } - ], - "count": 48, - "idx": 48 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -501,7 +615,7 @@ "subquery": "SELECT" } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -511,11 +625,14 @@ "AB" ], "isOperator": false, - "expr": "RIGHT(name, 2) = 'AB'" + "expr": "RIGHT(name, 2) = 'AB'", + "leftOperand": "RIGHT(name, 2)", + "operator": "=", + "rightOperand": "'AB'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -523,7 +640,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -532,9 +649,7 @@ "last": 44 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect6.out b/tests/data/parser/parseSelect6.out index e4f32ace6..cb3a2bb23 100644 --- a/tests/data/parser/parseSelect6.out +++ b/tests/data/parser/parseSelect6.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM t1 LEFT JOIN (t2, t3, t4)\n ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM t1 LEFT JOIN (t2, t3, t4)\n ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)\n", "len": 100, "last": 100, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 53, + "idx": 53, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -85,7 +113,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 17 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 27 }, @@ -112,7 +146,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 28 }, @@ -121,7 +157,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -139,7 +179,9 @@ "token": "t3", "value": "t3", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 32 }, @@ -148,7 +190,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 34 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -166,7 +212,9 @@ "token": "t4", "value": "t4", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 36 }, @@ -175,7 +223,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 38 }, @@ -184,7 +234,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -193,7 +245,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 57 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -211,7 +267,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 60 }, @@ -220,7 +278,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 61 }, @@ -229,7 +289,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 63 }, @@ -238,7 +300,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 64 }, @@ -247,7 +311,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 65 }, @@ -256,7 +322,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 66 }, @@ -265,7 +333,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 68 }, @@ -274,7 +344,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 69 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -292,7 +366,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -310,7 +388,9 @@ "token": "t3", "value": "t3", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 75 }, @@ -319,7 +399,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 77 }, @@ -328,7 +410,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 78 }, @@ -337,7 +421,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 79 }, @@ -346,7 +432,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 80 }, @@ -355,7 +443,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 82 }, @@ -364,7 +454,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 83 }, @@ -373,7 +465,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -382,7 +476,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 85 }, @@ -391,7 +487,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -400,7 +498,9 @@ "token": "t4", "value": "t4", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 89 }, @@ -409,7 +509,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 91 }, @@ -418,7 +520,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 92 }, @@ -427,7 +531,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 93 }, @@ -436,7 +542,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 94 }, @@ -445,7 +553,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 96 }, @@ -454,7 +564,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 97 }, @@ -463,7 +575,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 98 }, @@ -472,30 +586,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 53, - "idx": 53 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -526,11 +644,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -559,13 +677,19 @@ "t1" ], "isOperator": false, - "expr": "(t2.a=t1.a" + "expr": "(t2.a=t1.a", + "leftOperand": "(t2.a", + "operator": "=", + "rightOperand": "t1.a" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -575,13 +699,19 @@ "t1" ], "isOperator": false, - "expr": "t3.b=t1.b" + "expr": "t3.b=t1.b", + "leftOperand": "t3.b", + "operator": "=", + "rightOperand": "t1.b" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -591,14 +721,18 @@ "t1" ], "isOperator": false, - "expr": "t4.c=t1.c)" + "expr": "t4.c=t1.c)", + "leftOperand": "t4.c", + "operator": "=", + "rightOperand": "t1.c)" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -607,9 +741,7 @@ "last": 51 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect7.out b/tests/data/parser/parseSelect7.out index 95dfcd883..733fedcef 100644 --- a/tests/data/parser/parseSelect7.out +++ b/tests/data/parser/parseSelect7.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4)\n ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4)\n ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)", "len": 119, "last": 119, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 54, + "idx": 54, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -85,7 +113,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 17 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 27 }, @@ -112,7 +146,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 28 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -130,7 +168,9 @@ "token": "CROSS JOIN", "value": "CROSS JOIN", "keyword": "CROSS JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 31 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +190,9 @@ "token": "t3", "value": "t3", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 42 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": "CROSS JOIN", "value": "CROSS JOIN", "keyword": "CROSS JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 45 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -184,7 +234,9 @@ "token": "t4", "value": "t4", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 56 }, @@ -193,7 +245,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 58 }, @@ -202,7 +256,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -211,7 +267,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -229,7 +289,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -238,7 +300,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 81 }, @@ -247,7 +311,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 83 }, @@ -256,7 +322,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 84 }, @@ -265,7 +333,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 85 }, @@ -274,7 +344,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 86 }, @@ -283,7 +355,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 88 }, @@ -292,7 +366,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 89 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -310,7 +388,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 91 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -328,7 +410,9 @@ "token": "t3", "value": "t3", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 95 }, @@ -337,7 +421,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 97 }, @@ -346,7 +432,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 98 }, @@ -355,7 +443,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 99 }, @@ -364,7 +454,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 100 }, @@ -373,7 +465,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 102 }, @@ -382,7 +476,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 103 }, @@ -391,7 +487,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -400,7 +498,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 105 }, @@ -409,7 +509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -418,7 +520,9 @@ "token": "t4", "value": "t4", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 109 }, @@ -427,7 +531,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 111 }, @@ -436,7 +542,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 112 }, @@ -445,7 +553,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 113 }, @@ -454,7 +564,9 @@ "token": "t1", "value": "t1", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 114 }, @@ -463,7 +575,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 116 }, @@ -472,7 +586,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 117 }, @@ -481,30 +597,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 118 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 54, - "idx": 54 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -535,11 +655,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -568,13 +688,19 @@ "t1" ], "isOperator": false, - "expr": "(t2.a=t1.a" + "expr": "(t2.a=t1.a", + "leftOperand": "(t2.a", + "operator": "=", + "rightOperand": "t1.a" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -584,13 +710,19 @@ "t1" ], "isOperator": false, - "expr": "t3.b=t1.b" + "expr": "t3.b=t1.b", + "leftOperand": "t3.b", + "operator": "=", + "rightOperand": "t1.b" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -600,14 +732,18 @@ "t1" ], "isOperator": false, - "expr": "t4.c=t1.c)" + "expr": "t4.c=t1.c)", + "leftOperand": "t4.c", + "operator": "=", + "rightOperand": "t1.c)" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -616,9 +752,7 @@ "last": 52 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect8.out b/tests/data/parser/parseSelect8.out index 03db5f396..b84436f04 100644 --- a/tests/data/parser/parseSelect8.out +++ b/tests/data/parser/parseSelect8.out @@ -2,18 +2,26 @@ "query": "select * FROM (select Pop FROM MyTable) p join tadaa t where p.x=t.y", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select * FROM (select Pop FROM MyTable) p join tadaa t where p.x=t.y", "len": 68, "last": 68, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 14 }, @@ -76,7 +100,9 @@ "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -94,7 +122,11 @@ "token": "Pop", "value": "Pop", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 22 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -112,7 +146,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -130,7 +168,9 @@ "token": "MyTable", "value": "MyTable", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 38 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -157,7 +201,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 40 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -175,7 +223,9 @@ "token": "join", "value": "JOIN", "keyword": "JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -193,7 +245,9 @@ "token": "tadaa", "value": "tadaa", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 47 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -211,7 +267,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 53 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -229,7 +289,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 55 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -247,7 +311,9 @@ "token": "p", "value": "p", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 61 }, @@ -256,7 +322,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 62 }, @@ -265,7 +333,9 @@ "token": "x", "value": "x", "keyword": "X", - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 63 }, @@ -274,7 +344,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 64 }, @@ -283,7 +355,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 65 }, @@ -292,7 +366,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 66 }, @@ -301,30 +377,34 @@ "token": "y", "value": "y", "keyword": "Y", - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 67 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -355,7 +435,7 @@ "subquery": "SELECT" } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -367,11 +447,14 @@ "y" ], "isOperator": false, - "expr": "p.x=t.y" + "expr": "p.x=t.y", + "leftOperand": "p.x", + "operator": "=", + "rightOperand": "t.y" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -392,11 +475,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -405,9 +489,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelect9.out b/tests/data/parser/parseSelect9.out index bcaba576e..3014931a2 100644 --- a/tests/data/parser/parseSelect9.out +++ b/tests/data/parser/parseSelect9.out @@ -2,18 +2,26 @@ "query": "SELECT casein_pipe, email_cp, name_first_cp, name_last_cp, purpose_pipe\nFROM (tbl_comp_person INNER JOIN `tbl_pipelist` ON tbl_comp_person.IDp = tbl_pipelist.IDp)\nWHERE casein_pipe > '2016-03-01' AND `campaign_id_pipe` = 24569 AND `weeksonlist_pipe` = 1\nORDER BY `tbl_pipelist`.`casein_pipe` ASC", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT casein_pipe, email_cp, name_first_cp, name_last_cp, purpose_pipe\nFROM (tbl_comp_person INNER JOIN `tbl_pipelist` ON tbl_comp_person.IDp = tbl_pipelist.IDp)\nWHERE casein_pipe > '2016-03-01' AND `campaign_id_pipe` = 24569 AND `weeksonlist_pipe` = 1\nORDER BY `tbl_pipelist`.`casein_pipe` ASC", "len": 296, "last": 296, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 70, + "idx": 70, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "casein_pipe", "value": "casein_pipe", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 18 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -58,7 +80,9 @@ "token": "email_cp", "value": "email_cp", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 20 }, @@ -67,7 +91,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 28 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -85,7 +113,9 @@ "token": "name_first_cp", "value": "name_first_cp", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 30 }, @@ -94,7 +124,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 43 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -112,7 +146,9 @@ "token": "name_last_cp", "value": "name_last_cp", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 45 }, @@ -121,7 +157,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 57 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -139,7 +179,9 @@ "token": "purpose_pipe", "value": "purpose_pipe", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -148,7 +190,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -157,7 +201,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 72 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 77 }, @@ -184,7 +234,9 @@ "token": "tbl_comp_person", "value": "tbl_comp_person", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 78 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -202,7 +256,9 @@ "token": "INNER JOIN", "value": "INNER JOIN", "keyword": "INNER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 94 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -220,7 +278,11 @@ "token": "`tbl_pipelist`", "value": "tbl_pipelist", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 105 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -238,7 +302,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 120 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -256,7 +324,9 @@ "token": "tbl_comp_person", "value": "tbl_comp_person", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 123 }, @@ -265,7 +335,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 138 }, @@ -274,7 +346,9 @@ "token": "IDp", "value": "IDp", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 139 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -292,7 +368,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 143 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -310,7 +390,9 @@ "token": "tbl_pipelist", "value": "tbl_pipelist", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 145 }, @@ -319,7 +401,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 157 }, @@ -328,7 +412,9 @@ "token": "IDp", "value": "IDp", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 158 }, @@ -337,7 +423,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 161 }, @@ -346,7 +434,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -355,7 +445,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 163 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 168 }, @@ -373,7 +467,9 @@ "token": "casein_pipe", "value": "casein_pipe", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 169 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 180 }, @@ -391,7 +489,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 181 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -409,7 +511,11 @@ "token": "'2016-03-01'", "value": "2016-03-01", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 183 }, @@ -418,7 +524,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 195 }, @@ -427,7 +535,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 196 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -445,7 +557,9 @@ "token": "`campaign_id_pipe`", "value": "campaign_id_pipe", "keyword": null, - "type": 8, + "type": { + "@type": "@30" + }, "flags": 2, "position": 201 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 219 }, @@ -463,7 +579,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 220 }, @@ -472,7 +590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 221 }, @@ -481,7 +601,11 @@ "token": "24569", "value": 24569, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 222 }, @@ -490,7 +614,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 227 }, @@ -499,7 +625,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 228 }, @@ -508,7 +636,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 231 }, @@ -517,7 +647,9 @@ "token": "`weeksonlist_pipe`", "value": "weeksonlist_pipe", "keyword": null, - "type": 8, + "type": { + "@type": "@30" + }, "flags": 2, "position": 232 }, @@ -526,7 +658,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 250 }, @@ -535,7 +669,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 251 }, @@ -544,7 +680,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 252 }, @@ -553,7 +691,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@61" + }, "flags": 0, "position": 253 }, @@ -562,7 +702,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 254 }, @@ -571,7 +713,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 255 }, @@ -580,7 +724,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -589,7 +735,9 @@ "token": "`tbl_pipelist`", "value": "tbl_pipelist", "keyword": null, - "type": 8, + "type": { + "@type": "@30" + }, "flags": 2, "position": 264 }, @@ -598,7 +746,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 278 }, @@ -607,7 +757,9 @@ "token": "`casein_pipe`", "value": "casein_pipe", "keyword": null, - "type": 8, + "type": { + "@type": "@30" + }, "flags": 2, "position": 279 }, @@ -616,7 +768,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 292 }, @@ -625,30 +779,34 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 293 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 70, - "idx": 70 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -719,7 +877,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -729,13 +887,19 @@ "2016-03-01" ], "isOperator": false, - "expr": "casein_pipe > '2016-03-01'" + "expr": "casein_pipe > '2016-03-01'", + "leftOperand": "casein_pipe", + "operator": ">", + "rightOperand": "'2016-03-01'" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -743,13 +907,19 @@ "campaign_id_pipe" ], "isOperator": false, - "expr": "`campaign_id_pipe` = 24569" + "expr": "`campaign_id_pipe` = 24569", + "leftOperand": "`campaign_id_pipe`", + "operator": "=", + "rightOperand": "24569" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -757,11 +927,14 @@ "weeksonlist_pipe" ], "isOperator": false, - "expr": "`weeksonlist_pipe` = 1" + "expr": "`weeksonlist_pipe` = 1", + "leftOperand": "`weeksonlist_pipe`", + "operator": "=", + "rightOperand": "1" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [ { @@ -776,7 +949,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -784,7 +961,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -793,9 +970,7 @@ "last": 68 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectAggregateWithPartitionAndAlias.out b/tests/data/parser/parseSelectAggregateWithPartitionAndAlias.out index 3fcc0454b..69bc2ec40 100644 --- a/tests/data/parser/parseSelectAggregateWithPartitionAndAlias.out +++ b/tests/data/parser/parseSelectAggregateWithPartitionAndAlias.out @@ -2,18 +2,26 @@ "query": "SELECT *, COUNT(*) OVER(PARTITION BY `REGION`) AS \"count(REGION)\" FROM `world_borders`\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT *, COUNT(*) OVER(PARTITION BY `REGION`) AS \"count(REGION)\" FROM `world_borders`\n", "len": 87, "last": 87, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 26, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -58,7 +78,9 @@ "token": "COUNT", "value": "COUNT", "keyword": "COUNT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 10 }, @@ -67,7 +89,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 15 }, @@ -76,7 +100,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 16 }, @@ -85,7 +111,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 17 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -103,7 +133,11 @@ "token": "OVER", "value": "OVER", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 19 }, @@ -112,7 +146,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 23 }, @@ -121,7 +157,9 @@ "token": "PARTITION BY", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 24 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -139,7 +179,11 @@ "token": "`REGION`", "value": "REGION", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 37 }, @@ -148,7 +192,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 45 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -166,7 +214,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -184,7 +236,11 @@ "token": "\"count(REGION)\"", "value": "count(REGION)", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 50 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -202,7 +260,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 66 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -220,7 +282,9 @@ "token": "`world_borders`", "value": "world_borders", "keyword": null, - "type": 8, + "type": { + "@type": "@21" + }, "flags": 2, "position": 71 }, @@ -229,30 +293,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 26 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -293,11 +361,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -305,7 +373,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -314,9 +382,7 @@ "last": 24 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCase1.out b/tests/data/parser/parseSelectCase1.out index 1bae286a1..b2eaf36ea 100644 --- a/tests/data/parser/parseSelectCase1.out +++ b/tests/data/parser/parseSelectCase1.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end FROM a;", "len": 132, "last": 132, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 50, + "idx": 50, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -436,7 +546,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 130 }, @@ -445,30 +557,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 131 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@57" + }, "flags": 0, "position": null } - ], - "count": 50, - "idx": 50 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -511,7 +627,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -523,7 +639,7 @@ "subquery": null } ], - "else_result": { + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -549,11 +665,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -561,7 +677,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -570,9 +686,7 @@ "last": 47 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCase2.out b/tests/data/parser/parseSelectCase2.out index 0e363d6e2..fa4ca0c7a 100644 --- a/tests/data/parser/parseSelectCase2.out +++ b/tests/data/parser/parseSelectCase2.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" else \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" else \"Other\" end FROM a;", "len": 138, "last": 138, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 52, + "idx": 52, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 87 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -292,7 +370,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -310,7 +392,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 98 }, @@ -319,7 +403,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 99 }, @@ -328,7 +414,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -346,7 +436,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 102 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 107 }, @@ -373,7 +471,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -382,7 +482,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 114 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@48" + }, "flags": 2, "position": 119 }, @@ -409,7 +515,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -418,7 +526,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 127 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -436,7 +548,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 131 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -454,7 +570,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 136 }, @@ -463,30 +581,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 137 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@60" + }, "flags": 0, "position": null } - ], - "count": 52, - "idx": 52 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -513,7 +635,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ] ], @@ -529,8 +654,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": { + "compareValues": [], + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -556,11 +681,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -568,7 +693,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -577,9 +702,7 @@ "last": 49 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCase3.out b/tests/data/parser/parseSelectCase3.out index 4ccc79bf9..39595608a 100644 --- a/tests/data/parser/parseSelectCase3.out +++ b/tests/data/parser/parseSelectCase3.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" when 2=1 then \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" when 2=1 then \"Other\" end FROM a;", "len": 147, "last": 147, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 58, + "idx": 58, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 87 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -292,7 +370,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -310,7 +392,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 98 }, @@ -319,7 +403,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 99 }, @@ -328,7 +414,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -346,7 +436,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 102 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 107 }, @@ -373,7 +471,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -382,7 +482,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 114 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 119 }, @@ -409,7 +515,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 120 }, @@ -418,7 +526,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 121 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -436,7 +548,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 123 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -454,7 +570,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@48" + }, "flags": 2, "position": 128 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -472,7 +592,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 136 }, @@ -481,7 +603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -490,7 +614,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 140 }, @@ -499,7 +625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -508,7 +636,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 145 }, @@ -517,30 +647,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 146 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@66" + }, "flags": 0, "position": null } - ], - "count": 58, - "idx": 58 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -567,7 +701,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], [ @@ -575,7 +712,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "2=1" + "expr": "2=1", + "leftOperand": "2", + "operator": "=", + "rightOperand": "1" } ] ], @@ -601,8 +741,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": null, + "compareValues": [], + "elseResult": null, "alias": null, "expr": "CASE WHEN 1=1 THEN \"Some\" WHEN 2=1 THEN \"Other\" END" } @@ -619,11 +759,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -631,7 +771,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -640,9 +780,7 @@ "last": 55 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCase4.out b/tests/data/parser/parseSelectCase4.out index 0f5a15f05..856265dde 100644 --- a/tests/data/parser/parseSelectCase4.out +++ b/tests/data/parser/parseSelectCase4.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end FROM a;", "len": 145, "last": 145, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 56, + "idx": 56, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 89 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -310,7 +392,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 95 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -328,7 +414,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -346,7 +436,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 102 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 107 }, @@ -373,7 +471,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -382,7 +482,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 114 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 119 }, @@ -409,7 +515,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -418,7 +526,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 121 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -436,7 +548,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@48" + }, "flags": 2, "position": 126 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -454,7 +570,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 134 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 137 }, @@ -472,7 +592,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 138 }, @@ -481,7 +603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -490,7 +614,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 143 }, @@ -499,30 +625,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 144 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@64" + }, "flags": 0, "position": null } - ], - "count": 56, - "idx": 56 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -575,7 +705,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -597,7 +727,7 @@ "subquery": null } ], - "else_result": null, + "elseResult": null, "alias": null, "expr": "CASE 1 /* */ WHEN 1 THEN \"Some\" WHEN 2 THEN \"Other\" END" } @@ -614,11 +744,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -626,7 +756,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -635,9 +765,7 @@ "last": 53 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCase5.out b/tests/data/parser/parseSelectCase5.out index 3521358a2..844b99b5b 100644 --- a/tests/data/parser/parseSelectCase5.out +++ b/tests/data/parser/parseSelectCase5.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ntest=case 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ntest=case 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end FROM a;", "len": 150, "last": 150, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 58, + "idx": 58, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 82 }, @@ -265,7 +335,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 86 }, @@ -274,7 +346,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -292,7 +368,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 92 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 94 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -328,7 +414,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -346,7 +436,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 105 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 107 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -382,7 +480,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 112 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 119 }, @@ -409,7 +515,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -418,7 +526,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 124 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -436,7 +548,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 126 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -454,7 +570,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@50" + }, "flags": 2, "position": 131 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -472,7 +592,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 139 }, @@ -481,7 +603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -490,7 +614,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 143 }, @@ -499,7 +625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, @@ -508,7 +636,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 148 }, @@ -517,30 +647,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 149 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@66" + }, "flags": 0, "position": null } - ], - "count": 58, - "idx": 58 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -581,11 +715,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -593,7 +727,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -602,9 +736,7 @@ "last": 55 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCaseAlias1.out b/tests/data/parser/parseSelectCaseAlias1.out index 29eef698d..39e922a57 100644 --- a/tests/data/parser/parseSelectCaseAlias1.out +++ b/tests/data/parser/parseSelectCaseAlias1.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" when 2=1 then \"Other\" end /* */ AS /* */ foo FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" when 2=1 then \"Other\" end /* */ AS /* */ foo FROM a;", "len": 166, "last": 166, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 66, + "idx": 66, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 87 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -292,7 +370,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -310,7 +392,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 98 }, @@ -319,7 +403,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 99 }, @@ -328,7 +414,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -346,7 +436,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 102 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 107 }, @@ -373,7 +471,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -382,7 +482,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 114 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 119 }, @@ -409,7 +515,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 120 }, @@ -418,7 +526,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 121 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -436,7 +548,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 123 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -454,7 +570,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@48" + }, "flags": 2, "position": 128 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -472,7 +592,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 136 }, @@ -481,7 +603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -490,7 +614,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@37" + }, "flags": 2, "position": 140 }, @@ -499,7 +625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -508,7 +636,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 146 }, @@ -517,7 +647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -526,7 +658,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@37" + }, "flags": 2, "position": 149 }, @@ -535,7 +669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 154 }, @@ -544,7 +680,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 155 }, @@ -553,7 +691,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -562,7 +702,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 159 }, @@ -571,7 +713,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 163 }, @@ -580,7 +724,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 164 }, @@ -589,30 +735,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 165 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@74" + }, "flags": 0, "position": null } - ], - "count": 66, - "idx": 66 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -639,7 +789,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], [ @@ -647,7 +800,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "2=1" + "expr": "2=1", + "leftOperand": "2", + "operator": "=", + "rightOperand": "1" } ] ], @@ -673,8 +829,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": null, + "compareValues": [], + "elseResult": null, "alias": "foo", "expr": "CASE WHEN 1=1 THEN \"Some\" WHEN 2=1 THEN \"Other\" END AS `foo`" } @@ -691,11 +847,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -703,7 +859,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -712,9 +868,7 @@ "last": 63 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCaseAlias2.out b/tests/data/parser/parseSelectCaseAlias2.out index 5bb75f266..ccdd98d33 100644 --- a/tests/data/parser/parseSelectCaseAlias2.out +++ b/tests/data/parser/parseSelectCaseAlias2.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" when 2=1 then \"Other\" end /* */ foo FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase /* */ when 1=1 then \"Some\" when 2=1 then \"Other\" end /* */ foo FROM a;", "len": 157, "last": 157, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 62, + "idx": 62, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 87 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -292,7 +370,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -310,7 +392,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 98 }, @@ -319,7 +403,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 99 }, @@ -328,7 +414,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -346,7 +436,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 102 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 107 }, @@ -373,7 +471,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -382,7 +482,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 114 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 119 }, @@ -409,7 +515,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 120 }, @@ -418,7 +526,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 121 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 122 }, @@ -436,7 +548,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 123 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -454,7 +570,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@48" + }, "flags": 2, "position": 128 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -472,7 +592,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 136 }, @@ -481,7 +603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -490,7 +614,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@37" + }, "flags": 2, "position": 140 }, @@ -499,7 +625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -508,7 +636,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 146 }, @@ -517,7 +647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -526,7 +658,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 150 }, @@ -535,7 +669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 154 }, @@ -544,7 +680,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 155 }, @@ -553,30 +691,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 156 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@70" + }, "flags": 0, "position": null } - ], - "count": 62, - "idx": 62 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -603,7 +745,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], [ @@ -611,7 +756,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "2=1" + "expr": "2=1", + "leftOperand": "2", + "operator": "=", + "rightOperand": "1" } ] ], @@ -637,8 +785,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": null, + "compareValues": [], + "elseResult": null, "alias": "foo", "expr": "CASE WHEN 1=1 THEN \"Some\" WHEN 2=1 THEN \"Other\" END AS `foo`" } @@ -655,11 +803,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -667,7 +815,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -676,9 +824,7 @@ "last": 59 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCaseAlias3.out b/tests/data/parser/parseSelectCaseAlias3.out index de725d7de..8a12568d6 100644 --- a/tests/data/parser/parseSelectCaseAlias3.out +++ b/tests/data/parser/parseSelectCaseAlias3.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ntest=case 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end /* */ AS /* */ foo FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ntest=case 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end /* */ AS /* */ foo FROM a;", "len": 169, "last": 169, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 66, + "idx": 66, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 82 }, @@ -265,7 +335,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 86 }, @@ -274,7 +346,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -292,7 +368,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 92 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 94 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -328,7 +414,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -346,7 +436,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 105 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 107 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -382,7 +480,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 112 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 119 }, @@ -409,7 +515,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -418,7 +526,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 124 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -436,7 +548,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 126 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -454,7 +570,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@50" + }, "flags": 2, "position": 131 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -472,7 +592,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 139 }, @@ -481,7 +603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -490,7 +614,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@41" + }, "flags": 2, "position": 143 }, @@ -499,7 +625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -508,7 +636,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 149 }, @@ -517,7 +647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 151 }, @@ -526,7 +658,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@41" + }, "flags": 2, "position": 152 }, @@ -535,7 +669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -544,7 +680,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 158 }, @@ -553,7 +691,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 161 }, @@ -562,7 +702,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 162 }, @@ -571,7 +713,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 166 }, @@ -580,7 +724,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 167 }, @@ -589,30 +735,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 168 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@74" + }, "flags": 0, "position": null } - ], - "count": 66, - "idx": 66 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -653,11 +803,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -665,7 +815,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -674,9 +824,7 @@ "last": 63 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCaseAlias4.out b/tests/data/parser/parseSelectCaseAlias4.out index 1608f16f9..f49d83209 100644 --- a/tests/data/parser/parseSelectCaseAlias4.out +++ b/tests/data/parser/parseSelectCaseAlias4.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ntest=case 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end /* */ foo FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ntest=case 1 /* */ when 1 then \"Some\" when 2 then \"Other\" end /* */ foo FROM a;", "len": 160, "last": 160, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 62, + "idx": 62, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 82 }, @@ -265,7 +335,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 86 }, @@ -274,7 +346,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -292,7 +368,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 92 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,11 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 94 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -328,7 +414,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 100 }, @@ -337,7 +425,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -346,7 +436,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 105 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +458,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 107 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -382,7 +480,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 112 }, @@ -391,7 +493,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +504,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 119 }, @@ -409,7 +515,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -418,7 +526,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 124 }, @@ -427,7 +537,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -436,7 +548,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 126 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -454,7 +570,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@50" + }, "flags": 2, "position": 131 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -472,7 +592,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 139 }, @@ -481,7 +603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -490,7 +614,9 @@ "token": "/* */", "value": "/* */", "keyword": null, - "type": 4, + "type": { + "@type": "@41" + }, "flags": 2, "position": 143 }, @@ -499,7 +625,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -508,7 +636,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 149 }, @@ -517,7 +647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -526,7 +658,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 153 }, @@ -535,7 +669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 157 }, @@ -544,7 +680,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 158 }, @@ -553,30 +691,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 159 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@70" + }, "flags": 0, "position": null } - ], - "count": 62, - "idx": 62 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -617,11 +759,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -629,7 +771,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -638,9 +780,7 @@ "last": 59 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCaseAlias5.out b/tests/data/parser/parseSelectCaseAlias5.out index 6662e8201..5d2cd042d 100644 --- a/tests/data/parser/parseSelectCaseAlias5.out +++ b/tests/data/parser/parseSelectCaseAlias5.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS \"string value\" FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS \"string value\" FROM a;", "len": 150, "last": 150, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 54, + "idx": 54, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +546,9 @@ "token": "\"string value\"", "value": "string value", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 128 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -454,7 +568,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 143 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, @@ -472,7 +590,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 148 }, @@ -481,30 +601,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 149 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@61" + }, "flags": 0, "position": null } - ], - "count": 54, - "idx": 54 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -547,7 +671,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -559,7 +683,7 @@ "subquery": null } ], - "else_result": { + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -585,11 +709,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -597,7 +721,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -606,9 +730,7 @@ "last": 51 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCaseAlias6.out b/tests/data/parser/parseSelectCaseAlias6.out index 23c406684..69d24c652 100644 --- a/tests/data/parser/parseSelectCaseAlias6.out +++ b/tests/data/parser/parseSelectCaseAlias6.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS `symbol_value` FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS `symbol_value` FROM a;", "len": 150, "last": 150, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 54, + "idx": 54, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +546,11 @@ "token": "`symbol_value`", "value": "symbol_value", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 128 }, @@ -445,7 +559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 142 }, @@ -454,7 +570,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 143 }, @@ -463,7 +581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, @@ -472,7 +592,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 148 }, @@ -481,30 +603,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 149 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@62" + }, "flags": 0, "position": null } - ], - "count": 54, - "idx": 54 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -547,7 +673,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -559,7 +685,7 @@ "subquery": null } ], - "else_result": { + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -585,11 +711,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -597,7 +723,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -606,9 +732,7 @@ "last": 51 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectCaseAliasErr1.out b/tests/data/parser/parseSelectCaseAliasErr1.out index c5abcd9d8..7a11f9065 100644 --- a/tests/data/parser/parseSelectCaseAliasErr1.out +++ b/tests/data/parser/parseSelectCaseAliasErr1.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS AS foo FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS AS foo FROM a;", "len": 142, "last": 142, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 56, + "idx": 56, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +546,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 128 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 130 }, @@ -454,7 +568,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 131 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 134 }, @@ -472,7 +590,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 135 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -490,7 +612,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 140 }, @@ -499,30 +623,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 141 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@63" + }, "flags": 0, "position": null } - ], - "count": 56, - "idx": 56 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -565,7 +693,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -577,7 +705,7 @@ "subquery": null } ], - "else_result": { + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -603,11 +731,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -615,7 +743,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -624,9 +752,7 @@ "last": 53 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -634,28 +760,28 @@ [ "Potential duplicate alias of CASE expression.", { - "@type": "@49" + "@type": "@55" }, 0 ], [ "An alias was expected after AS.", { - "@type": "@48" + "@type": "@54" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@49" + "@type": "@55" }, 0 ], [ "Unexpected token.", { - "@type": "@51" + "@type": "@57" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseAliasErr2.out b/tests/data/parser/parseSelectCaseAliasErr2.out index 23e2297e6..5d66665b0 100644 --- a/tests/data/parser/parseSelectCaseAliasErr2.out +++ b/tests/data/parser/parseSelectCaseAliasErr2.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS FROM a;", "len": 135, "last": 135, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 52, + "idx": 52, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +546,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 128 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -454,7 +568,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 133 }, @@ -463,30 +579,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 134 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@59" + }, "flags": 0, "position": null } - ], - "count": 52, - "idx": 52 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -529,7 +649,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -541,7 +661,7 @@ "subquery": null } ], - "else_result": { + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -567,11 +687,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -579,7 +699,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -588,9 +708,7 @@ "last": 49 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -598,7 +716,7 @@ [ "An alias expected after AS but got FROM", { - "@type": "@49" + "@type": "@55" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseAliasErr3.out b/tests/data/parser/parseSelectCaseAliasErr3.out index b11e703bb..b0b3367d7 100644 --- a/tests/data/parser/parseSelectCaseAliasErr3.out +++ b/tests/data/parser/parseSelectCaseAliasErr3.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS foo bar FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" else \"Other\" end AS foo bar FROM a;", "len": 143, "last": 143, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 56, + "idx": 56, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +546,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 128 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -454,7 +568,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 132 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -472,7 +590,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 136 }, @@ -481,7 +601,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -490,7 +612,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 141 }, @@ -499,30 +623,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 142 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@63" + }, "flags": 0, "position": null } - ], - "count": 56, - "idx": 56 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -565,7 +693,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -577,7 +705,7 @@ "subquery": null } ], - "else_result": { + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -603,11 +731,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -615,7 +743,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -624,9 +752,7 @@ "last": 53 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -634,14 +760,14 @@ [ "An alias was previously found.", { - "@type": "@51" + "@type": "@57" }, 0 ], [ "Unexpected token.", { - "@type": "@51" + "@type": "@57" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseAliasErr4.out b/tests/data/parser/parseSelectCaseAliasErr4.out index 16656e819..b6896fe1b 100644 --- a/tests/data/parser/parseSelectCaseAliasErr4.out +++ b/tests/data/parser/parseSelectCaseAliasErr4.out @@ -2,18 +2,26 @@ "query": "SELECT CASE WHEN 2 IS NULL THEN \"this is true\" ELSE \"this is false\" END AS ;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT CASE WHEN 2 IS NULL THEN \"this is true\" ELSE \"this is false\" END AS ;", "len": 76, "last": 76, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 26, + "idx": 26, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "CASE", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "WHEN", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +87,11 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +111,9 @@ "token": "IS", "value": "IS", "keyword": "IS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -103,7 +133,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -121,7 +155,9 @@ "token": "THEN", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -139,7 +177,11 @@ "token": "\"this is true\"", "value": "this is true", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 32 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -157,7 +201,9 @@ "token": "ELSE", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 47 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -175,7 +223,9 @@ "token": "\"this is false\"", "value": "this is false", "keyword": null, - "type": 7, + "type": { + "@type": "@20" + }, "flags": 2, "position": 52 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -193,7 +245,9 @@ "token": "END", "value": "END", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 68 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -211,7 +267,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 72 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -229,30 +289,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 75 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 26, - "idx": 26 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -269,7 +333,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "2 IS NULL" + "expr": "2 IS NULL", + "leftOperand": "2 IS NULL", + "operator": "", + "rightOperand": "" } ] ], @@ -285,8 +352,8 @@ "subquery": null } ], - "compare_values": [], - "else_result": { + "compareValues": [], + "elseResult": { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, "table": null, @@ -301,11 +368,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -313,7 +380,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -322,9 +389,7 @@ "last": 23 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -332,7 +397,7 @@ [ "An alias was expected after AS.", { - "@type": "@25" + "@type": "@29" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseErr1.out b/tests/data/parser/parseSelectCaseErr1.out index 25240b218..dee8070d2 100644 --- a/tests/data/parser/parseSelectCaseErr1.out +++ b/tests/data/parser/parseSelectCaseErr1.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name, case 1 then 1 then \"Some\" else \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name, case 1 then 1 then \"Some\" else \"Other\" end FROM a;", "len": 132, "last": 132, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 50, + "idx": 50, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -436,7 +546,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 130 }, @@ -445,30 +557,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 131 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@57" + }, "flags": 0, "position": null } - ], - "count": 50, - "idx": 50 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -500,8 +616,8 @@ }, "conditions": [], "results": [], - "compare_values": [], - "else_result": null, + "compareValues": [], + "elseResult": null, "alias": null, "expr": "" } @@ -518,11 +634,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -530,7 +646,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -539,9 +655,7 @@ "last": 47 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -549,63 +663,63 @@ [ "Unexpected keyword.", { - "@type": "@33" + "@type": "@38" }, 0 ], [ "Unexpected end of CASE expression", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@33" + "@type": "@38" }, 0 ], [ "Unexpected token.", { - "@type": "@35" + "@type": "@40" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@37" + "@type": "@42" }, 0 ], [ "Unexpected token.", { - "@type": "@39" + "@type": "@44" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@41" + "@type": "@47" }, 0 ], [ "Unexpected token.", { - "@type": "@43" + "@type": "@49" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@45" + "@type": "@51" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseErr2.out b/tests/data/parser/parseSelectCaseErr2.out index cd69677bb..139b9babd 100644 --- a/tests/data/parser/parseSelectCaseErr2.out +++ b/tests/data/parser/parseSelectCaseErr2.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase then 1=1 then \"Some\" else \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase then 1=1 then \"Some\" else \"Other\" end FROM a;", "len": 132, "last": 132, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 50, + "idx": 50, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -292,7 +368,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 92 }, @@ -301,7 +379,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -436,7 +546,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 130 }, @@ -445,30 +557,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 131 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@57" + }, "flags": 0, "position": null } - ], - "count": 50, - "idx": 50 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -491,8 +607,8 @@ "value": null, "conditions": [], "results": [], - "compare_values": [], - "else_result": null, + "compareValues": [], + "elseResult": null, "alias": null, "expr": "" } @@ -509,11 +625,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -521,7 +637,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -530,9 +646,7 @@ "last": 47 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -540,77 +654,77 @@ [ "Unexpected keyword.", { - "@type": "@31" + "@type": "@36" }, 0 ], [ "Unexpected end of CASE expression", { - "@type": "@30" + "@type": "@35" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@31" + "@type": "@36" }, 0 ], [ "Unexpected token.", { - "@type": "@33" + "@type": "@38" }, 0 ], [ "Unexpected token.", { - "@type": "@34" + "@type": "@39" }, 0 ], [ "Unexpected token.", { - "@type": "@35" + "@type": "@40" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@37" + "@type": "@42" }, 0 ], [ "Unexpected token.", { - "@type": "@39" + "@type": "@44" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@41" + "@type": "@47" }, 0 ], [ "Unexpected token.", { - "@type": "@43" + "@type": "@49" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@45" + "@type": "@51" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseErr3.out b/tests/data/parser/parseSelectCaseErr3.out index b57377092..c92715621 100644 --- a/tests/data/parser/parseSelectCaseErr3.out +++ b/tests/data/parser/parseSelectCaseErr3.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase when 1=1 when \"Some\" else \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase when 1=1 when \"Some\" else \"Other\" end FROM a;", "len": 132, "last": 132, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 50, + "idx": 50, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -292,7 +368,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 92 }, @@ -301,7 +379,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -436,7 +546,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 130 }, @@ -445,30 +557,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 131 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@57" + }, "flags": 0, "position": null } - ], - "count": 50, - "idx": 50 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -495,13 +611,16 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ] ], "results": [], - "compare_values": [], - "else_result": null, + "compareValues": [], + "elseResult": null, "alias": null, "expr": "" } @@ -518,11 +637,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -530,7 +649,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -539,9 +658,7 @@ "last": 47 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -549,49 +666,49 @@ [ "Unexpected keyword.", { - "@type": "@37" + "@type": "@42" }, 0 ], [ "Unexpected end of CASE expression", { - "@type": "@36" + "@type": "@41" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@37" + "@type": "@42" }, 0 ], [ "Unexpected token.", { - "@type": "@39" + "@type": "@44" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@41" + "@type": "@47" }, 0 ], [ "Unexpected token.", { - "@type": "@43" + "@type": "@49" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@45" + "@type": "@51" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseErr4.out b/tests/data/parser/parseSelectCaseErr4.out index e7e97fd93..b543f8a7b 100644 --- a/tests/data/parser/parseSelectCaseErr4.out +++ b/tests/data/parser/parseSelectCaseErr4.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 then 1 when \"Some\" else \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 then 1 when \"Some\" else \"Other\" end FROM a;", "len": 132, "last": 132, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 50, + "idx": 50, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "else", "value": "ELSE", "keyword": "ELSE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 120 }, @@ -400,7 +502,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 121 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -418,7 +524,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 125 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -436,7 +546,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 130 }, @@ -445,30 +557,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 131 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@57" + }, "flags": 0, "position": null } - ], - "count": 50, - "idx": 50 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -500,8 +616,8 @@ }, "conditions": [], "results": [], - "compare_values": [], - "else_result": null, + "compareValues": [], + "elseResult": null, "alias": null, "expr": "" } @@ -518,11 +634,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -530,7 +646,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -539,9 +655,7 @@ "last": 47 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -549,63 +663,63 @@ [ "Unexpected keyword.", { - "@type": "@33" + "@type": "@38" }, 0 ], [ "Unexpected end of CASE expression", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@33" + "@type": "@38" }, 0 ], [ "Unexpected token.", { - "@type": "@35" + "@type": "@40" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@37" + "@type": "@42" }, 0 ], [ "Unexpected token.", { - "@type": "@39" + "@type": "@44" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@41" + "@type": "@47" }, 0 ], [ "Unexpected token.", { - "@type": "@43" + "@type": "@49" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@45" + "@type": "@51" }, 0 ] diff --git a/tests/data/parser/parseSelectCaseErr5.out b/tests/data/parser/parseSelectCaseErr5.out index c0948c615..bec6726d8 100644 --- a/tests/data/parser/parseSelectCaseErr5.out +++ b/tests/data/parser/parseSelectCaseErr5.out @@ -2,18 +2,26 @@ "query": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" when 2 when \"Other\" end FROM a;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select (SELECT name FROM mysql.help_category WHERE help_category_id = 1) as name,\ncase 1 when 1 then \"Some\" when 2 when \"Other\" end FROM a;", "len": 139, "last": 139, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 54, + "idx": 54, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 15 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -76,7 +100,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -85,7 +111,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,11 @@ "token": "mysql", "value": "mysql", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -103,7 +135,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -112,7 +146,9 @@ "token": "help_category", "value": "help_category", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": "help_category_id", "value": "help_category_id", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -166,7 +212,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 68 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +269,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +291,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 76 }, @@ -238,7 +302,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -247,7 +313,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -256,7 +324,9 @@ "token": "case", "value": "CASE", "keyword": "CASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -274,7 +346,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 87 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -292,7 +368,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 89 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 93 }, @@ -310,7 +390,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 94 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +412,9 @@ "token": "then", "value": "THEN", "keyword": "THEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 96 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 100 }, @@ -346,7 +434,11 @@ "token": "\"Some\"", "value": "Some", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -364,7 +458,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -373,7 +469,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +480,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 113 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -400,7 +502,9 @@ "token": "when", "value": "WHEN", "keyword": "WHEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 115 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -418,7 +524,9 @@ "token": "\"Other\"", "value": "Other", "keyword": null, - "type": 7, + "type": { + "@type": "@45" + }, "flags": 2, "position": 120 }, @@ -427,7 +535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +546,9 @@ "token": "end", "value": "end", "keyword": "END", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 128 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -454,7 +568,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 132 }, @@ -463,7 +579,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 136 }, @@ -472,7 +590,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 137 }, @@ -481,30 +601,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 138 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@61" + }, "flags": 0, "position": null } - ], - "count": 54, - "idx": 54 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -547,7 +671,7 @@ "subquery": null } ], - "compare_values": [ + "compareValues": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", "database": null, @@ -569,7 +693,7 @@ "subquery": null } ], - "else_result": null, + "elseResult": null, "alias": null, "expr": "" } @@ -586,11 +710,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -598,7 +722,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -607,9 +731,7 @@ "last": 51 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -617,35 +739,35 @@ [ "Unexpected keyword.", { - "@type": "@45" + "@type": "@51" }, 0 ], [ "Unexpected end of CASE expression", { - "@type": "@44" + "@type": "@50" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@45" + "@type": "@51" }, 0 ], [ "Unexpected token.", { - "@type": "@47" + "@type": "@53" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@49" + "@type": "@55" }, 0 ] diff --git a/tests/data/parser/parseSelectEndOptions1.out b/tests/data/parser/parseSelectEndOptions1.out index 8d0f313e8..13ae9cc42 100644 --- a/tests/data/parser/parseSelectEndOptions1.out +++ b/tests/data/parser/parseSelectEndOptions1.out @@ -2,18 +2,26 @@ "query": "SELECT pid, name2 FROM tablename WHERE pid = 20 /* FOR UPDATE end_option */ FOR UPDATE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT pid, name2 FROM tablename WHERE pid = 20 /* FOR UPDATE end_option */ FOR UPDATE", "len": 86, "last": 86, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 10 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -58,7 +80,9 @@ "token": "name2", "value": "name2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 12 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -76,7 +102,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -94,7 +124,9 @@ "token": "tablename", "value": "tablename", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +168,9 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +190,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 43 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,11 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 45 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -184,7 +236,11 @@ "token": "/* FOR UPDATE end_option */", "value": "/* FOR UPDATE end_option */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 48 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -202,30 +260,34 @@ "token": "FOR UPDATE", "value": "FOR UPDATE", "keyword": "FOR UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 76 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -266,7 +328,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -275,11 +337,14 @@ "pid" ], "isOperator": false, - "expr": "pid = 20" + "expr": "pid = 20", + "leftOperand": "pid", + "operator": "=", + "rightOperand": "20" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -287,7 +352,7 @@ "into": null, "join": null, "union": [], - "end_options": { + "endOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "FOR UPDATE" @@ -301,9 +366,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectEndOptions2.out b/tests/data/parser/parseSelectEndOptions2.out index 3dd073507..f05195d7b 100644 --- a/tests/data/parser/parseSelectEndOptions2.out +++ b/tests/data/parser/parseSelectEndOptions2.out @@ -2,18 +2,26 @@ "query": "SELECT pid, name2 FROM tablename WHERE pid = 20\n/* LOCK IN SHARE MODE end_option */ LOCK IN SHARE MODE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT pid, name2 FROM tablename WHERE pid = 20\n/* LOCK IN SHARE MODE end_option */ LOCK IN SHARE MODE", "len": 102, "last": 102, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 10 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -58,7 +80,9 @@ "token": "name2", "value": "name2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 12 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -76,7 +102,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -94,7 +124,9 @@ "token": "tablename", "value": "tablename", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +168,9 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +190,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 43 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,11 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 45 }, @@ -175,7 +225,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -184,7 +236,11 @@ "token": "/* LOCK IN SHARE MODE end_option */", "value": "/* LOCK IN SHARE MODE end_option */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 48 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -202,30 +260,34 @@ "token": "LOCK IN SHARE MODE", "value": "LOCK IN SHARE MODE", "keyword": "LOCK IN SHARE MODE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 84 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -266,7 +328,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -275,11 +337,14 @@ "pid" ], "isOperator": false, - "expr": "pid = 20" + "expr": "pid = 20", + "leftOperand": "pid", + "operator": "=", + "rightOperand": "20" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -287,7 +352,7 @@ "into": null, "join": null, "union": [], - "end_options": { + "endOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "LOCK IN SHARE MODE" @@ -301,9 +366,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectEndOptionsErr.out b/tests/data/parser/parseSelectEndOptionsErr.out index 63c140539..022cd3ad6 100644 --- a/tests/data/parser/parseSelectEndOptionsErr.out +++ b/tests/data/parser/parseSelectEndOptionsErr.out @@ -2,18 +2,26 @@ "query": "SELECT pid, name2 FROM tablename WHERE pid = 20\n/* USE both end_option, gives error */\nFOR UPDATE LOCK IN SHARE MODE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT pid, name2 FROM tablename WHERE pid = 20\n/* USE both end_option, gives error */\nFOR UPDATE LOCK IN SHARE MODE", "len": 116, "last": 116, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 25, + "idx": 25, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 10 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -58,7 +80,9 @@ "token": "name2", "value": "name2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 12 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -76,7 +102,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -94,7 +124,9 @@ "token": "tablename", "value": "tablename", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +168,9 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +190,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 43 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,11 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 45 }, @@ -175,7 +225,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -184,7 +236,11 @@ "token": "/* USE both end_option, gives error */", "value": "/* USE both end_option, gives error */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 48 }, @@ -193,7 +249,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -202,7 +260,9 @@ "token": "FOR UPDATE", "value": "FOR UPDATE", "keyword": "FOR UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 87 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -220,30 +282,34 @@ "token": "LOCK IN SHARE MODE", "value": "LOCK IN SHARE MODE", "keyword": "LOCK IN SHARE MODE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 98 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 25, - "idx": 25 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -284,7 +350,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -293,11 +359,14 @@ "pid" ], "isOperator": false, - "expr": "pid = 20" + "expr": "pid = 20", + "leftOperand": "pid", + "operator": "=", + "rightOperand": "20" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -305,7 +374,7 @@ "into": null, "join": null, "union": [], - "end_options": { + "endOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "FOR UPDATE", @@ -320,9 +389,7 @@ "last": 23 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -330,7 +397,7 @@ [ "This option conflicts with \"FOR UPDATE\".", { - "@type": "@25" + "@type": "@31" }, 0 ] diff --git a/tests/data/parser/parseSelectErr1.out b/tests/data/parser/parseSelectErr1.out index dd8017d72..5dccca8f7 100644 --- a/tests/data/parser/parseSelectErr1.out +++ b/tests/data/parser/parseSelectErr1.out @@ -2,18 +2,26 @@ "query": "SELECT ALL DISTINCT MAX_STATEMENT_TIME = 10\n 1 + 2 AS result,\n @idx,\n id,\n test.`users`.username AS\nFROM\n `test`.users\n PARTITION (p1, p2)\nWHERE\n id > 0\nORDER BY\n username DESC,\n id\nLIMIT 2, 3;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT ALL DISTINCT MAX_STATEMENT_TIME = 10\n 1 + 2 AS result,\n @idx,\n id,\n test.`users`.username AS\nFROM\n `test`.users\n PARTITION (p1, p2)\nWHERE\n id > 0\nORDER BY\n username DESC,\n id\nLIMIT 2, 3;", "len": 220, "last": 220, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 77, + "idx": 77, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "ALL", "value": "ALL", "keyword": "ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 11 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +87,9 @@ "token": "MAX_STATEMENT_TIME", "value": "MAX_STATEMENT_TIME", "keyword": "MAX_STATEMENT_TIME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 20 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -85,7 +109,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 39 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -103,7 +133,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 41 }, @@ -112,7 +146,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -121,7 +157,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 48 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -139,7 +179,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 1, "position": 50 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 52 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -175,7 +223,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 54 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -193,7 +245,11 @@ "token": "result", "value": "result", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 57 }, @@ -202,7 +258,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 63 }, @@ -211,7 +269,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -220,7 +280,11 @@ "token": "@idx", "value": "idx", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 69 }, @@ -229,7 +293,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 73 }, @@ -238,7 +304,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -247,7 +315,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 79 }, @@ -256,7 +326,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 81 }, @@ -265,7 +337,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -274,7 +348,9 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 87 }, @@ -283,7 +359,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 91 }, @@ -292,7 +370,9 @@ "token": "`users`", "value": "users", "keyword": null, - "type": 8, + "type": { + "@type": "@31" + }, "flags": 2, "position": 92 }, @@ -301,7 +381,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 99 }, @@ -310,7 +392,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 100 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -328,7 +414,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 109 }, @@ -337,7 +425,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 111 }, @@ -346,7 +436,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 112 }, @@ -355,7 +447,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -364,7 +458,9 @@ "token": "`test`", "value": "test", "keyword": null, - "type": 8, + "type": { + "@type": "@31" + }, "flags": 2, "position": 121 }, @@ -373,7 +469,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 127 }, @@ -382,7 +480,9 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 128 }, @@ -391,7 +491,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -400,7 +502,9 @@ "token": "PARTITION", "value": "PARTITION", "keyword": "PARTITION", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 138 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 147 }, @@ -418,7 +524,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 148 }, @@ -427,7 +535,9 @@ "token": "p1", "value": "p1", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 149 }, @@ -436,7 +546,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 151 }, @@ -445,7 +557,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -454,7 +568,9 @@ "token": "p2", "value": "p2", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 153 }, @@ -463,7 +579,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 155 }, @@ -472,7 +590,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -481,7 +601,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 157 }, @@ -490,7 +612,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -499,7 +623,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 167 }, @@ -508,7 +634,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 169 }, @@ -517,7 +645,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 170 }, @@ -526,7 +656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -535,7 +667,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 172 }, @@ -544,7 +678,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -553,7 +689,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 174 }, @@ -562,7 +700,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -571,7 +711,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 187 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 195 }, @@ -589,7 +733,9 @@ "token": "DESC", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 196 }, @@ -598,7 +744,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 200 }, @@ -607,7 +755,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 201 }, @@ -616,7 +766,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@27" + }, "flags": 0, "position": 206 }, @@ -625,7 +777,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 208 }, @@ -634,7 +788,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 209 }, @@ -643,7 +799,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 214 }, @@ -652,7 +810,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 215 }, @@ -661,7 +821,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 216 }, @@ -670,7 +832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 217 }, @@ -679,7 +843,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@16" + }, "flags": 0, "position": 218 }, @@ -688,30 +854,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 219 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@84" + }, "flags": 0, "position": null } - ], - "count": 77, - "idx": 77 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -772,7 +942,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", "raw": [ @@ -791,11 +961,14 @@ "id" ], "isOperator": false, - "expr": "id > 0" + "expr": "id > 0", + "leftOperand": "id", + "operator": ">", + "rightOperand": "0" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [ { @@ -810,7 +983,11 @@ "function": null, "subquery": null }, - "type": "DESC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Desc", + "value": "DESC" + } }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderKeyword", @@ -824,7 +1001,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": { @@ -836,7 +1017,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -854,9 +1035,7 @@ "last": 74 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -864,14 +1043,14 @@ [ "This option conflicts with \"ALL\".", { - "@type": "@6" + "@type": "@8" }, 0 ], [ "An alias was expected.", { - "@type": "@38" + "@type": "@44" }, 0 ] diff --git a/tests/data/parser/parseSelectErr2.out b/tests/data/parser/parseSelectErr2.out index d16723464..4e02fa27b 100644 --- a/tests/data/parser/parseSelectErr2.out +++ b/tests/data/parser/parseSelectErr2.out @@ -2,18 +2,26 @@ "query": "select * from foobar where foo = @\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select * from foobar where foo = @\n", "len": 35, "last": 35, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "foobar", "value": "foobar", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 30 }, @@ -121,7 +157,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 31 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -139,30 +179,36 @@ "token": "@", "value": "", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 33 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -193,7 +239,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -203,11 +249,14 @@ "" ], "isOperator": false, - "expr": "foo = @" + "expr": "foo = @", + "leftOperand": "foo", + "operator": "=", + "rightOperand": "@" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -215,7 +264,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -224,9 +273,7 @@ "last": 14 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [ diff --git a/tests/data/parser/parseSelectExists.out b/tests/data/parser/parseSelectExists.out index 0c8006396..26a64993e 100644 --- a/tests/data/parser/parseSelectExists.out +++ b/tests/data/parser/parseSelectExists.out @@ -2,18 +2,26 @@ "query": "SELECT EXISTS(SELECT 1)\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT EXISTS(SELECT 1)\n", "len": 24, "last": 24, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "EXISTS", "value": "EXISTS", "keyword": "EXISTS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 7 }, @@ -40,7 +54,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 13 }, @@ -49,7 +67,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 21 }, @@ -76,7 +102,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@8" + }, "flags": 16, "position": 22 }, @@ -85,30 +113,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -128,11 +160,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -140,7 +172,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -149,9 +181,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectGroupBy.out b/tests/data/parser/parseSelectGroupBy.out index e78f1012e..0281b468e 100644 --- a/tests/data/parser/parseSelectGroupBy.out +++ b/tests/data/parser/parseSelectGroupBy.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM movie GROUP BY title;\nSELECT * FROM movie GROUP BY 1;\nSELECT * FROM movie GROUP BY year, title;\nSELECT * FROM movie GROUP BY year WITH ROLLUP;\nSELECT * FROM movie GROUP BY year, title WITH ROLLUP;\nSELECT * FROM movie GROUP BY year, title WITH ROLLUP ORDER BY year ASC LIMIT 0, 2;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM movie GROUP BY title;\nSELECT * FROM movie GROUP BY 1;\nSELECT * FROM movie GROUP BY year, title;\nSELECT * FROM movie GROUP BY year WITH ROLLUP;\nSELECT * FROM movie GROUP BY year, title WITH ROLLUP;\nSELECT * FROM movie GROUP BY year, title WITH ROLLUP ORDER BY year ASC LIMIT 0, 2;\n", "len": 294, "last": 294, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 107, + "idx": 107, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +135,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 29 }, @@ -112,7 +146,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 34 }, @@ -121,7 +159,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -130,7 +170,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 36 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -148,7 +192,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 43 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -166,7 +214,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -184,7 +236,9 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 50 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -202,7 +258,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 56 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -220,7 +280,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 65 }, @@ -229,7 +293,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": 66 }, @@ -238,7 +304,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -247,7 +315,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 68 }, @@ -256,7 +326,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -265,7 +337,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 75 }, @@ -274,7 +348,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -283,7 +359,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -292,7 +370,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -301,7 +381,9 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 82 }, @@ -310,7 +392,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -319,7 +403,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 88 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -337,7 +425,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 97 }, @@ -346,7 +436,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 101 }, @@ -355,7 +447,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -364,7 +458,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 103 }, @@ -373,7 +469,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": 108 }, @@ -382,7 +480,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -391,7 +491,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 110 }, @@ -400,7 +502,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 116 }, @@ -409,7 +513,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 117 }, @@ -418,7 +524,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -427,7 +535,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 119 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -445,7 +557,9 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 124 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 129 }, @@ -463,7 +579,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 130 }, @@ -472,7 +590,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 138 }, @@ -481,7 +601,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 139 }, @@ -490,7 +612,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, @@ -499,7 +623,9 @@ "token": "WITH ROLLUP", "value": "WITH ROLLUP", "keyword": "WITH ROLLUP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 144 }, @@ -508,7 +634,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": 155 }, @@ -517,7 +645,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 156 }, @@ -526,7 +656,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 157 }, @@ -535,7 +667,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 163 }, @@ -544,7 +678,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 164 }, @@ -553,7 +689,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 165 }, @@ -562,7 +700,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 166 }, @@ -571,7 +711,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 170 }, @@ -580,7 +722,9 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 171 }, @@ -589,7 +733,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -598,7 +744,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 177 }, @@ -607,7 +755,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -616,7 +766,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 186 }, @@ -625,7 +777,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 190 }, @@ -634,7 +788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 191 }, @@ -643,7 +799,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 192 }, @@ -652,7 +810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 197 }, @@ -661,7 +821,9 @@ "token": "WITH ROLLUP", "value": "WITH ROLLUP", "keyword": "WITH ROLLUP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 198 }, @@ -670,7 +832,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": 209 }, @@ -679,7 +843,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 210 }, @@ -688,7 +854,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 211 }, @@ -697,7 +865,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 217 }, @@ -706,7 +876,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 218 }, @@ -715,7 +887,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 219 }, @@ -724,7 +898,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 220 }, @@ -733,7 +909,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 224 }, @@ -742,7 +920,9 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 225 }, @@ -751,7 +931,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 230 }, @@ -760,7 +942,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 231 }, @@ -769,7 +953,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 239 }, @@ -778,7 +964,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 240 }, @@ -787,7 +975,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 244 }, @@ -796,7 +986,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 245 }, @@ -805,7 +997,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 246 }, @@ -814,7 +1008,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 251 }, @@ -823,7 +1019,9 @@ "token": "WITH ROLLUP", "value": "WITH ROLLUP", "keyword": "WITH ROLLUP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 252 }, @@ -832,7 +1030,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 263 }, @@ -841,7 +1041,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 264 }, @@ -850,7 +1052,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 272 }, @@ -859,7 +1063,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 273 }, @@ -868,7 +1074,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 277 }, @@ -877,7 +1085,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 278 }, @@ -886,7 +1096,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 281 }, @@ -895,7 +1107,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 282 }, @@ -904,7 +1118,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 287 }, @@ -913,7 +1129,9 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@31" + }, "flags": 0, "position": 288 }, @@ -922,7 +1140,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 289 }, @@ -931,7 +1151,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 290 }, @@ -940,7 +1162,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@31" + }, "flags": 0, "position": 291 }, @@ -949,7 +1173,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": 292 }, @@ -958,30 +1184,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 293 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 107, - "idx": 107 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1012,7 +1240,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -1031,7 +1259,7 @@ } } ], - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1039,7 +1267,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1073,7 +1301,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -1092,7 +1320,7 @@ } } ], - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1100,7 +1328,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1134,7 +1362,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -1167,7 +1395,7 @@ } } ], - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1175,7 +1403,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1209,7 +1437,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -1228,7 +1456,7 @@ } } ], - "group_options": { + "groupOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "WITH ROLLUP" @@ -1241,7 +1469,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1275,7 +1503,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -1308,7 +1536,7 @@ } } ], - "group_options": { + "groupOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "WITH ROLLUP" @@ -1321,7 +1549,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1355,7 +1583,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -1388,7 +1616,7 @@ } } ], - "group_options": { + "groupOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "WITH ROLLUP" @@ -1408,7 +1636,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": { @@ -1420,7 +1652,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1429,9 +1661,7 @@ "last": 103 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectGroupByErr.out b/tests/data/parser/parseSelectGroupByErr.out index d3de26c67..61ed67d52 100644 --- a/tests/data/parser/parseSelectGroupByErr.out +++ b/tests/data/parser/parseSelectGroupByErr.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM movie GROUP BY title WITH ROLLUP, year WITH ROLLUP;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM movie GROUP BY title WITH ROLLUP, year WITH ROLLUP;\n", "len": 66, "last": 66, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +135,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 29 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": "WITH ROLLUP", "value": "WITH ROLLUP", "keyword": "WITH ROLLUP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 35 }, @@ -130,7 +168,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 46 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -148,7 +190,9 @@ "token": "year", "value": "year", "keyword": "YEAR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 41, "position": 48 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -166,7 +212,9 @@ "token": "WITH ROLLUP", "value": "WITH ROLLUP", "keyword": "WITH ROLLUP", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 53 }, @@ -175,7 +223,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 64 }, @@ -184,30 +236,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@25" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -238,7 +292,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -257,7 +311,7 @@ } } ], - "group_options": { + "groupOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "WITH ROLLUP" @@ -270,7 +324,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -279,9 +333,7 @@ "last": 17 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -289,14 +341,14 @@ [ "Unexpected token.", { - "@type": "@15" + "@type": "@19" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@17" + "@type": "@21" }, 0 ] diff --git a/tests/data/parser/parseSelectGroupByWithComments.out b/tests/data/parser/parseSelectGroupByWithComments.out index a9702631b..0712c7912 100644 --- a/tests/data/parser/parseSelectGroupByWithComments.out +++ b/tests/data/parser/parseSelectGroupByWithComments.out @@ -2,18 +2,26 @@ "query": "SELECT id, title FROM movie GROUP BY movie.id, /* removed_field, */ title;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT id, title FROM movie GROUP BY movie.id, /* removed_field, */ title;\n", "len": 75, "last": 75, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -58,7 +80,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -76,7 +102,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -94,7 +124,9 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -112,7 +146,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 28 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -130,7 +168,9 @@ "token": "movie", "value": "movie", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 42 }, @@ -148,7 +190,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 43 }, @@ -157,7 +201,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 45 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -175,7 +223,11 @@ "token": "/* removed_field, */", "value": "/* removed_field, */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 47 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -193,7 +247,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 68 }, @@ -202,7 +258,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 73 }, @@ -211,30 +271,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@29" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -275,7 +337,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": [ @@ -308,7 +370,7 @@ } } ], - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -316,7 +378,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -325,9 +387,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectIndexHint1.out b/tests/data/parser/parseSelectIndexHint1.out index d1aa45885..61b73a519 100644 --- a/tests/data/parser/parseSelectIndexHint1.out +++ b/tests/data/parser/parseSelectIndexHint1.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM address FORCE INDEX (idx_fk_city_id) IGNORE KEY FOR GROUP BY (a, b,c) WHERE city_id<0;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM address FORCE INDEX (idx_fk_city_id) IGNORE KEY FOR GROUP BY (a, b,c) WHERE city_id<0;", "len": 101, "last": 101, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 40, + "idx": 40, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +89,11 @@ "token": "address", "value": "address", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +113,9 @@ "token": "FORCE", "value": "FORCE", "keyword": "FORCE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -103,7 +135,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 29 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 35 }, @@ -130,7 +168,9 @@ "token": "idx_fk_city_id", "value": "idx_fk_city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 36 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 50 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": "IGNORE", "value": "IGNORE", "keyword": "IGNORE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -175,7 +223,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 59 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -193,7 +245,9 @@ "token": "FOR", "value": "FOR", "keyword": "FOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -211,7 +267,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 67 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -229,7 +289,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 76 }, @@ -238,7 +300,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 77 }, @@ -247,7 +311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 78 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -265,7 +333,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 80 }, @@ -274,7 +344,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 81 }, @@ -283,7 +355,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 82 }, @@ -292,7 +366,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 83 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -310,7 +388,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 85 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -328,7 +410,9 @@ "token": "city_id", "value": "city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 91 }, @@ -337,7 +421,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 98 }, @@ -346,7 +432,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 99 }, @@ -355,30 +445,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 100 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@46" + }, "flags": 0, "position": null } - ], - "count": 40, - "idx": 40 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -409,7 +503,7 @@ "subquery": null } ], - "index_hints": [ + "indexHints": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\IndexHint", "type": "FORCE", @@ -455,11 +549,14 @@ "city_id" ], "isOperator": false, - "expr": "city_id<0" + "expr": "city_id<0", + "leftOperand": "city_id", + "operator": "<", + "rightOperand": "0" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -467,7 +564,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -476,9 +573,7 @@ "last": 37 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectIndexHint2.out b/tests/data/parser/parseSelectIndexHint2.out index 0dd57ee59..301505a74 100644 --- a/tests/data/parser/parseSelectIndexHint2.out +++ b/tests/data/parser/parseSelectIndexHint2.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM address USE INDEX (idx_fk_city_id) FORCE KEY FOR GROUP BY (a, b,c) WHERE city_id<0", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM address USE INDEX (idx_fk_city_id) FORCE KEY FOR GROUP BY (a, b,c) WHERE city_id<0", "len": 97, "last": 97, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 39, + "idx": 39, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +89,11 @@ "token": "address", "value": "address", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 15 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +113,9 @@ "token": "USE", "value": "USE", "keyword": "USE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 27 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 33 }, @@ -130,7 +168,9 @@ "token": "idx_fk_city_id", "value": "idx_fk_city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 34 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 48 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -157,7 +201,9 @@ "token": "FORCE", "value": "FORCE", "keyword": "FORCE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -175,7 +223,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 56 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -193,7 +245,9 @@ "token": "FOR", "value": "FOR", "keyword": "FOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 60 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -211,7 +267,9 @@ "token": "GROUP BY", "value": "GROUP BY", "keyword": "GROUP BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 64 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -229,7 +289,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 73 }, @@ -238,7 +300,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 74 }, @@ -247,7 +311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 75 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -265,7 +333,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 77 }, @@ -274,7 +344,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 78 }, @@ -283,7 +355,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 79 }, @@ -292,7 +366,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 80 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -310,7 +388,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -328,7 +410,9 @@ "token": "city_id", "value": "city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 88 }, @@ -337,7 +421,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 95 }, @@ -346,30 +432,36 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 96 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 39, - "idx": 39 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -400,7 +492,7 @@ "subquery": null } ], - "index_hints": [ + "indexHints": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\IndexHint", "type": "USE", @@ -446,11 +538,14 @@ "city_id" ], "isOperator": false, - "expr": "city_id<0" + "expr": "city_id<0", + "leftOperand": "city_id", + "operator": "<", + "rightOperand": "0" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -458,7 +553,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -467,9 +562,7 @@ "last": 37 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectIndexHintErr1.out b/tests/data/parser/parseSelectIndexHintErr1.out index dccc8c621..f0dbb22c1 100644 --- a/tests/data/parser/parseSelectIndexHintErr1.out +++ b/tests/data/parser/parseSelectIndexHintErr1.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM address FORCE INT (idx_fk_city_id);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM address FORCE INT (idx_fk_city_id);", "len": 49, "last": 49, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "address", "value": "address", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "FORCE", "value": "FORCE", "keyword": "FORCE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 28 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 32 }, @@ -130,7 +168,9 @@ "token": "idx_fk_city_id", "value": "idx_fk_city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 33 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 47 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 48 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -202,11 +248,11 @@ "subquery": null } ], - "index_hints": [ + "indexHints": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\IndexHint", "type": "FORCE", - "indexOrKey": null, + "indexOrKey": "", "for": null, "indexes": [ { @@ -225,7 +271,7 @@ "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -233,7 +279,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -242,9 +288,7 @@ "last": 14 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -252,7 +296,7 @@ [ "Unexpected keyword.", { - "@type": "@12" + "@type": "@16" }, 0 ] diff --git a/tests/data/parser/parseSelectIndexHintErr2.out b/tests/data/parser/parseSelectIndexHintErr2.out index f367006da..0bc65e264 100644 --- a/tests/data/parser/parseSelectIndexHintErr2.out +++ b/tests/data/parser/parseSelectIndexHintErr2.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM address FORCE abc (idx_fk_city_id);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM address FORCE abc (idx_fk_city_id);", "len": 49, "last": 49, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "address", "value": "address", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "FORCE", "value": "FORCE", "keyword": "FORCE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "abc", "value": "abc", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 28 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -121,7 +157,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 32 }, @@ -130,7 +168,9 @@ "token": "idx_fk_city_id", "value": "idx_fk_city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 33 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 47 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 48 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -202,11 +248,11 @@ "subquery": null } ], - "index_hints": [], + "indexHints": [], "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -214,7 +260,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -223,9 +269,7 @@ "last": 14 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -233,28 +277,28 @@ [ "Unexpected token.", { - "@type": "@12" + "@type": "@16" }, 0 ], [ "Unexpected token.", { - "@type": "@14" + "@type": "@18" }, 0 ], [ "Unexpected token.", { - "@type": "@15" + "@type": "@19" }, 0 ], [ "Unexpected token.", { - "@type": "@16" + "@type": "@20" }, 0 ] diff --git a/tests/data/parser/parseSelectIndexHintErr3.out b/tests/data/parser/parseSelectIndexHintErr3.out index a392211a5..c6b807ae7 100644 --- a/tests/data/parser/parseSelectIndexHintErr3.out +++ b/tests/data/parser/parseSelectIndexHintErr3.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM address FORCE INDEX FOR abc (idx_fk_city_id);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM address FORCE INDEX FOR abc (idx_fk_city_id);", "len": 59, "last": 59, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "address", "value": "address", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "FORCE", "value": "FORCE", "keyword": "FORCE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 28 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "FOR", "value": "FOR", "keyword": "FOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 34 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": "abc", "value": "abc", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 38 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 42 }, @@ -166,7 +212,9 @@ "token": "idx_fk_city_id", "value": "idx_fk_city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 43 }, @@ -175,7 +223,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 57 }, @@ -184,30 +234,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 58 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@26" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -238,11 +292,11 @@ "subquery": null } ], - "index_hints": [], + "indexHints": [], "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -250,7 +304,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -259,9 +313,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -269,28 +321,28 @@ [ "Unexpected token.", { - "@type": "@16" + "@type": "@20" }, 0 ], [ "Unexpected token.", { - "@type": "@18" + "@type": "@22" }, 0 ], [ "Unexpected token.", { - "@type": "@19" + "@type": "@23" }, 0 ], [ "Unexpected token.", { - "@type": "@20" + "@type": "@24" }, 0 ] diff --git a/tests/data/parser/parseSelectIndexHintErr4.out b/tests/data/parser/parseSelectIndexHintErr4.out index 0daa84bf0..4aec3a30a 100644 --- a/tests/data/parser/parseSelectIndexHintErr4.out +++ b/tests/data/parser/parseSelectIndexHintErr4.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM address FORCE INDEX FOR INT (idx_fk_city_id);", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM address FORCE INDEX FOR INT (idx_fk_city_id);", "len": 59, "last": 59, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 21, + "idx": 21, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "address", "value": "address", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "FORCE", "value": "FORCE", "keyword": "FORCE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "INDEX", "value": "INDEX", "keyword": "INDEX", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 28 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "FOR", "value": "FOR", "keyword": "FOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 34 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": "INT", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 38 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 42 }, @@ -166,7 +212,9 @@ "token": "idx_fk_city_id", "value": "idx_fk_city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 43 }, @@ -175,7 +223,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 57 }, @@ -184,30 +234,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 58 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@26" + }, "flags": 0, "position": null } - ], - "count": 21, - "idx": 21 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -238,7 +292,7 @@ "subquery": null } ], - "index_hints": [ + "indexHints": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\IndexHint", "type": "FORCE", @@ -261,7 +315,7 @@ "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -269,7 +323,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -278,9 +332,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -288,7 +340,7 @@ [ "Unexpected keyword.", { - "@type": "@16" + "@type": "@20" }, 0 ] diff --git a/tests/data/parser/parseSelectIntoOptions1.out b/tests/data/parser/parseSelectIntoOptions1.out index b8a8165f0..5a21c6966 100644 --- a/tests/data/parser/parseSelectIntoOptions1.out +++ b/tests/data/parser/parseSelectIntoOptions1.out @@ -2,18 +2,26 @@ "query": "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'\n FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\\\"'\n LINES TERMINATED BY '\\n'\n FROM test_table;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'\n FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\\\"'\n LINES TERMINATED BY '\\n'\n FROM test_table;", "len": 152, "last": 152, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 39, + "idx": 39, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 10 }, @@ -67,7 +91,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -76,7 +102,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 12 }, @@ -85,7 +113,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 13 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -103,7 +135,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -121,7 +157,9 @@ "token": "OUTFILE", "value": "OUTFILE", "keyword": "OUTFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +179,11 @@ "token": "'/tmp/result.txt'", "value": "/tmp/result.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 28 }, @@ -148,7 +192,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -157,7 +203,9 @@ "token": "FIELDS", "value": "FIELDS", "keyword": "FIELDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -175,7 +225,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 57 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -193,7 +247,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 71 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -211,7 +269,9 @@ "token": "OPTIONALLY", "value": "OPTIONALLY", "keyword": "OPTIONALLY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 75 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -229,7 +291,9 @@ "token": "ENCLOSED BY", "value": "ENCLOSED BY", "keyword": "ENCLOSED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 86 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -247,7 +313,9 @@ "token": "'\\\"'", "value": "\"", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 98 }, @@ -256,7 +324,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 102 }, @@ -265,7 +335,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 107 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -283,7 +357,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 113 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -301,7 +379,9 @@ "token": "'\\n'", "value": "\n", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 127 }, @@ -310,7 +390,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -319,7 +401,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 136 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -337,7 +423,9 @@ "token": "test_table", "value": "test_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 141 }, @@ -346,30 +434,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 151 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@45" + }, "flags": 0, "position": null } - ], - "count": 39, - "idx": 39 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -420,11 +512,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -435,7 +527,7 @@ "dest": "/tmp/result.txt", "columns": null, "values": null, - "fields_options": { + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -471,8 +563,8 @@ } } }, - "fields_keyword": true, - "lines_options": { + "fieldsKeyword": true, + "linesOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "2": { @@ -495,7 +587,7 @@ }, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -504,9 +596,7 @@ "last": 36 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectIntoOptions2.out b/tests/data/parser/parseSelectIntoOptions2.out index d637ff51f..ff5f926d1 100644 --- a/tests/data/parser/parseSelectIntoOptions2.out +++ b/tests/data/parser/parseSelectIntoOptions2.out @@ -2,18 +2,26 @@ "query": "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'\n COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\\\"'\n LINES TERMINATED BY '\\n'\n FROM test_table;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'\n COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\\\"'\n LINES TERMINATED BY '\\n'\n FROM test_table;", "len": 153, "last": 153, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 39, + "idx": 39, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 10 }, @@ -67,7 +91,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -76,7 +102,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 12 }, @@ -85,7 +113,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 13 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -103,7 +135,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -121,7 +157,9 @@ "token": "OUTFILE", "value": "OUTFILE", "keyword": "OUTFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +179,11 @@ "token": "'/tmp/result.txt'", "value": "/tmp/result.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 28 }, @@ -148,7 +192,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -157,7 +203,9 @@ "token": "COLUMNS", "value": "COLUMNS", "keyword": "COLUMNS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -175,7 +225,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 58 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -193,7 +247,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 72 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -211,7 +269,9 @@ "token": "OPTIONALLY", "value": "OPTIONALLY", "keyword": "OPTIONALLY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -229,7 +291,9 @@ "token": "ENCLOSED BY", "value": "ENCLOSED BY", "keyword": "ENCLOSED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 87 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -247,7 +313,9 @@ "token": "'\\\"'", "value": "\"", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 99 }, @@ -256,7 +324,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -265,7 +335,9 @@ "token": "LINES", "value": "LINES", "keyword": "LINES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -283,7 +357,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 114 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -301,7 +379,9 @@ "token": "'\\n'", "value": "\n", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 128 }, @@ -310,7 +390,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 132 }, @@ -319,7 +401,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 137 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -337,7 +423,9 @@ "token": "test_table", "value": "test_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 142 }, @@ -346,30 +434,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 152 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@45" + }, "flags": 0, "position": null } - ], - "count": 39, - "idx": 39 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -420,11 +512,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -435,7 +527,7 @@ "dest": "/tmp/result.txt", "columns": null, "values": null, - "fields_options": { + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -471,8 +563,8 @@ } } }, - "fields_keyword": false, - "lines_options": { + "fieldsKeyword": false, + "linesOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "2": { @@ -495,7 +587,7 @@ }, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -504,9 +596,7 @@ "last": 36 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectIntoOptions3.out b/tests/data/parser/parseSelectIntoOptions3.out index 88c1d82da..848072df2 100644 --- a/tests/data/parser/parseSelectIntoOptions3.out +++ b/tests/data/parser/parseSelectIntoOptions3.out @@ -2,18 +2,26 @@ "query": "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'\n COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\\\"'\n FROM test_table;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'\n COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\\\"'\n FROM test_table;", "len": 124, "last": 124, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 33, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 10 }, @@ -67,7 +91,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 11 }, @@ -76,7 +102,9 @@ "token": "+", "value": "+", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 1, "position": 12 }, @@ -85,7 +113,9 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 13 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -103,7 +135,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 15 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -121,7 +157,9 @@ "token": "OUTFILE", "value": "OUTFILE", "keyword": "OUTFILE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 20 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +179,11 @@ "token": "'/tmp/result.txt'", "value": "/tmp/result.txt", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 28 }, @@ -148,7 +192,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -157,7 +203,9 @@ "token": "COLUMNS", "value": "COLUMNS", "keyword": "COLUMNS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 50 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -175,7 +225,9 @@ "token": "TERMINATED BY", "value": "TERMINATED BY", "keyword": "TERMINATED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 58 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -193,7 +247,9 @@ "token": "','", "value": ",", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 72 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -211,7 +269,9 @@ "token": "OPTIONALLY", "value": "OPTIONALLY", "keyword": "OPTIONALLY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -229,7 +291,9 @@ "token": "ENCLOSED BY", "value": "ENCLOSED BY", "keyword": "ENCLOSED BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 87 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -247,7 +313,9 @@ "token": "'\\\"'", "value": "\"", "keyword": null, - "type": 7, + "type": { + "@type": "@21" + }, "flags": 1, "position": 99 }, @@ -256,7 +324,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -265,7 +335,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 108 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -283,7 +357,9 @@ "token": "test_table", "value": "test_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 113 }, @@ -292,30 +368,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 123 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@39" + }, "flags": 0, "position": null } - ], - "count": 33, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -366,11 +446,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -381,7 +461,7 @@ "dest": "/tmp/result.txt", "columns": null, "values": null, - "fields_options": { + "fieldsOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -417,12 +497,12 @@ } } }, - "fields_keyword": false, - "lines_options": null + "fieldsKeyword": false, + "linesOptions": null }, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -431,9 +511,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinCross.out b/tests/data/parser/parseSelectJoinCross.out index 8df95725e..b6a1bd77f 100644 --- a/tests/data/parser/parseSelectJoinCross.out +++ b/tests/data/parser/parseSelectJoinCross.out @@ -2,18 +2,26 @@ "query": "SELECT table112.id,table112.bval1,table112.bval2,\ntable111.id,table111.aval1\nFROM table112\nCROSS JOIN table111", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT table112.id,table112.bval1,table112.bval2,\ntable111.id,table111.aval1\nFROM table112\nCROSS JOIN table111", "len": 110, "last": 110, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 31, + "idx": 31, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "table112", "value": "table112", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 15 }, @@ -49,7 +69,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 18 }, @@ -67,7 +91,9 @@ "token": "table112", "value": "table112", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 19 }, @@ -76,7 +102,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 27 }, @@ -85,7 +113,9 @@ "token": "bval1", "value": "bval1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 28 }, @@ -94,7 +124,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 33 }, @@ -103,7 +135,9 @@ "token": "table112", "value": "table112", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 42 }, @@ -121,7 +157,9 @@ "token": "bval2", "value": "bval2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 43 }, @@ -130,7 +168,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 48 }, @@ -139,7 +179,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -148,7 +190,9 @@ "token": "table111", "value": "table111", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 50 }, @@ -157,7 +201,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 58 }, @@ -166,7 +212,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 61 }, @@ -184,7 +234,9 @@ "token": "table111", "value": "table111", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 62 }, @@ -193,7 +245,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 70 }, @@ -202,7 +256,9 @@ "token": "aval1", "value": "aval1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 71 }, @@ -211,7 +267,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -220,7 +278,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -238,7 +300,9 @@ "token": "table112", "value": "table112", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 82 }, @@ -247,7 +311,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -256,7 +322,9 @@ "token": "CROSS JOIN", "value": "CROSS JOIN", "keyword": "CROSS JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 91 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -274,30 +344,34 @@ "token": "table111", "value": "table111", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 102 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 31, - "idx": 31 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -368,11 +442,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -393,11 +467,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -406,9 +481,7 @@ "last": 29 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinMultiple.out b/tests/data/parser/parseSelectJoinMultiple.out index f7d8e71fe..457e6e078 100644 --- a/tests/data/parser/parseSelectJoinMultiple.out +++ b/tests/data/parser/parseSelectJoinMultiple.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM Orders NATURAL JOIN Items_Orders NATURAL JOIN Items\nWHERE customer= 'username'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM Orders NATURAL JOIN Items_Orders NATURAL JOIN Items\nWHERE customer= 'username'", "len": 92, "last": 92, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "Orders", "value": "Orders", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": "NATURAL JOIN", "value": "NATURAL JOIN", "keyword": "NATURAL JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +135,9 @@ "token": "Items_Orders", "value": "Items_Orders", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -121,7 +157,9 @@ "token": "NATURAL JOIN", "value": "NATURAL JOIN", "keyword": "NATURAL JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 47 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -139,7 +179,9 @@ "token": "Items", "value": "Items", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 60 }, @@ -148,7 +190,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -157,7 +201,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 66 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -175,7 +223,9 @@ "token": "customer", "value": "customer", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 72 }, @@ -184,7 +234,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 80 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -202,30 +256,36 @@ "token": "'username'", "value": "username", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 82 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -256,7 +316,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -266,11 +326,14 @@ "username" ], "isOperator": false, - "expr": "customer= 'username'" + "expr": "customer= 'username'", + "leftOperand": "customer", + "operator": "=", + "rightOperand": "'username'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -291,7 +354,8 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -307,11 +371,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -320,9 +385,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinMultiple2.out b/tests/data/parser/parseSelectJoinMultiple2.out index 408e69988..9d1b229b3 100644 --- a/tests/data/parser/parseSelectJoinMultiple2.out +++ b/tests/data/parser/parseSelectJoinMultiple2.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM orders\nNATURAL JOIN Items_Orders LEFT JOIN items on orders.item_id = items.id\nWHERE customer= 'username'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM orders\nNATURAL JOIN Items_Orders LEFT JOIN items on orders.item_id = items.id\nWHERE customer= 'username'", "len": 118, "last": 118, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 35, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "orders", "value": "orders", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -85,7 +113,9 @@ "token": "NATURAL JOIN", "value": "NATURAL JOIN", "keyword": "NATURAL JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 21 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +135,9 @@ "token": "Items_Orders", "value": "Items_Orders", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -121,7 +157,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 47 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -139,7 +179,9 @@ "token": "items", "value": "items", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 57 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -157,7 +201,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -175,7 +223,9 @@ "token": "orders", "value": "orders", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 66 }, @@ -184,7 +234,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 72 }, @@ -193,7 +245,9 @@ "token": "item_id", "value": "item_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 73 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -211,7 +267,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 81 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -229,7 +289,9 @@ "token": "items", "value": "items", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 83 }, @@ -238,7 +300,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 88 }, @@ -247,7 +311,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 89 }, @@ -256,7 +322,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -265,7 +333,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 92 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 97 }, @@ -283,7 +355,9 @@ "token": "customer", "value": "customer", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 98 }, @@ -292,7 +366,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 106 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -310,30 +388,36 @@ "token": "'username'", "value": "username", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 108 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 35, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -364,7 +448,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -374,11 +458,14 @@ "username" ], "isOperator": false, - "expr": "customer= 'username'" + "expr": "customer= 'username'", + "leftOperand": "customer", + "operator": "=", + "rightOperand": "'username'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -399,7 +486,8 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -424,14 +512,18 @@ "id" ], "isOperator": false, - "expr": "orders.item_id = items.id" + "expr": "orders.item_id = items.id", + "leftOperand": "orders.item_id", + "operator": "=", + "rightOperand": "items.id" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -440,9 +532,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinNatural.out b/tests/data/parser/parseSelectJoinNatural.out index fa4138c24..40ac79ce3 100644 --- a/tests/data/parser/parseSelectJoinNatural.out +++ b/tests/data/parser/parseSelectJoinNatural.out @@ -2,18 +2,26 @@ "query": "SELECT id,aval1,cval1\nFROM table111\nNATURAL JOIN table113", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT id,aval1,cval1\nFROM table111\nNATURAL JOIN table113", "len": 57, "last": 57, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -49,7 +69,9 @@ "token": "aval1", "value": "aval1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 10 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 15 }, @@ -67,7 +91,9 @@ "token": "cval1", "value": "cval1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, @@ -76,7 +102,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "table111", "value": "table111", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 27 }, @@ -112,7 +146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -121,7 +157,9 @@ "token": "NATURAL JOIN", "value": "NATURAL JOIN", "keyword": "NATURAL JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 36 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -139,30 +179,34 @@ "token": "table113", "value": "table113", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 49 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -213,11 +257,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -238,11 +282,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -251,9 +296,7 @@ "last": 14 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinNaturalLeft.out b/tests/data/parser/parseSelectJoinNaturalLeft.out index 9134e707a..bcb7dc066 100644 --- a/tests/data/parser/parseSelectJoinNaturalLeft.out +++ b/tests/data/parser/parseSelectJoinNaturalLeft.out @@ -2,18 +2,26 @@ "query": "SELECT C.First_Name, C.Last_Name, O.title\nFROM Employee as C\nNATURAL LEFT JOIN JOb as O;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT C.First_Name, C.Last_Name, O.title\nFROM Employee as C\nNATURAL LEFT JOIN JOb as O;", "len": 88, "last": 88, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 33, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "C", "value": "C", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 8 }, @@ -49,7 +69,9 @@ "token": "First_Name", "value": "First_Name", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 19 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -76,7 +102,9 @@ "token": "C", "value": "C", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 22 }, @@ -94,7 +124,9 @@ "token": "Last_Name", "value": "Last_Name", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -103,7 +135,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": "O", "value": "O", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 35 }, @@ -139,7 +179,9 @@ "token": "title", "value": "title", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 36 }, @@ -148,7 +190,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -175,7 +223,9 @@ "token": "Employee", "value": "Employee", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 47 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -193,7 +245,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -211,7 +267,9 @@ "token": "C", "value": "C", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -220,7 +278,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -229,7 +289,9 @@ "token": "NATURAL LEFT JOIN", "value": "NATURAL LEFT JOIN", "keyword": "NATURAL LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 61 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -247,7 +311,9 @@ "token": "JOb", "value": "JOb", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 79 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -265,7 +333,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 83 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -283,7 +355,9 @@ "token": "O", "value": "O", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 86 }, @@ -292,30 +366,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 87 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@38" + }, "flags": 0, "position": null } - ], - "count": 33, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -366,11 +444,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -391,11 +469,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -404,9 +483,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinNaturalLeftOuter.out b/tests/data/parser/parseSelectJoinNaturalLeftOuter.out index d3503ddb6..a36cbeeb3 100644 --- a/tests/data/parser/parseSelectJoinNaturalLeftOuter.out +++ b/tests/data/parser/parseSelectJoinNaturalLeftOuter.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM actor NATURAL LEFT OUTER JOIN film_actor;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM actor NATURAL LEFT OUTER JOIN film_actor;", "len": 55, "last": 55, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "actor", "value": "actor", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "NATURAL LEFT OUTER JOIN", "value": "NATURAL LEFT OUTER JOIN", "keyword": "NATURAL LEFT OUTER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -103,7 +135,9 @@ "token": "film_actor", "value": "film_actor", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 44 }, @@ -112,30 +146,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 54 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -166,11 +204,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -191,11 +229,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -204,9 +243,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinNaturalRight.out b/tests/data/parser/parseSelectJoinNaturalRight.out index b3d36cb94..45f8834e5 100644 --- a/tests/data/parser/parseSelectJoinNaturalRight.out +++ b/tests/data/parser/parseSelectJoinNaturalRight.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM actor NATURAL RIGHT JOIN film_actor;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM actor NATURAL RIGHT JOIN film_actor;\n", "len": 51, "last": 51, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "actor", "value": "actor", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "NATURAL RIGHT JOIN", "value": "NATURAL RIGHT JOIN", "keyword": "NATURAL RIGHT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -103,7 +135,9 @@ "token": "film_actor", "value": "film_actor", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 39 }, @@ -112,7 +146,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 49 }, @@ -121,30 +159,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -175,11 +215,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -200,11 +240,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -213,9 +254,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinNaturalRightOuter.out b/tests/data/parser/parseSelectJoinNaturalRightOuter.out index 1621ab6e9..4cf37a5b3 100644 --- a/tests/data/parser/parseSelectJoinNaturalRightOuter.out +++ b/tests/data/parser/parseSelectJoinNaturalRightOuter.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM actor NATURAL RIGHT OUTER JOIN film_actor;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM actor NATURAL RIGHT OUTER JOIN film_actor;", "len": 56, "last": 56, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "actor", "value": "actor", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +113,9 @@ "token": "NATURAL RIGHT OUTER JOIN", "value": "NATURAL RIGHT OUTER JOIN", "keyword": "NATURAL RIGHT OUTER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -103,7 +135,9 @@ "token": "film_actor", "value": "film_actor", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 45 }, @@ -112,30 +146,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 55 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -166,11 +204,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -191,11 +229,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -204,9 +243,7 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectJoinStraight.out b/tests/data/parser/parseSelectJoinStraight.out index ca437f779..f4360a9dc 100644 --- a/tests/data/parser/parseSelectJoinStraight.out +++ b/tests/data/parser/parseSelectJoinStraight.out @@ -2,18 +2,26 @@ "query": "SELECT id,aval1,cval1\nFROM table111\nSTRAIGHT_JOIN table113 on table111.a = table113.b", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT id,aval1,cval1\nFROM table111\nSTRAIGHT_JOIN table113 on table111.a = table113.b", "len": 85, "last": 85, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 28, + "idx": 28, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -49,7 +69,9 @@ "token": "aval1", "value": "aval1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 10 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 15 }, @@ -67,7 +91,9 @@ "token": "cval1", "value": "cval1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, @@ -76,7 +102,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -103,7 +135,9 @@ "token": "table111", "value": "table111", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 27 }, @@ -112,7 +146,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -121,7 +157,9 @@ "token": "STRAIGHT_JOIN", "value": "STRAIGHT_JOIN", "keyword": "STRAIGHT_JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 36 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -139,7 +179,9 @@ "token": "table113", "value": "table113", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 50 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -157,7 +201,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 59 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -175,7 +223,9 @@ "token": "table111", "value": "table111", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 62 }, @@ -184,7 +234,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 70 }, @@ -193,7 +245,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 71 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -211,7 +267,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 73 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -229,7 +289,9 @@ "token": "table113", "value": "table113", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 75 }, @@ -238,7 +300,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 83 }, @@ -247,30 +311,34 @@ "token": "b", "value": "b", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 84 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 28, - "idx": 28 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -321,11 +389,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -355,14 +423,18 @@ "b" ], "isOperator": false, - "expr": "table111.a = table113.b" + "expr": "table111.a = table113.b", + "leftOperand": "table111.a", + "operator": "=", + "rightOperand": "table113.b" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -371,9 +443,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectNested.out b/tests/data/parser/parseSelectNested.out index 5507a66a3..62110edc3 100644 --- a/tests/data/parser/parseSelectNested.out +++ b/tests/data/parser/parseSelectNested.out @@ -2,18 +2,26 @@ "query": "SELECT (SELECT 'foo') as Bar, (SELECT 'baz') as fOo;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT (SELECT 'foo') as Bar, (SELECT 'baz') as fOo;", "len": 52, "last": 52, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -58,7 +78,11 @@ "token": "'foo'", "value": "foo", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 15 }, @@ -67,7 +91,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 20 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +113,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -103,7 +135,11 @@ "token": "Bar", "value": "Bar", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 25 }, @@ -112,7 +148,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 28 }, @@ -121,7 +159,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -130,7 +170,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 30 }, @@ -139,7 +181,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 31 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -157,7 +203,9 @@ "token": "'baz'", "value": "baz", "keyword": null, - "type": 7, + "type": { + "@type": "@11" + }, "flags": 1, "position": 38 }, @@ -166,7 +214,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 43 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -184,7 +236,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -202,7 +258,9 @@ "token": "fOo", "value": "fOo", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 48 }, @@ -211,30 +269,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 51 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@30" + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -264,11 +326,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -276,7 +338,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -285,9 +347,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectOrderByComment.out b/tests/data/parser/parseSelectOrderByComment.out index a2b3f7e92..f4096199e 100644 --- a/tests/data/parser/parseSelectOrderByComment.out +++ b/tests/data/parser/parseSelectOrderByComment.out @@ -2,18 +2,26 @@ "query": "SELECT `one space` -- this is the SELECT\n FROM `Une table espace` -- this is the FROM\n ORDER BY `one space` ASC -- this is the order by", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT `one space` -- this is the SELECT\n FROM `Une table espace` -- this is the FROM\n ORDER BY `one space` ASC -- this is the order by", "len": 143, "last": 144, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 20, + "idx": 20, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "`one space`", "value": "one space", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -49,7 +67,11 @@ "token": "-- this is the SELECT", "value": "-- this is the SELECT", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 20 }, @@ -58,7 +80,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -67,7 +91,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -85,7 +113,9 @@ "token": "`Une table espace`", "value": "Une table espace", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 51 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -103,7 +135,9 @@ "token": "-- this is the FROM", "value": "-- this is the FROM", "keyword": null, - "type": 4, + "type": { + "@type": "@10" + }, "flags": 4, "position": 71 }, @@ -112,7 +146,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -121,7 +157,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 95 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -139,7 +179,9 @@ "token": "`one space`", "value": "one space", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 104 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -157,7 +201,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 116 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, @@ -175,30 +223,34 @@ "token": "-- this is the order by", "value": "-- this is the order by", "keyword": null, - "type": 4, + "type": { + "@type": "@10" + }, "flags": 4, "position": 120 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 20, - "idx": 20 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -229,11 +281,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [ { @@ -248,7 +300,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -256,7 +312,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -265,9 +321,7 @@ "last": 18 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectOrderByIsNull.out b/tests/data/parser/parseSelectOrderByIsNull.out index feedcaea2..a1caf1ef5 100644 --- a/tests/data/parser/parseSelectOrderByIsNull.out +++ b/tests/data/parser/parseSelectOrderByIsNull.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM some_table ORDER BY some_col IS NULL;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM some_table ORDER BY some_col IS NULL;", "len": 51, "last": 51, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "some_table", "value": "some_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +113,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +135,9 @@ "token": "some_col", "value": "some_col", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -121,7 +157,9 @@ "token": "IS", "value": "IS", "keyword": "IS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +179,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 46 }, @@ -148,30 +190,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 50 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@22" + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -202,11 +248,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [ { @@ -221,7 +267,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } } ], "limit": null, @@ -229,7 +279,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -238,9 +288,7 @@ "last": 14 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectOverAlias_mariadb_100600.out b/tests/data/parser/parseSelectOverAlias_mariadb_100600.out index dec3017fc..4a2f3921c 100644 --- a/tests/data/parser/parseSelectOverAlias_mariadb_100600.out +++ b/tests/data/parser/parseSelectOverAlias_mariadb_100600.out @@ -2,18 +2,26 @@ "query": "select `products`.`pid` AS `pid`, `products`.`pname` as `name`, rank() over( partition by `products`.`pvalue` order by `products`.`pid` desc) AS `myrank` from `products` \n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "select `products`.`pid` AS `pid`, `products`.`pname` as `name`, rank() over( partition by `products`.`pvalue` order by `products`.`pid` desc) AS `myrank` from `products` \n", "len": 171, "last": 171, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 51, + "idx": 51, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "select", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "`products`", "value": "products", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 7 }, @@ -40,7 +56,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 17 }, @@ -49,7 +69,9 @@ "token": "`pid`", "value": "pid", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 18 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +91,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +113,9 @@ "token": "`pid`", "value": "pid", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 27 }, @@ -94,7 +124,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 32 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -112,7 +146,9 @@ "token": "`products`", "value": "products", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 34 }, @@ -121,7 +157,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 44 }, @@ -130,7 +168,9 @@ "token": "`pname`", "value": "pname", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -148,7 +190,9 @@ "token": "as", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 53 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -166,7 +212,9 @@ "token": "`name`", "value": "name", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 56 }, @@ -175,7 +223,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 62 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -193,7 +245,9 @@ "token": "rank", "value": "rank", "keyword": "RANK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 64 }, @@ -202,7 +256,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 68 }, @@ -211,7 +267,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 69 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -229,7 +289,9 @@ "token": "over", "value": "OVER", "keyword": "OVER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -238,7 +300,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 75 }, @@ -247,7 +311,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -256,7 +322,9 @@ "token": "partition by", "value": "PARTITION BY", "keyword": "PARTITION BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 77 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -274,7 +344,9 @@ "token": "`products`", "value": "products", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 90 }, @@ -283,7 +355,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 100 }, @@ -292,7 +366,9 @@ "token": "`pvalue`", "value": "pvalue", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 101 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -310,7 +388,9 @@ "token": "order by", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 110 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -328,7 +410,9 @@ "token": "`products`", "value": "products", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 119 }, @@ -337,7 +421,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 129 }, @@ -346,7 +432,9 @@ "token": "`pid`", "value": "pid", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 130 }, @@ -355,7 +443,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -364,7 +454,9 @@ "token": "desc", "value": "DESC", "keyword": "DESC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 136 }, @@ -373,7 +465,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 140 }, @@ -382,7 +476,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -391,7 +487,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 142 }, @@ -400,7 +498,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -409,7 +509,9 @@ "token": "`myrank`", "value": "myrank", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 145 }, @@ -418,7 +520,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 153 }, @@ -427,7 +531,9 @@ "token": "from", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 154 }, @@ -436,7 +542,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -445,7 +553,9 @@ "token": "`products`", "value": "products", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 159 }, @@ -454,30 +564,34 @@ "token": " \n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 169 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 51, - "idx": 51 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -528,11 +642,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -540,7 +654,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -549,9 +663,7 @@ "last": 49 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectUnion.out b/tests/data/parser/parseSelectUnion.out index 4c1114509..806d96a39 100644 --- a/tests/data/parser/parseSelectUnion.out +++ b/tests/data/parser/parseSelectUnion.out @@ -2,18 +2,26 @@ "query": "(SELECT a FROM t WHERE a=1) UNION (SELECT a FROM t WHERE a=2)\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "(SELECT a FROM t WHERE a=1) UNION (SELECT a FROM t WHERE a=2)\n", "len": 62, "last": 62, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 35, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 0 }, @@ -22,7 +30,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 1 }, @@ -31,7 +43,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 8 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 9 }, @@ -58,7 +80,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 10 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 15 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, @@ -94,7 +124,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 17 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -112,7 +146,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 23 }, @@ -121,7 +157,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 2, "position": 24 }, @@ -130,7 +168,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 25 }, @@ -139,7 +181,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 26 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 27 }, @@ -157,7 +203,9 @@ "token": "UNION", "value": "UNION", "keyword": "UNION", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 28 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 33 }, @@ -175,7 +225,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 34 }, @@ -184,7 +236,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 35 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 41 }, @@ -202,7 +258,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 42 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 43 }, @@ -220,7 +280,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 44 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 48 }, @@ -238,7 +302,9 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 49 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 50 }, @@ -256,7 +324,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 51 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 56 }, @@ -274,7 +346,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 57 }, @@ -283,7 +357,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 2, "position": 58 }, @@ -292,7 +368,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@20" + }, "flags": 0, "position": 59 }, @@ -301,7 +379,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 60 }, @@ -310,30 +390,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 61 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 35, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -364,7 +448,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -373,11 +457,14 @@ "a" ], "isOperator": false, - "expr": "a=1" + "expr": "a=1", + "leftOperand": "a", + "operator": "=", + "rightOperand": "1" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -413,7 +500,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -422,11 +509,14 @@ "a" ], "isOperator": false, - "expr": "a=2" + "expr": "a=2", + "leftOperand": "a", + "operator": "=", + "rightOperand": "2" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -434,7 +524,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -444,7 +534,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -453,9 +543,7 @@ "last": 33 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectUnion2.out b/tests/data/parser/parseSelectUnion2.out index 68fcc4b91..38b4271b0 100644 --- a/tests/data/parser/parseSelectUnion2.out +++ b/tests/data/parser/parseSelectUnion2.out @@ -2,18 +2,26 @@ "query": "(SELECT DISTINCT `User`, `Host` FROM `mysql`.`user` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`db` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`tables_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`columns_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`procs_priv` ) ORDER BY `User` ASC, `Host` ASC", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "(SELECT DISTINCT `User`, `Host` FROM `mysql`.`user` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`db` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`tables_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`columns_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`procs_priv` ) ORDER BY `User` ASC, `Host` ASC", "len": 344, "last": 344, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 109, + "idx": 109, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 0 }, @@ -22,7 +30,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 1 }, @@ -31,7 +43,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 8 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, @@ -58,7 +78,11 @@ "token": "`User`", "value": "User", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 17 }, @@ -67,7 +91,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 23 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 24 }, @@ -85,7 +113,9 @@ "token": "`Host`", "value": "Host", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 31 }, @@ -103,7 +135,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 32 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 36 }, @@ -121,7 +157,9 @@ "token": "`mysql`", "value": "mysql", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 37 }, @@ -130,7 +168,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 44 }, @@ -139,7 +179,9 @@ "token": "`user`", "value": "user", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 45 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 51 }, @@ -157,7 +201,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 52 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 53 }, @@ -175,7 +223,9 @@ "token": "UNION", "value": "UNION", "keyword": "UNION", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 54 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -193,7 +245,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 60 }, @@ -202,7 +256,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 61 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 67 }, @@ -220,7 +278,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 68 }, @@ -229,7 +289,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 76 }, @@ -238,7 +300,9 @@ "token": "`User`", "value": "User", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 77 }, @@ -247,7 +311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 83 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 84 }, @@ -265,7 +333,9 @@ "token": "`Host`", "value": "Host", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 85 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 91 }, @@ -283,7 +355,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 92 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 96 }, @@ -301,7 +377,9 @@ "token": "`mysql`", "value": "mysql", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 97 }, @@ -310,7 +388,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 104 }, @@ -319,7 +399,9 @@ "token": "`db`", "value": "db", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 105 }, @@ -328,7 +410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 109 }, @@ -337,7 +421,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 110 }, @@ -346,7 +432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 111 }, @@ -355,7 +443,9 @@ "token": "UNION", "value": "UNION", "keyword": "UNION", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 112 }, @@ -364,7 +454,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 117 }, @@ -373,7 +465,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 118 }, @@ -382,7 +476,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 119 }, @@ -391,7 +487,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 125 }, @@ -400,7 +498,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 126 }, @@ -409,7 +509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 134 }, @@ -418,7 +520,9 @@ "token": "`User`", "value": "User", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 135 }, @@ -427,7 +531,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 141 }, @@ -436,7 +542,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 142 }, @@ -445,7 +553,9 @@ "token": "`Host`", "value": "Host", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 143 }, @@ -454,7 +564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 149 }, @@ -463,7 +575,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 150 }, @@ -472,7 +586,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 154 }, @@ -481,7 +597,9 @@ "token": "`mysql`", "value": "mysql", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 155 }, @@ -490,7 +608,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 162 }, @@ -499,7 +619,9 @@ "token": "`tables_priv`", "value": "tables_priv", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 163 }, @@ -508,7 +630,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 176 }, @@ -517,7 +641,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 177 }, @@ -526,7 +652,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 178 }, @@ -535,7 +663,9 @@ "token": "UNION", "value": "UNION", "keyword": "UNION", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 179 }, @@ -544,7 +674,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 184 }, @@ -553,7 +685,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 185 }, @@ -562,7 +696,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 186 }, @@ -571,7 +707,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 192 }, @@ -580,7 +718,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 193 }, @@ -589,7 +729,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 201 }, @@ -598,7 +740,9 @@ "token": "`User`", "value": "User", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 202 }, @@ -607,7 +751,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 208 }, @@ -616,7 +762,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 209 }, @@ -625,7 +773,9 @@ "token": "`Host`", "value": "Host", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 210 }, @@ -634,7 +784,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 216 }, @@ -643,7 +795,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 217 }, @@ -652,7 +806,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 221 }, @@ -661,7 +817,9 @@ "token": "`mysql`", "value": "mysql", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 222 }, @@ -670,7 +828,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 229 }, @@ -679,7 +839,9 @@ "token": "`columns_priv`", "value": "columns_priv", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 230 }, @@ -688,7 +850,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 244 }, @@ -697,7 +861,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 245 }, @@ -706,7 +872,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 246 }, @@ -715,7 +883,9 @@ "token": "UNION", "value": "UNION", "keyword": "UNION", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 247 }, @@ -724,7 +894,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 252 }, @@ -733,7 +905,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 253 }, @@ -742,7 +916,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 254 }, @@ -751,7 +927,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 260 }, @@ -760,7 +938,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 261 }, @@ -769,7 +949,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 269 }, @@ -778,7 +960,9 @@ "token": "`User`", "value": "User", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 270 }, @@ -787,7 +971,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 276 }, @@ -796,7 +982,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 277 }, @@ -805,7 +993,9 @@ "token": "`Host`", "value": "Host", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 278 }, @@ -814,7 +1004,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 284 }, @@ -823,7 +1015,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 285 }, @@ -832,7 +1026,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 289 }, @@ -841,7 +1037,9 @@ "token": "`mysql`", "value": "mysql", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 290 }, @@ -850,7 +1048,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 297 }, @@ -859,7 +1059,9 @@ "token": "`procs_priv`", "value": "procs_priv", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 298 }, @@ -868,7 +1070,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 310 }, @@ -877,7 +1081,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 311 }, @@ -886,7 +1092,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 312 }, @@ -895,7 +1103,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 7, "position": 313 }, @@ -904,7 +1114,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 321 }, @@ -913,7 +1125,9 @@ "token": "`User`", "value": "User", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 322 }, @@ -922,7 +1136,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 328 }, @@ -931,7 +1147,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 329 }, @@ -940,7 +1158,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 332 }, @@ -949,7 +1169,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 333 }, @@ -958,7 +1180,9 @@ "token": "`Host`", "value": "Host", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 2, "position": 334 }, @@ -967,7 +1191,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 340 }, @@ -976,30 +1202,34 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 341 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 109, - "idx": 109 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1040,11 +1270,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [ { @@ -1059,7 +1289,11 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderSortKeyword", + "name": "Asc", + "value": "ASC" + } }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\OrderKeyword", @@ -1073,7 +1307,9 @@ "function": null, "subquery": null }, - "type": "ASC" + "type": { + "@type": "@123" + } } ], "limit": null, @@ -1119,11 +1355,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -1131,7 +1367,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -1180,11 +1416,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -1192,7 +1428,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -1241,11 +1477,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -1253,7 +1489,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -1302,11 +1538,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -1314,7 +1550,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -1326,7 +1562,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -1337,9 +1573,7 @@ "last": 107 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectWhere.out b/tests/data/parser/parseSelectWhere.out index e31956ee7..804eed44f 100644 --- a/tests/data/parser/parseSelectWhere.out +++ b/tests/data/parser/parseSelectWhere.out @@ -2,18 +2,26 @@ "query": "SELECT * FROM film WHERE film_id = 10 OR film_id >= 20;\nSELECT * FROM film WHERE (film_id < 10) || (film_id > 20);\nSELECT * FROM film WHERE `film_id` != 10 AND `film_id` <= 20;\nSELECT * FROM film WHERE `film`.`film_id` <> 10 && `film`.`film_id` <= 20;\nSELECT * FROM film WHERE film.film_id < 20 XOR film.rating = 'PG-13';\nSELECT * FROM film WHERE /* film_id = */ film_id = 10;\nSELECT * FROM film WHERE NOT film_id > 10;\nSELECT * FROM film WHERE ! (film_id > 10);\nSELECT * FROM film WHERE description IS NULL;\nSELECT * FROM film WHERE description IS NOT NULL;\nSELECT * FROM film WHERE film_id BETWEEN 10 AND 20;\nSELECT * FROM film WHERE film_id NOT BETWEEN 10 AND 20;\nSELECT * FROM film WHERE film_id IN (3,5,7);\nSELECT * FROM film WHERE rating = UPPER('pg');\nSELECT * FROM film WHERE rating SOUNDS LIKE 'PG';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT * FROM film WHERE film_id = 10 OR film_id >= 20;\nSELECT * FROM film WHERE (film_id < 10) || (film_id > 20);\nSELECT * FROM film WHERE `film_id` != 10 AND `film_id` <= 20;\nSELECT * FROM film WHERE `film`.`film_id` <> 10 && `film`.`film_id` <= 20;\nSELECT * FROM film WHERE film.film_id < 20 XOR film.rating = 'PG-13';\nSELECT * FROM film WHERE /* film_id = */ film_id = 10;\nSELECT * FROM film WHERE NOT film_id > 10;\nSELECT * FROM film WHERE ! (film_id > 10);\nSELECT * FROM film WHERE description IS NULL;\nSELECT * FROM film WHERE description IS NOT NULL;\nSELECT * FROM film WHERE film_id BETWEEN 10 AND 20;\nSELECT * FROM film WHERE film_id NOT BETWEEN 10 AND 20;\nSELECT * FROM film WHERE film_id IN (3,5,7);\nSELECT * FROM film WHERE rating = UPPER('pg');\nSELECT * FROM film WHERE rating SOUNDS LIKE 'PG';", "len": 808, "last": 808, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 336, + "idx": 336, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 9 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,11 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +113,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -103,7 +135,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 25 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -121,7 +157,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 33 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 34 }, @@ -139,7 +179,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 35 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -157,7 +203,9 @@ "token": "OR", "value": "OR", "keyword": "OR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -175,7 +225,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 41 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -193,7 +247,9 @@ "token": ">=", "value": ">=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 49 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -211,7 +269,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 52 }, @@ -220,7 +280,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 54 }, @@ -229,7 +293,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -238,7 +304,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 56 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -256,7 +326,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 63 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -274,7 +348,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 65 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -292,7 +370,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 70 }, @@ -301,7 +381,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -310,7 +392,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 75 }, @@ -319,7 +403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -328,7 +414,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 81 }, @@ -337,7 +425,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 82 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -355,7 +447,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 90 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -373,7 +469,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 92 }, @@ -382,7 +480,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 94 }, @@ -391,7 +491,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -400,7 +502,9 @@ "token": "||", "value": "||", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 96 }, @@ -409,7 +513,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 98 }, @@ -418,7 +524,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 99 }, @@ -427,7 +535,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 100 }, @@ -436,7 +546,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 107 }, @@ -445,7 +557,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 108 }, @@ -454,7 +568,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -463,7 +579,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 110 }, @@ -472,7 +590,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 112 }, @@ -481,7 +601,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 113 }, @@ -490,7 +612,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 114 }, @@ -499,7 +623,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 115 }, @@ -508,7 +634,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 121 }, @@ -517,7 +645,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 122 }, @@ -526,7 +656,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 123 }, @@ -535,7 +667,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 124 }, @@ -544,7 +678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 128 }, @@ -553,7 +689,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 129 }, @@ -562,7 +700,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -571,7 +711,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 134 }, @@ -580,7 +722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, @@ -589,7 +733,11 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 140 }, @@ -598,7 +746,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -607,7 +757,9 @@ "token": "!=", "value": "!=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 150 }, @@ -616,7 +768,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -625,7 +779,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 153 }, @@ -634,7 +790,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -643,7 +801,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 156 }, @@ -652,7 +812,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 159 }, @@ -661,7 +823,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@73" + }, "flags": 2, "position": 160 }, @@ -670,7 +834,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 169 }, @@ -679,7 +845,9 @@ "token": "<=", "value": "<=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 170 }, @@ -688,7 +856,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 172 }, @@ -697,7 +867,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 173 }, @@ -706,7 +878,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 175 }, @@ -715,7 +889,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 176 }, @@ -724,7 +900,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 177 }, @@ -733,7 +911,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 183 }, @@ -742,7 +922,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 184 }, @@ -751,7 +933,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 185 }, @@ -760,7 +944,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 186 }, @@ -769,7 +955,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 190 }, @@ -778,7 +966,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 191 }, @@ -787,7 +977,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 195 }, @@ -796,7 +988,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 196 }, @@ -805,7 +999,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 201 }, @@ -814,7 +1010,9 @@ "token": "`film`", "value": "film", "keyword": null, - "type": 8, + "type": { + "@type": "@73" + }, "flags": 2, "position": 202 }, @@ -823,7 +1021,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 208 }, @@ -832,7 +1032,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@73" + }, "flags": 2, "position": 209 }, @@ -841,7 +1043,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 218 }, @@ -850,7 +1054,9 @@ "token": "<>", "value": "<>", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 219 }, @@ -859,7 +1065,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 221 }, @@ -868,7 +1076,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 222 }, @@ -877,7 +1087,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 224 }, @@ -886,7 +1098,9 @@ "token": "&&", "value": "&&", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 225 }, @@ -895,7 +1109,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 227 }, @@ -904,7 +1120,9 @@ "token": "`film`", "value": "film", "keyword": null, - "type": 8, + "type": { + "@type": "@73" + }, "flags": 2, "position": 228 }, @@ -913,7 +1131,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 234 }, @@ -922,7 +1142,9 @@ "token": "`film_id`", "value": "film_id", "keyword": null, - "type": 8, + "type": { + "@type": "@73" + }, "flags": 2, "position": 235 }, @@ -931,7 +1153,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 244 }, @@ -940,7 +1164,9 @@ "token": "<=", "value": "<=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 245 }, @@ -949,7 +1175,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 247 }, @@ -958,7 +1186,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 248 }, @@ -967,7 +1197,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 250 }, @@ -976,7 +1208,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 251 }, @@ -985,7 +1219,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 252 }, @@ -994,7 +1230,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 258 }, @@ -1003,7 +1241,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 259 }, @@ -1012,7 +1252,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 260 }, @@ -1021,7 +1263,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 261 }, @@ -1030,7 +1274,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 265 }, @@ -1039,7 +1285,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 266 }, @@ -1048,7 +1296,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 270 }, @@ -1057,7 +1307,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 271 }, @@ -1066,7 +1318,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 276 }, @@ -1075,7 +1329,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 277 }, @@ -1084,7 +1340,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 281 }, @@ -1093,7 +1351,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 282 }, @@ -1102,7 +1362,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 289 }, @@ -1111,7 +1373,9 @@ "token": "<", "value": "<", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 290 }, @@ -1120,7 +1384,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 291 }, @@ -1129,7 +1395,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 292 }, @@ -1138,7 +1406,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 294 }, @@ -1147,7 +1417,9 @@ "token": "XOR", "value": "XOR", "keyword": "XOR", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 295 }, @@ -1156,7 +1428,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 298 }, @@ -1165,7 +1439,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 299 }, @@ -1174,7 +1450,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 303 }, @@ -1183,7 +1461,9 @@ "token": "rating", "value": "rating", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 304 }, @@ -1192,7 +1472,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 310 }, @@ -1201,7 +1483,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 311 }, @@ -1210,7 +1494,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 312 }, @@ -1219,7 +1505,11 @@ "token": "'PG-13'", "value": "PG-13", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 313 }, @@ -1228,7 +1518,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 320 }, @@ -1237,7 +1529,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 321 }, @@ -1246,7 +1540,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 322 }, @@ -1255,7 +1551,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 328 }, @@ -1264,7 +1562,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 329 }, @@ -1273,7 +1573,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 330 }, @@ -1282,7 +1584,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 331 }, @@ -1291,7 +1595,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 335 }, @@ -1300,7 +1606,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 336 }, @@ -1309,7 +1617,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 340 }, @@ -1318,7 +1628,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 341 }, @@ -1327,7 +1639,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 346 }, @@ -1336,7 +1650,11 @@ "token": "/* film_id = */", "value": "/* film_id = */", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 2, "position": 347 }, @@ -1345,7 +1663,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 362 }, @@ -1354,7 +1674,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 363 }, @@ -1363,7 +1685,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 370 }, @@ -1372,7 +1696,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 371 }, @@ -1381,7 +1707,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 372 }, @@ -1390,7 +1718,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 373 }, @@ -1399,7 +1729,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 375 }, @@ -1408,7 +1740,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 376 }, @@ -1417,7 +1751,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 377 }, @@ -1426,7 +1762,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 383 }, @@ -1435,7 +1773,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 384 }, @@ -1444,7 +1784,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 385 }, @@ -1453,7 +1795,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 386 }, @@ -1462,7 +1806,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 390 }, @@ -1471,7 +1817,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 391 }, @@ -1480,7 +1828,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 395 }, @@ -1489,7 +1839,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 396 }, @@ -1498,7 +1850,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 401 }, @@ -1507,7 +1861,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 402 }, @@ -1516,7 +1872,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 405 }, @@ -1525,7 +1883,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 406 }, @@ -1534,7 +1894,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 413 }, @@ -1543,7 +1905,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 414 }, @@ -1552,7 +1916,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 415 }, @@ -1561,7 +1927,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 416 }, @@ -1570,7 +1938,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 418 }, @@ -1579,7 +1949,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 419 }, @@ -1588,7 +1960,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 420 }, @@ -1597,7 +1971,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 426 }, @@ -1606,7 +1982,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 427 }, @@ -1615,7 +1993,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 428 }, @@ -1624,7 +2004,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 429 }, @@ -1633,7 +2015,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 433 }, @@ -1642,7 +2026,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 434 }, @@ -1651,7 +2037,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 438 }, @@ -1660,7 +2048,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 439 }, @@ -1669,7 +2059,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 444 }, @@ -1678,7 +2070,9 @@ "token": "!", "value": "!", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 445 }, @@ -1687,7 +2081,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 446 }, @@ -1696,7 +2092,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 447 }, @@ -1705,7 +2103,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 448 }, @@ -1714,7 +2114,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 455 }, @@ -1723,7 +2125,9 @@ "token": ">", "value": ">", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 456 }, @@ -1732,7 +2136,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 457 }, @@ -1741,7 +2147,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 458 }, @@ -1750,7 +2158,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 460 }, @@ -1759,7 +2169,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 461 }, @@ -1768,7 +2180,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 462 }, @@ -1777,7 +2191,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 463 }, @@ -1786,7 +2202,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 469 }, @@ -1795,7 +2213,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 470 }, @@ -1804,7 +2224,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 471 }, @@ -1813,7 +2235,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 472 }, @@ -1822,7 +2246,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 476 }, @@ -1831,7 +2257,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 477 }, @@ -1840,7 +2268,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 481 }, @@ -1849,7 +2279,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 482 }, @@ -1858,7 +2290,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 487 }, @@ -1867,7 +2301,9 @@ "token": "description", "value": "description", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 488 }, @@ -1876,7 +2312,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 499 }, @@ -1885,7 +2323,9 @@ "token": "IS", "value": "IS", "keyword": "IS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 500 }, @@ -1894,7 +2334,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 502 }, @@ -1903,7 +2345,9 @@ "token": "NULL", "value": "NULL", "keyword": "NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 503 }, @@ -1912,7 +2356,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 507 }, @@ -1921,7 +2367,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 508 }, @@ -1930,7 +2378,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 509 }, @@ -1939,7 +2389,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 515 }, @@ -1948,7 +2400,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 516 }, @@ -1957,7 +2411,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 517 }, @@ -1966,7 +2422,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 518 }, @@ -1975,7 +2433,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 522 }, @@ -1984,7 +2444,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 523 }, @@ -1993,7 +2455,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 527 }, @@ -2002,7 +2466,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 528 }, @@ -2011,7 +2477,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 533 }, @@ -2020,7 +2488,9 @@ "token": "description", "value": "description", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 534 }, @@ -2029,7 +2499,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 545 }, @@ -2038,7 +2510,9 @@ "token": "IS", "value": "IS", "keyword": "IS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 546 }, @@ -2047,7 +2521,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 548 }, @@ -2056,7 +2532,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 549 }, @@ -2065,7 +2543,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 557 }, @@ -2074,7 +2554,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 558 }, @@ -2083,7 +2565,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 559 }, @@ -2092,7 +2576,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 565 }, @@ -2101,7 +2587,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 566 }, @@ -2110,7 +2598,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 567 }, @@ -2119,7 +2609,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 568 }, @@ -2128,7 +2620,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 572 }, @@ -2137,7 +2631,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 573 }, @@ -2146,7 +2642,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 577 }, @@ -2155,7 +2653,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 578 }, @@ -2164,7 +2664,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 583 }, @@ -2173,7 +2675,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 584 }, @@ -2182,7 +2686,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 591 }, @@ -2191,7 +2697,9 @@ "token": "BETWEEN", "value": "BETWEEN", "keyword": "BETWEEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 592 }, @@ -2200,7 +2708,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 599 }, @@ -2209,7 +2719,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 600 }, @@ -2218,7 +2730,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 602 }, @@ -2227,7 +2741,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 603 }, @@ -2236,7 +2752,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 606 }, @@ -2245,7 +2763,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 607 }, @@ -2254,7 +2774,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 609 }, @@ -2263,7 +2785,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 610 }, @@ -2272,7 +2796,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 611 }, @@ -2281,7 +2807,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 617 }, @@ -2290,7 +2818,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 618 }, @@ -2299,7 +2829,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 619 }, @@ -2308,7 +2840,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 620 }, @@ -2317,7 +2851,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 624 }, @@ -2326,7 +2862,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 625 }, @@ -2335,7 +2873,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 629 }, @@ -2344,7 +2884,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 630 }, @@ -2353,7 +2895,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 635 }, @@ -2362,7 +2906,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 636 }, @@ -2371,7 +2917,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 643 }, @@ -2380,7 +2928,9 @@ "token": "NOT", "value": "NOT", "keyword": "NOT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 644 }, @@ -2389,7 +2939,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 647 }, @@ -2398,7 +2950,9 @@ "token": "BETWEEN", "value": "BETWEEN", "keyword": "BETWEEN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 648 }, @@ -2407,7 +2961,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 655 }, @@ -2416,7 +2972,9 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 656 }, @@ -2425,7 +2983,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 658 }, @@ -2434,7 +2994,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 659 }, @@ -2443,7 +3005,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 662 }, @@ -2452,7 +3016,9 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 663 }, @@ -2461,7 +3027,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 665 }, @@ -2470,7 +3038,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 666 }, @@ -2479,7 +3049,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 667 }, @@ -2488,7 +3060,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 673 }, @@ -2497,7 +3071,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 674 }, @@ -2506,7 +3082,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 675 }, @@ -2515,7 +3093,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 676 }, @@ -2524,7 +3104,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 680 }, @@ -2533,7 +3115,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 681 }, @@ -2542,7 +3126,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 685 }, @@ -2551,7 +3137,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 686 }, @@ -2560,7 +3148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 691 }, @@ -2569,7 +3159,9 @@ "token": "film_id", "value": "film_id", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 692 }, @@ -2578,7 +3170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 699 }, @@ -2587,7 +3181,9 @@ "token": "IN", "value": "IN", "keyword": "IN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 700 }, @@ -2596,7 +3192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 702 }, @@ -2605,7 +3203,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 703 }, @@ -2614,7 +3214,9 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 704 }, @@ -2623,7 +3225,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 705 }, @@ -2632,7 +3236,9 @@ "token": "5", "value": 5, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 706 }, @@ -2641,7 +3247,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 707 }, @@ -2650,7 +3258,9 @@ "token": "7", "value": 7, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 708 }, @@ -2659,7 +3269,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 709 }, @@ -2668,7 +3280,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 710 }, @@ -2677,7 +3291,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 711 }, @@ -2686,7 +3302,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 712 }, @@ -2695,7 +3313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 718 }, @@ -2704,7 +3324,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 719 }, @@ -2713,7 +3335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 720 }, @@ -2722,7 +3346,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 721 }, @@ -2731,7 +3357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 725 }, @@ -2740,7 +3368,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 726 }, @@ -2749,7 +3379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 730 }, @@ -2758,7 +3390,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 731 }, @@ -2767,7 +3401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 736 }, @@ -2776,7 +3412,9 @@ "token": "rating", "value": "rating", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 737 }, @@ -2785,7 +3423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 743 }, @@ -2794,7 +3434,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 2, "position": 744 }, @@ -2803,7 +3445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 745 }, @@ -2812,7 +3456,9 @@ "token": "UPPER", "value": "UPPER", "keyword": "UPPER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 746 }, @@ -2821,7 +3467,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 751 }, @@ -2830,7 +3478,9 @@ "token": "'pg'", "value": "pg", "keyword": null, - "type": 7, + "type": { + "@type": "@144" + }, "flags": 1, "position": 752 }, @@ -2839,7 +3489,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 756 }, @@ -2848,7 +3500,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 757 }, @@ -2857,7 +3511,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 758 }, @@ -2866,7 +3522,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 759 }, @@ -2875,7 +3533,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 765 }, @@ -2884,7 +3544,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@7" + }, "flags": 16, "position": 766 }, @@ -2893,7 +3555,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 767 }, @@ -2902,7 +3566,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 768 }, @@ -2911,7 +3577,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 772 }, @@ -2920,7 +3588,9 @@ "token": "film", "value": "film", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 773 }, @@ -2929,7 +3599,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 777 }, @@ -2938,7 +3610,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 778 }, @@ -2947,7 +3621,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 783 }, @@ -2956,7 +3632,9 @@ "token": "rating", "value": "rating", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 784 }, @@ -2965,7 +3643,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 790 }, @@ -2974,7 +3654,9 @@ "token": "SOUNDS", "value": "SOUNDS", "keyword": "SOUNDS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 791 }, @@ -2983,7 +3665,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 797 }, @@ -2992,7 +3676,9 @@ "token": "LIKE", "value": "LIKE", "keyword": "LIKE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 798 }, @@ -3001,7 +3687,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 802 }, @@ -3010,7 +3698,9 @@ "token": "'PG'", "value": "PG", "keyword": null, - "type": 7, + "type": { + "@type": "@144" + }, "flags": 1, "position": 803 }, @@ -3019,30 +3709,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": 807 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@31" + }, "flags": 0, "position": null } - ], - "count": 336, - "idx": 336 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -3073,7 +3765,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3082,13 +3774,19 @@ "film_id" ], "isOperator": false, - "expr": "film_id = 10" + "expr": "film_id = 10", + "leftOperand": "film_id", + "operator": "=", + "rightOperand": "10" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "OR" + "expr": "OR", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -3096,11 +3794,14 @@ "film_id" ], "isOperator": false, - "expr": "film_id >= 20" + "expr": "film_id >= 20", + "leftOperand": "film_id", + "operator": ">=", + "rightOperand": "20" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3108,7 +3809,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3142,7 +3843,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3151,13 +3852,19 @@ "film_id" ], "isOperator": false, - "expr": "(film_id < 10)" + "expr": "(film_id < 10)", + "leftOperand": "(film_id", + "operator": "<", + "rightOperand": "10)" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "||" + "expr": "||", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -3165,11 +3872,14 @@ "film_id" ], "isOperator": false, - "expr": "(film_id > 20)" + "expr": "(film_id > 20)", + "leftOperand": "(film_id", + "operator": ">", + "rightOperand": "20)" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3177,7 +3887,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3211,7 +3921,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3220,13 +3930,19 @@ "film_id" ], "isOperator": false, - "expr": "`film_id` != 10" + "expr": "`film_id` != 10", + "leftOperand": "`film_id`", + "operator": "!=", + "rightOperand": "10" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -3234,11 +3950,14 @@ "film_id" ], "isOperator": false, - "expr": "`film_id` <= 20" + "expr": "`film_id` <= 20", + "leftOperand": "`film_id`", + "operator": "<=", + "rightOperand": "20" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3246,7 +3965,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3280,7 +3999,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3290,13 +4009,19 @@ "film_id" ], "isOperator": false, - "expr": "`film`.`film_id` <> 10" + "expr": "`film`.`film_id` <> 10", + "leftOperand": "`film`.`film_id`", + "operator": "<>", + "rightOperand": "10" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "&&" + "expr": "&&", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -3305,11 +4030,14 @@ "film_id" ], "isOperator": false, - "expr": "`film`.`film_id` <= 20" + "expr": "`film`.`film_id` <= 20", + "leftOperand": "`film`.`film_id`", + "operator": "<=", + "rightOperand": "20" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3317,7 +4045,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3351,7 +4079,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3361,13 +4089,19 @@ "film_id" ], "isOperator": false, - "expr": "film.film_id < 20" + "expr": "film.film_id < 20", + "leftOperand": "film.film_id", + "operator": "<", + "rightOperand": "20" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "XOR" + "expr": "XOR", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -3377,11 +4111,14 @@ "PG-13" ], "isOperator": false, - "expr": "film.rating = 'PG-13'" + "expr": "film.rating = 'PG-13'", + "leftOperand": "film.rating", + "operator": "=", + "rightOperand": "'PG-13'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3389,7 +4126,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3423,7 +4160,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3432,11 +4169,14 @@ "film_id" ], "isOperator": false, - "expr": "film_id = 10" + "expr": "film_id = 10", + "leftOperand": "film_id", + "operator": "=", + "rightOperand": "10" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3444,7 +4184,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3478,7 +4218,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3487,11 +4227,14 @@ "film_id" ], "isOperator": false, - "expr": "NOT film_id > 10" + "expr": "NOT film_id > 10", + "leftOperand": "NOT film_id", + "operator": ">", + "rightOperand": "10" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3499,7 +4242,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3533,7 +4276,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3542,11 +4285,14 @@ "film_id" ], "isOperator": false, - "expr": "! (film_id > 10)" + "expr": "! (film_id > 10)", + "leftOperand": "! (film_id", + "operator": ">", + "rightOperand": "10)" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3554,7 +4300,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3588,7 +4334,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3597,11 +4343,14 @@ "description" ], "isOperator": false, - "expr": "description IS NULL" + "expr": "description IS NULL", + "leftOperand": "description IS NULL", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3609,7 +4358,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3643,7 +4392,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3652,11 +4401,14 @@ "description" ], "isOperator": false, - "expr": "description IS NOT NULL" + "expr": "description IS NOT NULL", + "leftOperand": "description IS NOT NULL", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3664,7 +4416,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3698,7 +4450,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3707,11 +4459,14 @@ "film_id" ], "isOperator": false, - "expr": "film_id BETWEEN 10 AND 20" + "expr": "film_id BETWEEN 10 AND 20", + "leftOperand": "film_id BETWEEN 10 AND 20", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3719,7 +4474,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3753,7 +4508,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3762,11 +4517,14 @@ "film_id" ], "isOperator": false, - "expr": "film_id NOT BETWEEN 10 AND 20" + "expr": "film_id NOT BETWEEN 10 AND 20", + "leftOperand": "film_id NOT BETWEEN 10 AND 20", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3774,7 +4532,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3808,7 +4566,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3817,11 +4575,14 @@ "film_id" ], "isOperator": false, - "expr": "film_id IN (3,5,7)" + "expr": "film_id IN (3,5,7)", + "leftOperand": "film_id IN (3,5,7)", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3829,7 +4590,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3863,7 +4624,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3874,11 +4635,14 @@ "pg" ], "isOperator": false, - "expr": "rating = UPPER('pg')" + "expr": "rating = UPPER('pg')", + "leftOperand": "rating", + "operator": "=", + "rightOperand": "UPPER('pg')" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3886,7 +4650,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3920,7 +4684,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -3931,11 +4695,14 @@ "PG" ], "isOperator": false, - "expr": "rating SOUNDS LIKE 'PG'" + "expr": "rating SOUNDS LIKE 'PG'", + "leftOperand": "rating SOUNDS LIKE 'PG'", + "operator": "", + "rightOperand": "" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -3943,7 +4710,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -3952,9 +4719,7 @@ "last": 333 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectWhereCollate.out b/tests/data/parser/parseSelectWhereCollate.out index 7e3fd10ba..7e315b7f0 100644 --- a/tests/data/parser/parseSelectWhereCollate.out +++ b/tests/data/parser/parseSelectWhereCollate.out @@ -2,18 +2,26 @@ "query": "SELECT 1 FROM my_table WHERE first_col = 'foo' AND second_col COLLATE utf8_bin = 'bar';", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT 1 FROM my_table WHERE first_col = 'foo' AND second_col COLLATE utf8_bin = 'bar';", "len": 96, "last": 96, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 29, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 8 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +67,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 10 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +89,11 @@ "token": "my_table", "value": "my_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 17 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -85,7 +113,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 26 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +135,9 @@ "token": "first_col", "value": "first_col", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -121,7 +157,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 44 }, @@ -130,7 +170,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -139,7 +181,11 @@ "token": "'foo'", "value": "foo", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 46 }, @@ -148,7 +194,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -157,7 +205,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 52 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -175,7 +227,9 @@ "token": "second_col", "value": "second_col", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 60 }, @@ -184,7 +238,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -193,7 +249,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 71 }, @@ -202,7 +260,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -211,7 +271,9 @@ "token": "utf8_bin", "value": "utf8_bin", "keyword": null, - "type": 0, + "type": { + "@type": "@12" + }, "flags": 0, "position": 79 }, @@ -220,7 +282,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -229,7 +293,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@19" + }, "flags": 2, "position": 88 }, @@ -238,7 +304,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -247,7 +315,9 @@ "token": "'bar'", "value": "bar", "keyword": null, - "type": 7, + "type": { + "@type": "@22" + }, "flags": 1, "position": 90 }, @@ -256,30 +326,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 95 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@36" + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 29 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -310,7 +384,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -320,13 +394,19 @@ "foo" ], "isOperator": false, - "expr": "first_col = 'foo'" + "expr": "first_col = 'foo'", + "leftOperand": "first_col", + "operator": "=", + "rightOperand": "'foo'" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", @@ -336,11 +416,14 @@ "bar" ], "isOperator": false, - "expr": "second_col COLLATE utf8_bin = 'bar'" + "expr": "second_col COLLATE utf8_bin = 'bar'", + "leftOperand": "second_col COLLATE utf8_bin", + "operator": "=", + "rightOperand": "'bar'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -348,7 +431,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -357,9 +440,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectWithParenthesis.out b/tests/data/parser/parseSelectWithParenthesis.out index 7fe8f5daf..ba3a1c6f5 100644 --- a/tests/data/parser/parseSelectWithParenthesis.out +++ b/tests/data/parser/parseSelectWithParenthesis.out @@ -2,18 +2,26 @@ "query": "(SELECT first_name FROM `actor` LIMIT 1, 2)", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "(SELECT first_name FROM `actor` LIMIT 1, 2)", "len": 43, "last": 43, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 17, + "idx": 17, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 0 }, @@ -22,7 +30,11 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 1 }, @@ -31,7 +43,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": "first_name", "value": "first_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 8 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 18 }, @@ -58,7 +80,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 19 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -76,7 +102,11 @@ "token": "`actor`", "value": "actor", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 24 }, @@ -85,7 +115,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 31 }, @@ -94,7 +126,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 3, "position": 32 }, @@ -103,7 +137,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 37 }, @@ -112,7 +148,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 38 }, @@ -121,7 +161,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 39 }, @@ -130,7 +172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 40 }, @@ -139,7 +183,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@19" + }, "flags": 0, "position": 41 }, @@ -148,30 +194,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@3" + }, "flags": 16, "position": 42 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 17, - "idx": 17 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -202,11 +252,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": { @@ -218,7 +268,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -227,9 +277,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSelectWrongOrder.out b/tests/data/parser/parseSelectWrongOrder.out index 1c2a9f90d..ad408b74a 100644 --- a/tests/data/parser/parseSelectWrongOrder.out +++ b/tests/data/parser/parseSelectWrongOrder.out @@ -2,18 +2,26 @@ "query": "SELECT pid, name2 FROM tablename LIMIT 10 WHERE pid = 20", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT pid, name2 FROM tablename LIMIT 10 WHERE pid = 20", "len": 56, "last": 56, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 10 }, @@ -49,7 +69,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -58,7 +80,9 @@ "token": "name2", "value": "name2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 12 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -76,7 +102,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -94,7 +124,9 @@ "token": "tablename", "value": "tablename", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 33 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -130,7 +168,11 @@ "token": "10", "value": 10, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 39 }, @@ -139,7 +181,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -148,7 +192,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -157,7 +203,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -166,7 +214,9 @@ "token": "pid", "value": "pid", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 48 }, @@ -175,7 +225,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -184,7 +236,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 52 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -202,30 +258,34 @@ "token": "20", "value": 20, "keyword": null, - "type": 6, + "type": { + "@type": "@20" + }, "flags": 0, "position": 54 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 23, - "idx": 23 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -266,7 +326,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -275,11 +335,14 @@ "pid" ], "isOperator": false, - "expr": "pid = 20" + "expr": "pid = 20", + "leftOperand": "pid", + "operator": "=", + "rightOperand": "20" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": { @@ -291,7 +354,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -300,9 +363,7 @@ "last": 21 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -310,7 +371,7 @@ [ "Unexpected ordering of clauses.", { - "@type": "@13" + "@type": "@17" }, 0 ] diff --git a/tests/data/parser/parseSelectWrongOrder2.out b/tests/data/parser/parseSelectWrongOrder2.out index cc02734ff..80989995f 100644 --- a/tests/data/parser/parseSelectWrongOrder2.out +++ b/tests/data/parser/parseSelectWrongOrder2.out @@ -2,18 +2,26 @@ "query": "SELECT DISTINCT * FROM tbl1 INNER JOIN tbl2 ON id1 = id2 WHERE 1=1 LEFT OUTER JOIN l3;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SELECT DISTINCT * FROM tbl1 INNER JOIN tbl2 ON id1 = id2 WHERE 1=1 LEFT OUTER JOIN l3;", "len": 86, "last": 86, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 33, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "DISTINCT", "value": "DISTINCT", "keyword": "DISTINCT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -49,7 +65,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 16 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -67,7 +89,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -85,7 +111,11 @@ "token": "tbl1", "value": "tbl1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 23 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -103,7 +135,9 @@ "token": "INNER JOIN", "value": "INNER JOIN", "keyword": "INNER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 28 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -121,7 +157,9 @@ "token": "tbl2", "value": "tbl2", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 39 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -139,7 +179,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -157,7 +201,9 @@ "token": "id1", "value": "id1", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 47 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -175,7 +223,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 51 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -193,7 +245,9 @@ "token": "id2", "value": "id2", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 53 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -211,7 +267,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 57 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -229,7 +289,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 63 }, @@ -238,7 +302,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 64 }, @@ -247,7 +313,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@31" + }, "flags": 0, "position": 65 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -265,7 +335,9 @@ "token": "LEFT OUTER JOIN", "value": "LEFT OUTER JOIN", "keyword": "LEFT OUTER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 67 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -283,7 +357,9 @@ "token": "l3", "value": "l3", "keyword": null, - "type": 0, + "type": { + "@type": "@14" + }, "flags": 0, "position": 83 }, @@ -292,30 +368,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 85 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@39" + }, "flags": 0, "position": null } - ], - "count": 33, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -346,18 +426,21 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1=1" + "expr": "1=1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -378,11 +461,12 @@ "subquery": null }, "on": null, - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -393,9 +477,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -403,7 +485,7 @@ [ "Unexpected ordering of clauses.", { - "@type": "@24" + "@type": "@28" }, 0 ] diff --git a/tests/data/parser/parseSetCharacterSet.out b/tests/data/parser/parseSetCharacterSet.out index 778c864ad..b3f113df3 100644 --- a/tests/data/parser/parseSetCharacterSet.out +++ b/tests/data/parser/parseSetCharacterSet.out @@ -2,18 +2,26 @@ "query": "SET CHARACTER SET 'utf8'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET CHARACTER SET 'utf8'", "len": 24, "last": 24, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -49,30 +65,36 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 18 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -90,15 +112,13 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 0, "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSetCharacterSetError.out b/tests/data/parser/parseSetCharacterSetError.out index 0fa2e0041..61af6f967 100644 --- a/tests/data/parser/parseSetCharacterSetError.out +++ b/tests/data/parser/parseSetCharacterSetError.out @@ -2,18 +2,26 @@ "query": "SET CHARACTER SET ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET CHARACTER SET ", "len": 18, "last": 18, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 4 }, @@ -40,30 +54,34 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -81,15 +99,13 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 0, "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -97,7 +113,7 @@ [ "Value/Expression for the option CHARACTER SET was expected.", { - "@type": "@5" + "@type": "@7" }, 0 ] diff --git a/tests/data/parser/parseSetCharset.out b/tests/data/parser/parseSetCharset.out index afdce028c..9a7974d7b 100644 --- a/tests/data/parser/parseSetCharset.out +++ b/tests/data/parser/parseSetCharset.out @@ -2,18 +2,26 @@ "query": "SET CHARSET 'utf8'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET CHARSET 'utf8'", "len": 18, "last": 18, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "CHARSET", "value": "CHARSET", "keyword": "CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,30 +65,36 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 12 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -90,15 +112,13 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 0, "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSetCharsetError.out b/tests/data/parser/parseSetCharsetError.out index fda64ac60..7748e7836 100644 --- a/tests/data/parser/parseSetCharsetError.out +++ b/tests/data/parser/parseSetCharsetError.out @@ -2,18 +2,26 @@ "query": "SET CHARSET ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET CHARSET ", "len": 12, "last": 12, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,11 @@ "token": "CHARSET", "value": "CHARSET", "keyword": "CHARSET", - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 4 }, @@ -40,30 +56,34 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -81,15 +101,13 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 0, "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -97,7 +115,7 @@ [ "Value/Expression for the option CHARSET was expected.", { - "@type": "@5" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseSetError1.out b/tests/data/parser/parseSetError1.out index 28652929b..d75eed7e1 100644 --- a/tests/data/parser/parseSetError1.out +++ b/tests/data/parser/parseSetError1.out @@ -2,18 +2,26 @@ "query": "SET CHARSET 'utf8' CHARACTER SET 'utf8'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET CHARSET 'utf8' CHARACTER SET 'utf8'", "len": 39, "last": 39, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "CHARSET", "value": "CHARSET", "keyword": "CHARSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -67,7 +89,9 @@ "token": "CHARACTER SET", "value": "CHARACTER SET", "keyword": "CHARACTER SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 19 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -85,30 +111,34 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 33 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -132,15 +162,13 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 0, "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -148,7 +176,7 @@ [ "This option conflicts with \"CHARSET\".", { - "@type": "@8" + "@type": "@11" }, 0 ] diff --git a/tests/data/parser/parseSetGlobalVariable.out b/tests/data/parser/parseSetGlobalVariable.out index 31b2fa100..f3fe3bb33 100644 --- a/tests/data/parser/parseSetGlobalVariable.out +++ b/tests/data/parser/parseSetGlobalVariable.out @@ -2,18 +2,26 @@ "query": "SET GLOBAL max_connections = 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET GLOBAL max_connections = 1", "len": 30, "last": 30, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "GLOBAL", "value": "GLOBAL", "keyword": "GLOBAL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +65,11 @@ "token": "max_connections", "value": "max_connections", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -67,7 +89,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 27 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,30 +113,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 29 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -121,7 +155,7 @@ "3": "GLOBAL" } }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -133,9 +167,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSetNames.out b/tests/data/parser/parseSetNames.out index 3cc7bb906..15414d4b8 100644 --- a/tests/data/parser/parseSetNames.out +++ b/tests/data/parser/parseSetNames.out @@ -2,18 +2,26 @@ "query": "SET NAMES 'utf8'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET NAMES 'utf8'", "len": 16, "last": 16, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 6, + "idx": 6, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "NAMES", "value": "NAMES", "keyword": "NAMES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,30 +65,36 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 10 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 6, - "idx": 6 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -90,15 +112,13 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 0, "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSetNames2.out b/tests/data/parser/parseSetNames2.out index 1b64ed14b..ae3331ad2 100644 --- a/tests/data/parser/parseSetNames2.out +++ b/tests/data/parser/parseSetNames2.out @@ -2,18 +2,26 @@ "query": "SET NAMES 'utf8' COLLATE 'utf8_general_ci'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET NAMES 'utf8' COLLATE 'utf8_general_ci'", "len": 42, "last": 42, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "NAMES", "value": "NAMES", "keyword": "NAMES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +65,11 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 10 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,30 +111,34 @@ "token": "'utf8_general_ci'", "value": "utf8_general_ci", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 25 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -126,7 +156,7 @@ } } }, - "end_options": { + "endOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -142,9 +172,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSetNames3.out b/tests/data/parser/parseSetNames3.out index 6a08984f7..b78b74f13 100644 --- a/tests/data/parser/parseSetNames3.out +++ b/tests/data/parser/parseSetNames3.out @@ -2,18 +2,26 @@ "query": "SET NAMES 'utf8' DEFAULT;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET NAMES 'utf8' DEFAULT;", "len": 25, "last": 25, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "NAMES", "value": "NAMES", "keyword": "NAMES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +65,11 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 10 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 17 }, @@ -76,30 +100,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 24 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@13" + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -117,7 +145,7 @@ } } }, - "end_options": { + "endOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "DEFAULT" @@ -128,9 +156,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSetNamesError.out b/tests/data/parser/parseSetNamesError.out index 647955a99..86374ad57 100644 --- a/tests/data/parser/parseSetNamesError.out +++ b/tests/data/parser/parseSetNamesError.out @@ -2,18 +2,26 @@ "query": "SET NAMES ", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET NAMES ", "len": 10, "last": 10, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "NAMES", "value": "NAMES", "keyword": "NAMES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4 }, @@ -40,30 +54,34 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -81,15 +99,13 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 0, "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -97,7 +113,7 @@ [ "Value/Expression for the option NAMES was expected.", { - "@type": "@5" + "@type": "@7" }, 0 ] diff --git a/tests/data/parser/parseSetNamesError2.out b/tests/data/parser/parseSetNamesError2.out index c26cbc25b..bd379bcd8 100644 --- a/tests/data/parser/parseSetNamesError2.out +++ b/tests/data/parser/parseSetNamesError2.out @@ -2,18 +2,26 @@ "query": "SET NAMES 'utf8' DEFAULT 'utf8_general_ci'", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET NAMES 'utf8' DEFAULT 'utf8_general_ci'", "len": 42, "last": 42, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 10, + "idx": 10, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "NAMES", "value": "NAMES", "keyword": "NAMES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +65,11 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 10 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,7 +89,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 17 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,30 +111,34 @@ "token": "'utf8_general_ci'", "value": "utf8_general_ci", "keyword": null, - "type": 7, + "type": { + "@type": "@9" + }, "flags": 1, "position": 25 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 10, - "idx": 10 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -126,7 +156,7 @@ } } }, - "end_options": { + "endOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": "DEFAULT" @@ -137,9 +167,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -147,7 +175,7 @@ [ "Unexpected token.", { - "@type": "@10" + "@type": "@13" }, 0 ] diff --git a/tests/data/parser/parseSetNamesError3.out b/tests/data/parser/parseSetNamesError3.out index a3e5474ab..e425895c1 100644 --- a/tests/data/parser/parseSetNamesError3.out +++ b/tests/data/parser/parseSetNamesError3.out @@ -2,18 +2,26 @@ "query": "SET NAMES 'utf8' COLLATE", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET NAMES 'utf8' COLLATE", "len": 24, "last": 24, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,9 @@ "token": "NAMES", "value": "NAMES", "keyword": "NAMES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 4 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 9 }, @@ -49,7 +65,11 @@ "token": "'utf8'", "value": "utf8", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 10 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -67,30 +89,34 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 17 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -108,7 +134,7 @@ } } }, - "end_options": { + "endOptions": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { "1": { @@ -124,9 +150,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -134,7 +158,7 @@ [ "Value/Expression for the option COLLATE was expected.", { - "@type": "@8" + "@type": "@11" }, 0 ] diff --git a/tests/data/parser/parseSetVariable.out b/tests/data/parser/parseSetVariable.out index 3406c4f06..0c4521fbf 100644 --- a/tests/data/parser/parseSetVariable.out +++ b/tests/data/parser/parseSetVariable.out @@ -2,18 +2,26 @@ "query": "SET @foo = 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET @foo = 1", "len": 12, "last": 12, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,11 @@ "token": "@foo", "value": "foo", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 4 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 9 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -67,30 +91,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 11 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 8, - "idx": 8 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -101,7 +131,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -113,9 +143,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseSetVariable2.out b/tests/data/parser/parseSetVariable2.out index 73d10f04f..48f8f98e6 100644 --- a/tests/data/parser/parseSetVariable2.out +++ b/tests/data/parser/parseSetVariable2.out @@ -2,18 +2,26 @@ "query": "SET @foo := 1\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "SET @foo := 1\n", "len": 14, "last": 14, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 3 }, @@ -31,7 +43,11 @@ "token": "@foo", "value": "foo", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 4 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": ":=", "value": ":=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 8, "position": 9 }, @@ -58,7 +80,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -67,7 +91,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 12 }, @@ -76,30 +104,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 9, - "idx": 9 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -110,7 +142,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -122,9 +154,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseTable1.out b/tests/data/parser/parseTable1.out index 0a15c5655..57c32e822 100644 --- a/tests/data/parser/parseTable1.out +++ b/tests/data/parser/parseTable1.out @@ -2,18 +2,26 @@ "query": "TABLE `fo` ORDER BY `fo`.`uuid` ASC;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "TABLE `fo` ORDER BY `fo`.`uuid` ASC;", "len": 36, "last": 36, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 13, + "idx": 13, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,11 @@ "token": "`fo`", "value": "fo", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 6 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +67,9 @@ "token": "ORDER BY", "value": "ORDER BY", "keyword": "ORDER BY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -67,7 +89,9 @@ "token": "`fo`", "value": "fo", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 20 }, @@ -76,7 +100,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 24 }, @@ -85,7 +113,9 @@ "token": "`uuid`", "value": "uuid", "keyword": null, - "type": 8, + "type": { + "@type": "@7" + }, "flags": 2, "position": 25 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +135,9 @@ "token": "ASC", "value": "ASC", "keyword": "ASC", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 32 }, @@ -112,37 +146,39 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 35 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@18" + }, "flags": 0, "position": null } - ], - "count": 13, - "idx": 13 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, "statements": [], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseTransaction.out b/tests/data/parser/parseTransaction.out index 52911da7a..4cba5f8fe 100644 --- a/tests/data/parser/parseTransaction.out +++ b/tests/data/parser/parseTransaction.out @@ -2,18 +2,26 @@ "query": "START TRANSACTION;\nSELECT @A:=SUM(salary) FROM table1 WHERE type=1;\nUPDATE table2 SET summary=@A WHERE type=1;\nCOMMIT;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "START TRANSACTION;\nSELECT @A:=SUM(salary) FROM table1 WHERE type=1;\nUPDATE table2 SET summary=@A WHERE type=1;\nCOMMIT;", "len": 118, "last": 118, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 43, + "idx": 43, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "START TRANSACTION", "value": "START TRANSACTION", "keyword": "START TRANSACTION", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 17 }, @@ -31,7 +43,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 18 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -58,7 +78,11 @@ "token": "@A", "value": "A", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 26 }, @@ -67,7 +91,11 @@ "token": ":=", "value": ":=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 8, "position": 28 }, @@ -76,7 +104,9 @@ "token": "SUM", "value": "SUM", "keyword": "SUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 30 }, @@ -85,7 +115,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 33 }, @@ -94,7 +126,11 @@ "token": "salary", "value": "salary", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 34 }, @@ -103,7 +139,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 40 }, @@ -112,7 +150,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 41 }, @@ -121,7 +161,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -130,7 +172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 46 }, @@ -139,7 +183,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 47 }, @@ -148,7 +194,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 53 }, @@ -157,7 +205,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 54 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -175,7 +227,9 @@ "token": "type", "value": "type", "keyword": "TYPE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 60 }, @@ -184,7 +238,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 64 }, @@ -193,7 +249,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 65 }, @@ -202,7 +262,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -211,7 +273,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 67 }, @@ -220,7 +284,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 68 }, @@ -229,7 +295,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 74 }, @@ -238,7 +306,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 75 }, @@ -247,7 +317,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, @@ -256,7 +328,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 82 }, @@ -265,7 +339,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 85 }, @@ -274,7 +350,9 @@ "token": "summary", "value": "summary", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 86 }, @@ -283,7 +361,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 93 }, @@ -292,7 +372,9 @@ "token": "@A", "value": "A", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 1, "position": 94 }, @@ -301,7 +383,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 96 }, @@ -310,7 +394,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 97 }, @@ -319,7 +405,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 102 }, @@ -328,7 +416,9 @@ "token": "type", "value": "type", "keyword": "TYPE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 103 }, @@ -337,7 +427,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 107 }, @@ -346,7 +438,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@29" + }, "flags": 0, "position": 108 }, @@ -355,7 +449,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -364,7 +460,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 110 }, @@ -373,7 +471,9 @@ "token": "COMMIT", "value": "COMMIT", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 111 }, @@ -382,30 +482,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 117 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 43, - "idx": 43 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -440,7 +542,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -449,11 +551,14 @@ "type" ], "isOperator": false, - "expr": "type=1" + "expr": "type=1", + "leftOperand": "type", + "operator": "=", + "rightOperand": "1" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -461,7 +566,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -497,7 +602,10 @@ "type" ], "isOperator": false, - "expr": "type=1" + "expr": "type=1", + "leftOperand": "type", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -535,9 +643,7 @@ "last": 0 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseTransaction2.out b/tests/data/parser/parseTransaction2.out index 0624a8b30..40a56f3ad 100644 --- a/tests/data/parser/parseTransaction2.out +++ b/tests/data/parser/parseTransaction2.out @@ -2,18 +2,26 @@ "query": "START TRANSACTION;\nSELECT @A:=SUM(salary) FROM table1 WHERE type=1;\nUPDATE table2 SET summary=@A WHERE type=1;\nROLLBACK;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "START TRANSACTION;\nSELECT @A:=SUM(salary) FROM table1 WHERE type=1;\nUPDATE table2 SET summary=@A WHERE type=1;\nROLLBACK;", "len": 120, "last": 120, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 43, + "idx": 43, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "START TRANSACTION", "value": "START TRANSACTION", "keyword": "START TRANSACTION", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 0 }, @@ -22,7 +30,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 17 }, @@ -31,7 +43,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 18 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 19 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -58,7 +78,11 @@ "token": "@A", "value": "A", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 26 }, @@ -67,7 +91,11 @@ "token": ":=", "value": ":=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 8, "position": 28 }, @@ -76,7 +104,9 @@ "token": "SUM", "value": "SUM", "keyword": "SUM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 30 }, @@ -85,7 +115,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 33 }, @@ -94,7 +126,11 @@ "token": "salary", "value": "salary", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 34 }, @@ -103,7 +139,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 40 }, @@ -112,7 +150,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 41 }, @@ -121,7 +161,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -130,7 +172,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 46 }, @@ -139,7 +183,9 @@ "token": "table1", "value": "table1", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 47 }, @@ -148,7 +194,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 53 }, @@ -157,7 +205,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 54 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -175,7 +227,9 @@ "token": "type", "value": "type", "keyword": "TYPE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 60 }, @@ -184,7 +238,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 64 }, @@ -193,7 +249,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 65 }, @@ -202,7 +262,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -211,7 +273,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 67 }, @@ -220,7 +284,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 68 }, @@ -229,7 +295,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 74 }, @@ -238,7 +306,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 75 }, @@ -247,7 +317,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, @@ -256,7 +328,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 82 }, @@ -265,7 +339,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 85 }, @@ -274,7 +350,9 @@ "token": "summary", "value": "summary", "keyword": null, - "type": 0, + "type": { + "@type": "@17" + }, "flags": 0, "position": 86 }, @@ -283,7 +361,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 93 }, @@ -292,7 +372,9 @@ "token": "@A", "value": "A", "keyword": null, - "type": 8, + "type": { + "@type": "@11" + }, "flags": 1, "position": 94 }, @@ -301,7 +383,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 96 }, @@ -310,7 +394,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 97 }, @@ -319,7 +405,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 102 }, @@ -328,7 +416,9 @@ "token": "type", "value": "type", "keyword": "TYPE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 103 }, @@ -337,7 +427,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 2, "position": 107 }, @@ -346,7 +438,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@29" + }, "flags": 0, "position": 108 }, @@ -355,7 +449,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 109 }, @@ -364,7 +460,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 110 }, @@ -373,7 +471,9 @@ "token": "ROLLBACK", "value": "ROLLBACK", "keyword": "ROLLBACK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 111 }, @@ -382,30 +482,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 119 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 43, - "idx": 43 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -440,7 +542,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -449,11 +551,14 @@ "type" ], "isOperator": false, - "expr": "type=1" + "expr": "type=1", + "leftOperand": "type", + "operator": "=", + "rightOperand": "1" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -461,7 +566,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -497,7 +602,10 @@ "type" ], "isOperator": false, - "expr": "type=1" + "expr": "type=1", + "leftOperand": "type", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -535,9 +643,7 @@ "last": 0 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseTransaction3.out b/tests/data/parser/parseTransaction3.out index 50f4e5de1..7d8fcaff2 100644 --- a/tests/data/parser/parseTransaction3.out +++ b/tests/data/parser/parseTransaction3.out @@ -2,18 +2,26 @@ "query": "begin;\nSELECT * FROM `tablename`;\ncommit;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "begin;\nSELECT * FROM `tablename`;\ncommit;\n", "len": 42, "last": 42, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 16, + "idx": 16, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "begin", "value": "begin", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 1, "position": 0 }, @@ -22,7 +30,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -40,7 +56,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 13 }, @@ -58,7 +78,11 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 14 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 15 }, @@ -76,7 +102,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 20 }, @@ -94,7 +124,11 @@ "token": "`tablename`", "value": "tablename", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 2, "position": 21 }, @@ -103,7 +137,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -112,7 +148,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 33 }, @@ -121,7 +159,9 @@ "token": "commit", "value": "commit", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 34 }, @@ -130,7 +170,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -139,30 +181,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 41 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 16, - "idx": 16 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -193,11 +237,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -205,7 +249,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -214,9 +258,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseTransaction4.out b/tests/data/parser/parseTransaction4.out index f86308a7b..ed607a241 100644 --- a/tests/data/parser/parseTransaction4.out +++ b/tests/data/parser/parseTransaction4.out @@ -2,18 +2,26 @@ "query": "\nSTART TRANSACTION;\nSET time_zone = \"+00:00\";\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "\nSTART TRANSACTION;\nSET time_zone = \"+00:00\";\n", "len": 46, "last": 46, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 0 }, @@ -22,7 +30,11 @@ "token": "START TRANSACTION", "value": "START TRANSACTION", "keyword": "START TRANSACTION", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 7, "position": 1 }, @@ -31,7 +43,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 18 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@3" + }, "flags": 0, "position": 19 }, @@ -49,7 +67,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@5" + }, "flags": 11, "position": 20 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@3" + }, "flags": 0, "position": 23 }, @@ -67,7 +89,11 @@ "token": "time_zone", "value": "time_zone", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 24 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@3" + }, "flags": 0, "position": 33 }, @@ -85,7 +113,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 34 }, @@ -94,7 +126,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@3" + }, "flags": 0, "position": 35 }, @@ -103,7 +137,11 @@ "token": "\"+00:00\"", "value": "+00:00", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 36 }, @@ -112,7 +150,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": 44 }, @@ -121,30 +161,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@3" + }, "flags": 0, "position": 45 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@7" + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -159,7 +201,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -182,9 +224,7 @@ "last": 1 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseTransaction5.out b/tests/data/parser/parseTransaction5.out index a76e1dc0b..af9d32218 100644 --- a/tests/data/parser/parseTransaction5.out +++ b/tests/data/parser/parseTransaction5.out @@ -2,18 +2,26 @@ "query": "BEGIN;\n INSERT INTO t2 VALUES (3);\n SAVEPOINT my_savepoint;\n INSERT INTO t2 VALUES (4);\n RELEASE SAVEPOINT my_savepoint;\nCOMMIT;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "BEGIN;\n INSERT INTO t2 VALUES (3);\n SAVEPOINT my_savepoint;\n INSERT INTO t2 VALUES (4);\n RELEASE SAVEPOINT my_savepoint;\nCOMMIT;", "len": 140, "last": 140, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 44, + "idx": 44, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 1, "position": 0 }, @@ -22,7 +30,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,11 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -40,7 +56,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 11 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 17 }, @@ -58,7 +78,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -76,7 +100,11 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 23 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 26 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -121,7 +159,11 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 34 }, @@ -130,7 +172,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 35 }, @@ -139,7 +183,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -148,7 +194,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 37 }, @@ -157,7 +205,9 @@ "token": "SAVEPOINT", "value": "SAVEPOINT", "keyword": "SAVEPOINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 42 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 51 }, @@ -175,7 +227,9 @@ "token": "my_savepoint", "value": "my_savepoint", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 52 }, @@ -184,7 +238,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -193,7 +249,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 65 }, @@ -202,7 +260,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 70 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 76 }, @@ -220,7 +282,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -229,7 +293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, @@ -238,7 +304,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 82 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 84 }, @@ -256,7 +326,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 85 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 91 }, @@ -274,7 +348,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 92 }, @@ -283,7 +359,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@20" + }, "flags": 0, "position": 93 }, @@ -292,7 +370,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 94 }, @@ -301,7 +381,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -310,7 +392,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 96 }, @@ -319,7 +403,9 @@ "token": "RELEASE", "value": "RELEASE", "keyword": "RELEASE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 101 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 108 }, @@ -337,7 +425,9 @@ "token": "SAVEPOINT", "value": "SAVEPOINT", "keyword": "SAVEPOINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 109 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 118 }, @@ -355,7 +447,9 @@ "token": "my_savepoint", "value": "my_savepoint", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 119 }, @@ -364,7 +458,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -373,7 +469,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 132 }, @@ -382,7 +480,9 @@ "token": "COMMIT", "value": "COMMIT", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 133 }, @@ -391,30 +491,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 139 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 44, - "idx": 44 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -440,9 +542,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -483,9 +585,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -534,9 +636,7 @@ "last": 0 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -544,14 +644,14 @@ [ "Unrecognized statement type.", { - "@type": "@18" + "@type": "@24" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@36" + "@type": "@42" }, 0 ] diff --git a/tests/data/parser/parseTransaction6.out b/tests/data/parser/parseTransaction6.out index cb569839d..5f4d9f332 100644 --- a/tests/data/parser/parseTransaction6.out +++ b/tests/data/parser/parseTransaction6.out @@ -2,18 +2,26 @@ "query": "BEGIN;\n INSERT INTO t2 VALUES (3);\n SAVEPOINT my_savepoint;\n INSERT INTO t2 VALUES (4);\n ROLLBACK WORK TO SAVEPOINT my_savepoint;\nCOMMIT;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "BEGIN;\n INSERT INTO t2 VALUES (3);\n SAVEPOINT my_savepoint;\n INSERT INTO t2 VALUES (4);\n ROLLBACK WORK TO SAVEPOINT my_savepoint;\nCOMMIT;", "len": 149, "last": 149, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 48, + "idx": 48, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 1, "position": 0 }, @@ -22,7 +30,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,11 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -40,7 +56,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 11 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 17 }, @@ -58,7 +78,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -76,7 +100,11 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 23 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 26 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -121,7 +159,11 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 34 }, @@ -130,7 +172,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 35 }, @@ -139,7 +183,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -148,7 +194,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 37 }, @@ -157,7 +205,9 @@ "token": "SAVEPOINT", "value": "SAVEPOINT", "keyword": "SAVEPOINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 42 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 51 }, @@ -175,7 +227,9 @@ "token": "my_savepoint", "value": "my_savepoint", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 52 }, @@ -184,7 +238,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -193,7 +249,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 65 }, @@ -202,7 +260,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 70 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 76 }, @@ -220,7 +282,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -229,7 +293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, @@ -238,7 +304,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 82 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 84 }, @@ -256,7 +326,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 85 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 91 }, @@ -274,7 +348,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 92 }, @@ -283,7 +359,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@20" + }, "flags": 0, "position": 93 }, @@ -292,7 +370,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 94 }, @@ -301,7 +381,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -310,7 +392,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 96 }, @@ -319,7 +403,9 @@ "token": "ROLLBACK", "value": "ROLLBACK", "keyword": "ROLLBACK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 101 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 109 }, @@ -337,7 +425,9 @@ "token": "WORK", "value": "WORK", "keyword": "WORK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 110 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 114 }, @@ -355,7 +447,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 115 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 117 }, @@ -373,7 +469,9 @@ "token": "SAVEPOINT", "value": "SAVEPOINT", "keyword": "SAVEPOINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 118 }, @@ -382,7 +480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 127 }, @@ -391,7 +491,9 @@ "token": "my_savepoint", "value": "my_savepoint", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 128 }, @@ -400,7 +502,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -409,7 +513,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 141 }, @@ -418,7 +524,9 @@ "token": "COMMIT", "value": "COMMIT", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 142 }, @@ -427,30 +535,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 48, - "idx": 48 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -476,9 +586,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -519,9 +629,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -585,9 +695,7 @@ "last": 45 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -595,35 +703,35 @@ [ "Unrecognized statement type.", { - "@type": "@18" + "@type": "@24" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@40" + "@type": "@46" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@42" + "@type": "@48" }, 0 ], [ "Unexpected token.", { - "@type": "@44" + "@type": "@50" }, 0 ], [ "No transaction was previously started.", { - "@type": "@47" + "@type": "@53" }, 0 ] diff --git a/tests/data/parser/parseTransaction7.out b/tests/data/parser/parseTransaction7.out index 61280fab8..0f9091495 100644 --- a/tests/data/parser/parseTransaction7.out +++ b/tests/data/parser/parseTransaction7.out @@ -2,18 +2,26 @@ "query": "BEGIN;\n INSERT INTO t2 VALUES (3);\n SAVEPOINT my_savepoint;\n INSERT INTO t2 VALUES (4);\n ROLLBACK TO SAVEPOINT my_savepoint;\nCOMMIT;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "BEGIN;\n INSERT INTO t2 VALUES (3);\n SAVEPOINT my_savepoint;\n INSERT INTO t2 VALUES (4);\n ROLLBACK TO SAVEPOINT my_savepoint;\nCOMMIT;", "len": 144, "last": 144, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 46, + "idx": 46, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "BEGIN", "value": "BEGIN", "keyword": "BEGIN", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 1, "position": 0 }, @@ -22,7 +30,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 5 }, @@ -31,7 +43,11 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -40,7 +56,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 11 }, @@ -49,7 +67,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 17 }, @@ -58,7 +78,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 18 }, @@ -67,7 +89,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -76,7 +100,11 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 23 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -94,7 +124,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 26 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 32 }, @@ -112,7 +146,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -121,7 +159,11 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 34 }, @@ -130,7 +172,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 35 }, @@ -139,7 +183,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -148,7 +194,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 37 }, @@ -157,7 +205,9 @@ "token": "SAVEPOINT", "value": "SAVEPOINT", "keyword": "SAVEPOINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 42 }, @@ -166,7 +216,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 51 }, @@ -175,7 +227,9 @@ "token": "my_savepoint", "value": "my_savepoint", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 52 }, @@ -184,7 +238,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -193,7 +249,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 65 }, @@ -202,7 +260,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 70 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 76 }, @@ -220,7 +282,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 77 }, @@ -229,7 +293,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, @@ -238,7 +304,9 @@ "token": "t2", "value": "t2", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 82 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 84 }, @@ -256,7 +326,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 85 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 91 }, @@ -274,7 +348,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 92 }, @@ -283,7 +359,9 @@ "token": "4", "value": 4, "keyword": null, - "type": 6, + "type": { + "@type": "@20" + }, "flags": 0, "position": 93 }, @@ -292,7 +370,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 94 }, @@ -301,7 +381,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -310,7 +392,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 96 }, @@ -319,7 +403,9 @@ "token": "ROLLBACK", "value": "ROLLBACK", "keyword": "ROLLBACK", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 101 }, @@ -328,7 +414,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 109 }, @@ -337,7 +425,9 @@ "token": "TO", "value": "TO", "keyword": "TO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 110 }, @@ -346,7 +436,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 112 }, @@ -355,7 +447,9 @@ "token": "SAVEPOINT", "value": "SAVEPOINT", "keyword": "SAVEPOINT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 113 }, @@ -364,7 +458,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 122 }, @@ -373,7 +469,9 @@ "token": "my_savepoint", "value": "my_savepoint", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 123 }, @@ -382,7 +480,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -391,7 +491,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@7" + }, "flags": 0, "position": 136 }, @@ -400,7 +502,9 @@ "token": "COMMIT", "value": "COMMIT", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 137 }, @@ -409,30 +513,32 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": 143 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 46, - "idx": 46 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -458,9 +564,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -501,9 +607,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -566,9 +672,7 @@ "last": 43 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -576,35 +680,35 @@ [ "Unrecognized statement type.", { - "@type": "@18" + "@type": "@24" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@38" + "@type": "@44" }, 0 ], [ "Unrecognized keyword.", { - "@type": "@40" + "@type": "@46" }, 0 ], [ "Unexpected token.", { - "@type": "@42" + "@type": "@48" }, 0 ], [ "No transaction was previously started.", { - "@type": "@45" + "@type": "@51" }, 0 ] diff --git a/tests/data/parser/parseTransactionErr1.out b/tests/data/parser/parseTransactionErr1.out index 775b77bb7..cc1d550a8 100644 --- a/tests/data/parser/parseTransactionErr1.out +++ b/tests/data/parser/parseTransactionErr1.out @@ -2,18 +2,26 @@ "query": "COMMIT;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "COMMIT;", "len": 7, "last": 7, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 3, + "idx": 3, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "COMMIT", "value": "COMMIT", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 1, "position": 0 }, @@ -22,30 +30,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 6 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@5" + }, "flags": 0, "position": null } - ], - "count": 3, - "idx": 3 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -65,9 +77,7 @@ "last": 0 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUnlock1.out b/tests/data/parser/parseUnlock1.out index dbe98fc81..62b8e5eb6 100644 --- a/tests/data/parser/parseUnlock1.out +++ b/tests/data/parser/parseUnlock1.out @@ -2,18 +2,26 @@ "query": "UNLOCK TABLES;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UNLOCK TABLES;", "len": 14, "last": 14, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UNLOCK", "value": "UNLOCK", "keyword": "UNLOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,30 +54,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 13 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@8" + }, "flags": 0, "position": null } - ], - "count": 5, - "idx": 5 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -77,9 +95,7 @@ "last": 3 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUnlockErr1.out b/tests/data/parser/parseUnlockErr1.out index fbb854716..c549b0e7a 100644 --- a/tests/data/parser/parseUnlockErr1.out +++ b/tests/data/parser/parseUnlockErr1.out @@ -2,18 +2,26 @@ "query": "UNLOCK TABLES abc;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UNLOCK TABLES abc;", "len": 18, "last": 18, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 7, + "idx": 7, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UNLOCK", "value": "UNLOCK", "keyword": "UNLOCK", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "TABLES", "value": "TABLES", "keyword": "TABLES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -49,7 +65,11 @@ "token": "abc", "value": "abc", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 14 }, @@ -58,30 +78,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 17 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@11" + }, "flags": 0, "position": null } - ], - "count": 7, - "idx": 7 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -95,9 +119,7 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -105,7 +127,7 @@ [ "Unexpected token.", { - "@type": "@6" + "@type": "@8" }, 0 ] diff --git a/tests/data/parser/parseUpdate1.out b/tests/data/parser/parseUpdate1.out index f38d0861b..8eafbde91 100644 --- a/tests/data/parser/parseUpdate1.out +++ b/tests/data/parser/parseUpdate1.out @@ -2,18 +2,26 @@ "query": "UPDATE\n users\nSET\n username = \"Dan\",\n id=155;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE\n users\nSET\n username = \"Dan\",\n id=155;", "len": 54, "last": 54, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 18, + "idx": 18, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 11 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +67,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 17 }, @@ -58,7 +78,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +135,11 @@ "token": "\"Dan\"", "value": "Dan", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 36 }, @@ -112,7 +148,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 41 }, @@ -121,7 +159,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -130,7 +170,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 47 }, @@ -139,7 +181,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 49 }, @@ -148,7 +192,11 @@ "token": "155", "value": 155, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 50 }, @@ -157,30 +205,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 53 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@25" + }, "flags": 0, "position": null } - ], - "count": 18, - "idx": 18 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -223,9 +275,7 @@ "last": 15 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUpdate2.out b/tests/data/parser/parseUpdate2.out index 4ae66140d..771bd847f 100644 --- a/tests/data/parser/parseUpdate2.out +++ b/tests/data/parser/parseUpdate2.out @@ -2,18 +2,26 @@ "query": "UPDATE\n users\nSET\n username = \"Dan\",\n id=155\nWHERE\n username = \"Paul\"\nLIMIT 1 OFFSET 2;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE\n users\nSET\n username = \"Dan\",\n id=155\nWHERE\n username = \"Paul\"\nLIMIT 1 OFFSET 2;", "len": 99, "last": 99, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 11 }, @@ -40,7 +56,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 16 }, @@ -49,7 +67,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 17 }, @@ -58,7 +78,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -67,7 +89,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 25 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -85,7 +111,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 34 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +135,11 @@ "token": "\"Dan\"", "value": "Dan", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 36 }, @@ -112,7 +148,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 16, "position": 41 }, @@ -121,7 +159,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -130,7 +170,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 47 }, @@ -139,7 +181,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 49 }, @@ -148,7 +192,11 @@ "token": "155", "value": 155, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 50 }, @@ -157,7 +205,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -166,7 +216,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 54 }, @@ -175,7 +227,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -184,7 +238,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 64 }, @@ -193,7 +249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -202,7 +260,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 73 }, @@ -211,7 +271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -220,7 +282,9 @@ "token": "\"Paul\"", "value": "Paul", "keyword": null, - "type": 7, + "type": { + "@type": "@17" + }, "flags": 2, "position": 75 }, @@ -229,7 +293,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -238,7 +304,9 @@ "token": "LIMIT", "value": "LIMIT", "keyword": "LIMIT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 82 }, @@ -247,7 +315,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 87 }, @@ -256,7 +326,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@23" + }, "flags": 0, "position": 88 }, @@ -265,7 +337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -274,7 +348,9 @@ "token": "OFFSET", "value": "OFFSET", "keyword": "OFFSET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 90 }, @@ -283,7 +359,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 96 }, @@ -292,7 +370,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@23" + }, "flags": 0, "position": 97 }, @@ -301,30 +381,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 98 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@41" + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -363,7 +447,10 @@ "Paul" ], "isOperator": false, - "expr": "username = \"Paul\"" + "expr": "username = \"Paul\"", + "leftOperand": "username", + "operator": "=", + "rightOperand": "\"Paul\"" } ], "order": null, @@ -381,9 +468,7 @@ "last": 31 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUpdate3.out b/tests/data/parser/parseUpdate3.out index 75a41bffd..fcaf7923f 100644 --- a/tests/data/parser/parseUpdate3.out +++ b/tests/data/parser/parseUpdate3.out @@ -2,18 +2,26 @@ "query": "UPDATE foo SET bar = WHERE baz = 0\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE foo SET bar = WHERE baz = 0\n", "len": 36, "last": 36, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 19, + "idx": 19, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 10 }, @@ -49,7 +67,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 11 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -67,7 +89,9 @@ "token": "bar", "value": "bar", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 15 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -85,7 +111,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 19 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -103,7 +135,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -121,7 +157,9 @@ "token": "baz", "value": "baz", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 28 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -139,7 +179,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@14" + }, "flags": 2, "position": 32 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -157,7 +201,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 34 }, @@ -166,30 +214,34 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 19, - "idx": 19 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -216,7 +268,10 @@ "baz" ], "isOperator": false, - "expr": "baz = 0" + "expr": "baz = 0", + "leftOperand": "baz", + "operator": "=", + "rightOperand": "0" } ], "order": null, @@ -230,9 +285,7 @@ "last": 17 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -240,14 +293,14 @@ [ "Missing expression.", { - "@type": "@12" + "@type": "@16" }, 0 ], [ "Missing assignment in SET operation.", { - "@type": "@11" + "@type": "@15" }, 0 ] diff --git a/tests/data/parser/parseUpdate4.out b/tests/data/parser/parseUpdate4.out index 1fb95bce2..5b815c718 100644 --- a/tests/data/parser/parseUpdate4.out +++ b/tests/data/parser/parseUpdate4.out @@ -2,18 +2,26 @@ "query": "UPDATE Country x, City y set x.Name=x.Name where x.Code=y.CountryCode;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE Country x, City y set x.Name=x.Name where x.Code=y.CountryCode;", "len": 70, "last": 70, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 32, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "Country", "value": "Country", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 14 }, @@ -49,7 +67,9 @@ "token": "x", "value": "x", "keyword": "x", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 15 }, @@ -58,7 +78,11 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 16 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 17 }, @@ -76,7 +102,9 @@ "token": "City", "value": "City", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 18 }, @@ -85,7 +113,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -94,7 +124,9 @@ "token": "y", "value": "y", "keyword": "y", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 23 }, @@ -103,7 +135,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -112,7 +146,9 @@ "token": "set", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 25 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -130,7 +168,9 @@ "token": "x", "value": "x", "keyword": "x", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 29 }, @@ -139,7 +179,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 30 }, @@ -148,7 +190,9 @@ "token": "Name", "value": "Name", "keyword": "NAME", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 31 }, @@ -157,7 +201,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 35 }, @@ -166,7 +212,9 @@ "token": "x", "value": "x", "keyword": "x", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 36 }, @@ -175,7 +223,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 37 }, @@ -184,7 +234,9 @@ "token": "Name", "value": "Name", "keyword": "NAME", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 38 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -202,7 +256,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -211,7 +267,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -220,7 +278,9 @@ "token": "x", "value": "x", "keyword": "x", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 49 }, @@ -229,7 +289,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 50 }, @@ -238,7 +300,9 @@ "token": "Code", "value": "Code", "keyword": "CODE", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 51 }, @@ -247,7 +311,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 2, "position": 55 }, @@ -256,7 +322,9 @@ "token": "y", "value": "y", "keyword": "y", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 56 }, @@ -265,7 +333,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@11" + }, "flags": 16, "position": 57 }, @@ -274,7 +344,9 @@ "token": "CountryCode", "value": "CountryCode", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 58 }, @@ -283,30 +355,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 69 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 32 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -352,7 +428,10 @@ "CountryCode" ], "isOperator": false, - "expr": "x.Code=y.CountryCode" + "expr": "x.Code=y.CountryCode", + "leftOperand": "x.Code", + "operator": "=", + "rightOperand": "y.CountryCode" } ], "order": null, @@ -366,9 +445,7 @@ "last": 29 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUpdate5.out b/tests/data/parser/parseUpdate5.out index e88120da3..ca0744e9b 100644 --- a/tests/data/parser/parseUpdate5.out +++ b/tests/data/parser/parseUpdate5.out @@ -2,18 +2,26 @@ "query": "update user u left join user_detail ud on u.id = ud.user_id set ud.ip ='33' where u.id = 1", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "update user u left join user_detail ud on u.id = ud.user_id set ud.ip ='33' where u.id = 1", "len": 90, "last": 90, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 43, + "idx": 43, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "update", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "user", "value": "user", "keyword": "USER", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 33, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "u", "value": "u", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,9 @@ "token": "left join", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 14 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -85,7 +111,9 @@ "token": "user_detail", "value": "user_detail", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 24 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -103,7 +133,9 @@ "token": "ud", "value": "ud", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 36 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -121,7 +155,9 @@ "token": "on", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 39 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -139,7 +177,9 @@ "token": "u", "value": "u", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 42 }, @@ -148,7 +188,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 43 }, @@ -157,7 +201,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 44 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -175,7 +223,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 47 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -193,7 +245,9 @@ "token": "ud", "value": "ud", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 49 }, @@ -202,7 +256,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 51 }, @@ -211,7 +267,9 @@ "token": "user_id", "value": "user_id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 52 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -229,7 +289,9 @@ "token": "set", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 60 }, @@ -238,7 +300,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -247,7 +311,9 @@ "token": "ud", "value": "ud", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 64 }, @@ -256,7 +322,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 66 }, @@ -265,7 +333,9 @@ "token": "ip", "value": "ip", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 67 }, @@ -274,7 +344,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -283,7 +355,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 70 }, @@ -292,7 +366,11 @@ "token": "'33'", "value": "33", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 71 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -310,7 +390,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -328,7 +412,9 @@ "token": "u", "value": "u", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 82 }, @@ -337,7 +423,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 83 }, @@ -346,7 +434,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 84 }, @@ -355,7 +445,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -364,7 +456,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 87 }, @@ -373,7 +467,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -382,30 +478,36 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 89 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 43, - "idx": 43 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -439,7 +541,10 @@ "id" ], "isOperator": false, - "expr": "u.id = 1" + "expr": "u.id = 1", + "leftOperand": "u.id", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -468,10 +573,14 @@ "user_id" ], "isOperator": false, - "expr": "u.id = ud.user_id" + "expr": "u.id = ud.user_id", + "leftOperand": "u.id", + "operator": "=", + "rightOperand": "ud.user_id" } ], - "using": null + "using": null, + "indexHints": [] } ], "options": { @@ -482,9 +591,7 @@ "last": 41 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUpdate6.out b/tests/data/parser/parseUpdate6.out index 0c7df4516..848421297 100644 --- a/tests/data/parser/parseUpdate6.out +++ b/tests/data/parser/parseUpdate6.out @@ -2,18 +2,26 @@ "query": "UPDATE customer_table c\n\n JOIN\n employee_table e\n ON c.city_id = e.city_id\n JOIN\n anyother_table a\n ON a.someID = e.someID\n\nSET c.active = \"Yes\"\nWHERE c.city = \"New york\";", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE customer_table c\n\n JOIN\n employee_table e\n ON c.city_id = e.city_id\n JOIN\n anyother_table a\n ON a.someID = e.someID\n\nSET c.active = \"Yes\"\nWHERE c.city = \"New york\";", "len": 193, "last": 193, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 63, + "idx": 63, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "customer_table", "value": "customer_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -49,7 +67,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -58,7 +78,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +89,9 @@ "token": "JOIN", "value": "JOIN", "keyword": "JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -85,7 +111,9 @@ "token": "employee_table", "value": "employee_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 38 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -103,7 +133,9 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 53 }, @@ -112,7 +144,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -121,7 +155,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -139,7 +177,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 64 }, @@ -148,7 +188,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 65 }, @@ -157,7 +201,9 @@ "token": "city_id", "value": "city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 66 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -175,7 +223,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 74 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -193,7 +245,9 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 76 }, @@ -202,7 +256,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 77 }, @@ -211,7 +267,9 @@ "token": "city_id", "value": "city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 78 }, @@ -220,7 +278,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -229,7 +289,9 @@ "token": "JOIN", "value": "JOIN", "keyword": "JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 88 }, @@ -238,7 +300,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -247,7 +311,9 @@ "token": "anyother_table", "value": "anyother_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 99 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 113 }, @@ -265,7 +333,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 114 }, @@ -274,7 +344,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 115 }, @@ -283,7 +355,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 122 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -301,7 +377,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 125 }, @@ -310,7 +388,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 126 }, @@ -319,7 +399,9 @@ "token": "someID", "value": "someID", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 127 }, @@ -328,7 +410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 133 }, @@ -337,7 +421,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 134 }, @@ -346,7 +432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -355,7 +443,9 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 136 }, @@ -364,7 +454,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 137 }, @@ -373,7 +465,9 @@ "token": "someID", "value": "someID", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 138 }, @@ -382,7 +476,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -391,7 +487,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 146 }, @@ -400,7 +498,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -409,7 +509,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 150 }, @@ -418,7 +520,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 151 }, @@ -427,7 +531,9 @@ "token": "active", "value": "active", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 152 }, @@ -436,7 +542,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 158 }, @@ -445,7 +553,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 159 }, @@ -454,7 +564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -463,7 +575,11 @@ "token": "\"Yes\"", "value": "Yes", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 161 }, @@ -472,7 +588,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 166 }, @@ -481,7 +599,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 167 }, @@ -490,7 +610,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 172 }, @@ -499,7 +621,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 173 }, @@ -508,7 +632,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 174 }, @@ -517,7 +643,9 @@ "token": "city", "value": "city", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 175 }, @@ -526,7 +654,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 179 }, @@ -535,7 +665,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 180 }, @@ -544,7 +676,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 181 }, @@ -553,7 +687,9 @@ "token": "\"New york\"", "value": "New york", "keyword": null, - "type": 7, + "type": { + "@type": "@57" + }, "flags": 2, "position": 182 }, @@ -562,30 +698,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 192 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@69" + }, "flags": 0, "position": null } - ], - "count": 63, - "idx": 63 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -620,7 +760,10 @@ "New york" ], "isOperator": false, - "expr": "c.city = \"New york\"" + "expr": "c.city = \"New york\"", + "leftOperand": "c.city", + "operator": "=", + "rightOperand": "\"New york\"" } ], "order": null, @@ -648,10 +791,14 @@ "e" ], "isOperator": false, - "expr": "c.city_id = e.city_id" + "expr": "c.city_id = e.city_id", + "leftOperand": "c.city_id", + "operator": "=", + "rightOperand": "e.city_id" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -675,10 +822,14 @@ "e" ], "isOperator": false, - "expr": "a.someID = e.someID" + "expr": "a.someID = e.someID", + "leftOperand": "a.someID", + "operator": "=", + "rightOperand": "e.someID" } ], - "using": null + "using": null, + "indexHints": [] } ], "options": { @@ -689,9 +840,7 @@ "last": 60 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUpdate7.out b/tests/data/parser/parseUpdate7.out index 89d55abc2..e2f6df30f 100644 --- a/tests/data/parser/parseUpdate7.out +++ b/tests/data/parser/parseUpdate7.out @@ -2,18 +2,26 @@ "query": "UPDATE customer_table c\n\n INNER JOIN\n employee_table e\n ON c.city_id = e.city_id\n LEFT JOIN\n anyother_table a\n ON a.someID = e.someID\n\nSET c.active = \"Yes\"\nWHERE c.city = \"New york\";", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE customer_table c\n\n INNER JOIN\n employee_table e\n ON c.city_id = e.city_id\n LEFT JOIN\n anyother_table a\n ON a.someID = e.someID\n\nSET c.active = \"Yes\"\nWHERE c.city = \"New york\";", "len": 204, "last": 204, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 63, + "idx": 63, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "customer_table", "value": "customer_table", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -49,7 +67,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 22 }, @@ -58,7 +78,9 @@ "token": "\n\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +89,9 @@ "token": "INNER JOIN", "value": "INNER JOIN", "keyword": "INNER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 27 }, @@ -76,7 +100,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -85,7 +111,9 @@ "token": "employee_table", "value": "employee_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 44 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 58 }, @@ -103,7 +133,9 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -112,7 +144,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -121,7 +155,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -130,7 +166,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -139,7 +177,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 70 }, @@ -148,7 +188,11 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 71 }, @@ -157,7 +201,9 @@ "token": "city_id", "value": "city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 72 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -175,7 +223,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 80 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -193,7 +245,9 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 82 }, @@ -202,7 +256,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 83 }, @@ -211,7 +267,9 @@ "token": "city_id", "value": "city_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 84 }, @@ -220,7 +278,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -229,7 +289,9 @@ "token": "LEFT JOIN", "value": "LEFT JOIN", "keyword": "LEFT JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 94 }, @@ -238,7 +300,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 103 }, @@ -247,7 +311,9 @@ "token": "anyother_table", "value": "anyother_table", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 110 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 124 }, @@ -265,7 +333,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 125 }, @@ -274,7 +344,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -283,7 +355,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 133 }, @@ -292,7 +366,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -301,7 +377,9 @@ "token": "a", "value": "a", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 136 }, @@ -310,7 +388,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 137 }, @@ -319,7 +399,9 @@ "token": "someID", "value": "someID", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 138 }, @@ -328,7 +410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 144 }, @@ -337,7 +421,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 145 }, @@ -346,7 +432,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 146 }, @@ -355,7 +443,9 @@ "token": "e", "value": "e", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 147 }, @@ -364,7 +454,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 148 }, @@ -373,7 +465,9 @@ "token": "someID", "value": "someID", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 149 }, @@ -382,7 +476,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 155 }, @@ -391,7 +487,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 157 }, @@ -400,7 +498,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 160 }, @@ -409,7 +509,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 161 }, @@ -418,7 +520,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 162 }, @@ -427,7 +531,9 @@ "token": "active", "value": "active", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 163 }, @@ -436,7 +542,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 169 }, @@ -445,7 +553,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 170 }, @@ -454,7 +564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 171 }, @@ -463,7 +575,11 @@ "token": "\"Yes\"", "value": "Yes", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 172 }, @@ -472,7 +588,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 177 }, @@ -481,7 +599,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 178 }, @@ -490,7 +610,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 183 }, @@ -499,7 +621,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 184 }, @@ -508,7 +632,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 16, "position": 185 }, @@ -517,7 +643,9 @@ "token": "city", "value": "city", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 186 }, @@ -526,7 +654,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 190 }, @@ -535,7 +665,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@21" + }, "flags": 2, "position": 191 }, @@ -544,7 +676,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 192 }, @@ -553,7 +687,9 @@ "token": "\"New york\"", "value": "New york", "keyword": null, - "type": 7, + "type": { + "@type": "@57" + }, "flags": 2, "position": 193 }, @@ -562,30 +698,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 203 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@69" + }, "flags": 0, "position": null } - ], - "count": 63, - "idx": 63 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -620,7 +760,10 @@ "New york" ], "isOperator": false, - "expr": "c.city = \"New york\"" + "expr": "c.city = \"New york\"", + "leftOperand": "c.city", + "operator": "=", + "rightOperand": "\"New york\"" } ], "order": null, @@ -648,10 +791,14 @@ "e" ], "isOperator": false, - "expr": "c.city_id = e.city_id" + "expr": "c.city_id = e.city_id", + "leftOperand": "c.city_id", + "operator": "=", + "rightOperand": "e.city_id" } ], - "using": null + "using": null, + "indexHints": [] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\JoinKeyword", @@ -675,10 +822,14 @@ "e" ], "isOperator": false, - "expr": "a.someID = e.someID" + "expr": "a.someID = e.someID", + "leftOperand": "a.someID", + "operator": "=", + "rightOperand": "e.someID" } ], - "using": null + "using": null, + "indexHints": [] } ], "options": { @@ -689,9 +840,7 @@ "last": 60 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseUpdateEmptySet.out b/tests/data/parser/parseUpdateEmptySet.out index dbeff527f..5026a1a4b 100644 --- a/tests/data/parser/parseUpdateEmptySet.out +++ b/tests/data/parser/parseUpdateEmptySet.out @@ -2,18 +2,26 @@ "query": "UPDATE test SET WHERE 1;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "UPDATE test SET WHERE 1;\n", "len": 25, "last": 25, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 12, + "idx": 12, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,11 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 7 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +67,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 11, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -67,7 +89,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -85,7 +111,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 22 }, @@ -94,7 +124,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 23 }, @@ -103,30 +137,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@16" + }, "flags": 0, "position": null } - ], - "count": 12, - "idx": 12 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -151,7 +187,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1" + "expr": "1", + "leftOperand": "1", + "operator": "", + "rightOperand": "" } ], "order": null, @@ -165,9 +204,7 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -175,7 +212,7 @@ [ "Missing assignment in SET operation.", { - "@type": "@7" + "@type": "@10" }, 0 ] diff --git a/tests/data/parser/parseUpdateErr.out b/tests/data/parser/parseUpdateErr.out index ad8c5f4cf..d336f95bd 100644 --- a/tests/data/parser/parseUpdateErr.out +++ b/tests/data/parser/parseUpdateErr.out @@ -2,18 +2,26 @@ "query": "-- extraneous comma\nUPDATE\n users\nSET\n username = \"Dan\",\n id=155,\nWHERE 1 = 1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "-- extraneous comma\nUPDATE\n users\nSET\n username = \"Dan\",\n id=155,\nWHERE 1 = 1;", "len": 87, "last": 87, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 29, + "idx": 29, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- extraneous comma", "value": "-- extraneous comma", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -22,7 +30,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 19 }, @@ -31,7 +43,11 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 20 }, @@ -40,7 +56,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -49,7 +67,11 @@ "token": "users", "value": "users", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 31 }, @@ -58,7 +80,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -67,7 +91,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 11, "position": 37 }, @@ -76,7 +102,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -85,7 +113,9 @@ "token": "username", "value": "username", "keyword": null, - "type": 0, + "type": { + "@type": "@10" + }, "flags": 0, "position": 45 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -103,7 +135,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 54 }, @@ -112,7 +148,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -121,7 +159,11 @@ "token": "\"Dan\"", "value": "Dan", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 56 }, @@ -130,7 +172,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 61 }, @@ -139,7 +183,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -148,7 +194,9 @@ "token": "id", "value": "id", "keyword": null, - "type": 0, + "type": { + "@type": "@10" + }, "flags": 0, "position": 67 }, @@ -157,7 +205,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 69 }, @@ -166,7 +216,11 @@ "token": "155", "value": 155, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 70 }, @@ -175,7 +229,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 73 }, @@ -184,7 +240,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -193,7 +251,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@7" + }, "flags": 3, "position": 75 }, @@ -202,7 +262,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -211,7 +273,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 81 }, @@ -220,7 +284,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 82 }, @@ -229,7 +295,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 2, "position": 83 }, @@ -238,7 +306,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -247,7 +317,9 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 85 }, @@ -256,30 +328,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 86 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@37" + }, "flags": 0, "position": null } - ], - "count": 29, - "idx": 29 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -315,7 +391,10 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "1 = 1" + "expr": "1 = 1", + "leftOperand": "1", + "operator": "=", + "rightOperand": "1" } ], "order": null, @@ -329,9 +408,7 @@ "last": 26 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -339,7 +416,7 @@ [ "Unexpected token.", { - "@type": "@20" + "@type": "@27" }, 0 ] diff --git a/tests/data/parser/parseWhere0.out b/tests/data/parser/parseWhere0.out index 0c851a6da..2bdd08862 100644 --- a/tests/data/parser/parseWhere0.out +++ b/tests/data/parser/parseWhere0.out @@ -2,18 +2,26 @@ "query": "DELETE FROM t where 0 AND 0", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "DELETE FROM t where 0 AND 0", "len": 27, "last": 27, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 14, + "idx": 14, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "t", "value": "t", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 13 }, @@ -67,7 +89,9 @@ "token": "where", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 14 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 19 }, @@ -85,7 +111,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 20 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -103,7 +135,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 25 }, @@ -121,30 +157,34 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "@14" + }, "flags": 0, "position": 26 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 14, - "idx": 14 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -172,19 +212,28 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "0" + "expr": "0", + "leftOperand": "0", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": true, - "expr": "AND" + "expr": "AND", + "leftOperand": "", + "operator": "", + "rightOperand": "" }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\Condition", "identifiers": [], "isOperator": false, - "expr": "0" + "expr": "0", + "leftOperand": "0", + "operator": "", + "rightOperand": "" } ], "order": null, @@ -197,9 +246,7 @@ "last": 12 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatement.out b/tests/data/parser/parseWithStatement.out index 0e34d7eb2..e577c672f 100644 --- a/tests/data/parser/parseWithStatement.out +++ b/tests/data/parser/parseWithStatement.out @@ -2,18 +2,26 @@ "query": "INSERT INTO table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "len": 94, "last": 94, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 38, + "idx": 38, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 28 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 37 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -139,7 +179,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 39 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 42 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -175,7 +223,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +245,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 51 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -211,7 +269,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 53 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 63 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -247,7 +313,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@27" + }, "flags": 0, "position": 70 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -265,7 +335,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 72 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -283,7 +357,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 74 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 80 }, @@ -301,7 +379,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 81 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -319,7 +401,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 86 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -337,30 +423,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 91 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 38, - "idx": 38 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -382,9 +472,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -394,7 +484,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -408,45 +497,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@19" + "@type": "@23" }, { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@28" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@32" }, { - "@type": "@28" + "@type": "@33" }, { - "@type": "@29" + "@type": "@34" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -464,11 +555,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -493,11 +584,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -505,7 +596,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -515,7 +606,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -524,44 +615,45 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { - "@type": "@32" + "@type": "@37" }, { - "@type": "@33" + "@type": "@38" }, { - "@type": "@34" + "@type": "@39" }, { - "@type": "@35" + "@type": "@40" }, { - "@type": "@36" + "@type": "@41" }, { - "@type": "@37" + "@type": "@42" }, { - "@type": "@38" + "@type": "@43" }, { - "@type": "@39" + "@type": "@44" } - ], - "count": 8, - "idx": 8 + ] }, "statements": [ { @@ -590,11 +682,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -602,7 +694,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -611,9 +703,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -631,9 +721,7 @@ "last": 36 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatement1.out b/tests/data/parser/parseWithStatement1.out index 7a58340d1..22760aa03 100644 --- a/tests/data/parser/parseWithStatement1.out +++ b/tests/data/parser/parseWithStatement1.out @@ -2,18 +2,26 @@ "query": "CREATE table table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE table table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "len": 95, "last": 95, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 38, + "idx": 38, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "table", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -112,7 +146,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 38 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 43 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -175,7 +223,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -193,7 +245,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 52 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -211,7 +269,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 64 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -247,7 +313,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@27" + }, "flags": 0, "position": 71 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -265,7 +335,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 73 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -283,7 +357,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 75 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -301,7 +379,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 82 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -319,7 +401,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -337,30 +423,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 92 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 38, - "idx": 38 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -384,7 +474,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -398,45 +487,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@19" + "@type": "@23" }, { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@28" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@32" }, { - "@type": "@28" + "@type": "@33" }, { - "@type": "@29" + "@type": "@34" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -454,11 +545,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -483,11 +574,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -495,7 +586,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -505,7 +596,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -514,44 +605,45 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { - "@type": "@32" + "@type": "@37" }, { - "@type": "@33" + "@type": "@38" }, { - "@type": "@34" + "@type": "@39" }, { - "@type": "@35" + "@type": "@40" }, { - "@type": "@36" + "@type": "@41" }, { - "@type": "@37" + "@type": "@42" }, { - "@type": "@38" + "@type": "@43" }, { - "@type": "@39" + "@type": "@44" } - ], - "count": 8, - "idx": 8 + ] }, "statements": [ { @@ -580,11 +672,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -592,7 +684,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -601,9 +693,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -633,9 +723,7 @@ "last": 36 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatement2.out b/tests/data/parser/parseWithStatement2.out index 63953a5c1..9007b0a73 100644 --- a/tests/data/parser/parseWithStatement2.out +++ b/tests/data/parser/parseWithStatement2.out @@ -2,18 +2,26 @@ "query": "INSERT INTO table_name WITH cte (col1) AS ( SELECT 1 ) SELECT col1 FROM cte ON DUPLICATE KEY UPDATE col_name = 3", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO table_name WITH cte (col1) AS ( SELECT 1 ) SELECT col1 FROM cte ON DUPLICATE KEY UPDATE col_name = 3", "len": 112, "last": 112, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 46, + "idx": 46, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 28 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 37 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -139,7 +179,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 39 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 42 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -175,7 +223,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 44 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +245,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 51 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 52 }, @@ -211,7 +269,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 53 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 55 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -247,7 +313,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 62 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -265,7 +335,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -283,7 +357,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 72 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -301,7 +379,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 76 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -319,7 +401,9 @@ "token": "DUPLICATE", "value": "DUPLICATE", "keyword": "DUPLICATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 79 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -337,7 +423,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 89 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 92 }, @@ -355,7 +445,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 93 }, @@ -364,7 +456,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 99 }, @@ -373,7 +467,9 @@ "token": "col_name", "value": "col_name", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 100 }, @@ -382,7 +478,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 108 }, @@ -391,7 +489,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 109 }, @@ -400,7 +500,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -409,30 +511,34 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "@27" + }, "flags": 0, "position": 111 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 46, - "idx": 46 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -454,9 +560,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -466,7 +572,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -480,27 +585,29 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 5, + "idx": 5, "tokens": [ { - "@type": "@19" + "@type": "@23" }, { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@28" } - ], - "count": 5, - "idx": 5 + ] }, "statements": [ { @@ -518,11 +625,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -530,7 +637,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -539,44 +646,45 @@ "last": 4 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@32" }, { - "@type": "@28" + "@type": "@33" }, { - "@type": "@29" + "@type": "@34" }, { - "@type": "@30" + "@type": "@35" }, { - "@type": "@31" + "@type": "@36" }, { - "@type": "@32" + "@type": "@37" }, { - "@type": "@33" + "@type": "@38" } - ], - "count": 8, - "idx": 8 + ] }, "statements": [ { @@ -605,11 +713,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -617,7 +725,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -626,9 +734,7 @@ "last": 7 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -652,9 +758,7 @@ "last": 44 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatement3.out b/tests/data/parser/parseWithStatement3.out index 20a3b8e78..d2bb7c7db 100644 --- a/tests/data/parser/parseWithStatement3.out +++ b/tests/data/parser/parseWithStatement3.out @@ -2,18 +2,26 @@ "query": "WITH categories(identifier, name, parent_id) AS ( SELECT c.identifier, c.name, c.parent_id FROM category c WHERE c.identifier = 'a' UNION ALL SELECT c.identifier, c.name, c.parent_id FROM categories, category c WHERE c.identifier = categories.parent_id ), foo AS ( SELECT * FROM test ) SELECT * FROM categories", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "WITH categories(identifier, name, parent_id) AS ( SELECT c.identifier, c.name, c.parent_id FROM category c WHERE c.identifier = 'a' UNION ALL SELECT c.identifier, c.name, c.parent_id FROM categories, category c WHERE c.identifier = categories.parent_id ), foo AS ( SELECT * FROM test ) SELECT * FROM categories", "len": 310, "last": 310, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 115, + "idx": 115, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "categories", "value": "categories", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 15 }, @@ -49,7 +69,9 @@ "token": "identifier", "value": "identifier", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 16 }, @@ -58,7 +80,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 26 }, @@ -67,7 +91,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -76,7 +102,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 28 }, @@ -85,7 +113,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 32 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -103,7 +135,9 @@ "token": "parent_id", "value": "parent_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 34 }, @@ -112,7 +146,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 43 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -130,7 +168,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -148,7 +190,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 48 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -166,7 +212,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 50 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -184,7 +234,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 57 }, @@ -193,7 +245,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 58 }, @@ -202,7 +256,9 @@ "token": "identifier", "value": "identifier", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 59 }, @@ -211,7 +267,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 69 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -229,7 +289,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 71 }, @@ -238,7 +300,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 72 }, @@ -247,7 +311,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 73 }, @@ -256,7 +322,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 77 }, @@ -265,7 +333,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -274,7 +344,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 79 }, @@ -283,7 +355,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 80 }, @@ -292,7 +366,9 @@ "token": "parent_id", "value": "parent_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 81 }, @@ -301,7 +377,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 90 }, @@ -310,7 +388,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 91 }, @@ -319,7 +399,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 95 }, @@ -328,7 +410,9 @@ "token": "category", "value": "category", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 96 }, @@ -337,7 +421,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 104 }, @@ -346,7 +432,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 105 }, @@ -355,7 +443,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 106 }, @@ -364,7 +454,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 107 }, @@ -373,7 +465,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 112 }, @@ -382,7 +476,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 113 }, @@ -391,7 +487,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 114 }, @@ -400,7 +498,9 @@ "token": "identifier", "value": "identifier", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 115 }, @@ -409,7 +509,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 125 }, @@ -418,7 +520,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 126 }, @@ -427,7 +531,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 127 }, @@ -436,7 +542,11 @@ "token": "'a'", "value": "a", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 1, "position": 128 }, @@ -445,7 +555,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 131 }, @@ -454,7 +566,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 132 }, @@ -463,7 +577,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 141 }, @@ -472,7 +588,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 142 }, @@ -481,7 +599,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 148 }, @@ -490,7 +610,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 149 }, @@ -499,7 +621,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 150 }, @@ -508,7 +632,9 @@ "token": "identifier", "value": "identifier", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 151 }, @@ -517,7 +643,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 161 }, @@ -526,7 +654,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -535,7 +665,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 163 }, @@ -544,7 +676,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 164 }, @@ -553,7 +687,9 @@ "token": "name", "value": "name", "keyword": "NAME", - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 165 }, @@ -562,7 +698,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 169 }, @@ -571,7 +709,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 170 }, @@ -580,7 +720,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 171 }, @@ -589,7 +731,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 172 }, @@ -598,7 +742,9 @@ "token": "parent_id", "value": "parent_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 173 }, @@ -607,7 +753,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -616,7 +764,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 183 }, @@ -625,7 +775,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 187 }, @@ -634,7 +786,9 @@ "token": "categories", "value": "categories", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 188 }, @@ -643,7 +797,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 198 }, @@ -652,7 +808,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 199 }, @@ -661,7 +819,9 @@ "token": "category", "value": "category", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 200 }, @@ -670,7 +830,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 208 }, @@ -679,7 +841,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 209 }, @@ -688,7 +852,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 210 }, @@ -697,7 +863,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 211 }, @@ -706,7 +874,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 216 }, @@ -715,7 +885,9 @@ "token": "c", "value": "c", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 217 }, @@ -724,7 +896,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 218 }, @@ -733,7 +907,9 @@ "token": "identifier", "value": "identifier", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 219 }, @@ -742,7 +918,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 229 }, @@ -751,7 +929,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 2, "position": 230 }, @@ -760,7 +940,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 231 }, @@ -769,7 +951,9 @@ "token": "categories", "value": "categories", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 232 }, @@ -778,7 +962,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 242 }, @@ -787,7 +973,9 @@ "token": "parent_id", "value": "parent_id", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 243 }, @@ -796,7 +984,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 252 }, @@ -805,7 +995,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 253 }, @@ -814,7 +1006,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 254 }, @@ -823,7 +1017,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 255 }, @@ -832,7 +1028,9 @@ "token": "foo", "value": "foo", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 256 }, @@ -841,7 +1039,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 259 }, @@ -850,7 +1050,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 260 }, @@ -859,7 +1061,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 262 }, @@ -868,7 +1072,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 263 }, @@ -877,7 +1083,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 264 }, @@ -886,7 +1094,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 265 }, @@ -895,7 +1105,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 271 }, @@ -904,7 +1116,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 272 }, @@ -913,7 +1127,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 273 }, @@ -922,7 +1138,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 274 }, @@ -931,7 +1149,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 278 }, @@ -940,7 +1160,9 @@ "token": "test", "value": "test", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 279 }, @@ -949,7 +1171,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 283 }, @@ -958,7 +1182,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 284 }, @@ -967,7 +1193,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 285 }, @@ -976,7 +1204,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 286 }, @@ -985,7 +1215,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 292 }, @@ -994,7 +1226,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@9" + }, "flags": 16, "position": 293 }, @@ -1003,7 +1237,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 294 }, @@ -1012,7 +1248,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 295 }, @@ -1021,7 +1259,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 299 }, @@ -1030,30 +1270,34 @@ "token": "categories", "value": "categories", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 300 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 115, - "idx": 115 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -1063,7 +1307,6 @@ "withers": { "categories": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "categories", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -1081,21 +1324,13 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 72, + "idx": 72, "tokens": [ - { - "@type": "@18" - }, - { - "@type": "@19" - }, - { - "@type": "@20" - }, - { - "@type": "@21" - }, { "@type": "@22" }, @@ -1192,9 +1427,6 @@ { "@type": "@53" }, - { - "@type": "@54" - }, { "@type": "@55" }, @@ -1299,10 +1531,23 @@ }, { "@type": "@89" + }, + { + "@type": "@90" + }, + { + "@type": "@91" + }, + { + "@type": "@92" + }, + { + "@type": "@93" + }, + { + "@type": "@94" } - ], - "count": 72, - "idx": 72 + ] }, "statements": [ { @@ -1351,7 +1596,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -1362,11 +1607,14 @@ "a" ], "isOperator": false, - "expr": "c.identifier = 'a'" + "expr": "c.identifier = 'a'", + "leftOperand": "c.identifier", + "operator": "=", + "rightOperand": "'a'" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1432,7 +1680,7 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": [ { @@ -1444,11 +1692,14 @@ "parent_id" ], "isOperator": false, - "expr": "c.identifier = categories.parent_id" + "expr": "c.identifier = categories.parent_id", + "leftOperand": "c.identifier", + "operator": "=", + "rightOperand": "categories.parent_id" } ], "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -1456,7 +1707,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1466,7 +1717,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1475,50 +1726,50 @@ "last": 71 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "categories" }, "foo": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "foo", "columns": [], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 9, + "idx": 9, "tokens": [ { - "@type": "@98" + "@type": "@103" }, { - "@type": "@99" + "@type": "@104" }, { - "@type": "@100" + "@type": "@105" }, { - "@type": "@101" + "@type": "@106" }, { - "@type": "@102" + "@type": "@107" }, { - "@type": "@103" + "@type": "@108" }, { - "@type": "@104" + "@type": "@109" }, { - "@type": "@105" + "@type": "@110" }, { - "@type": "@106" + "@type": "@111" } - ], - "count": 9, - "idx": 9 + ] }, "statements": [ { @@ -1547,11 +1798,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1559,7 +1810,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1568,44 +1819,45 @@ "last": 8 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "foo" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { - "@type": "@109" + "@type": "@114" }, { - "@type": "@110" + "@type": "@115" }, { - "@type": "@111" + "@type": "@116" }, { - "@type": "@112" + "@type": "@117" }, { - "@type": "@113" + "@type": "@118" }, { - "@type": "@114" + "@type": "@119" }, { - "@type": "@115" + "@type": "@120" }, { - "@type": "@116" + "@type": "@121" } - ], - "count": 8, - "idx": 8 + ] }, "statements": [ { @@ -1634,11 +1886,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -1646,7 +1898,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -1655,9 +1907,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -1667,9 +1917,7 @@ "last": 113 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatement4.out b/tests/data/parser/parseWithStatement4.out index b5010f3be..37fb4f5c7 100644 --- a/tests/data/parser/parseWithStatement4.out +++ b/tests/data/parser/parseWithStatement4.out @@ -2,18 +2,26 @@ "query": "CREATE table table_name AS WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) NO", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE table table_name AS WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) NO", "len": 80, "last": 80, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 35, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "table", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +87,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +109,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 27 }, @@ -94,7 +120,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +131,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 32 }, @@ -112,7 +144,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -121,7 +155,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 36 }, @@ -130,7 +168,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@15" + }, "flags": 0, "position": 37 }, @@ -139,7 +179,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 41 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -157,7 +201,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 45 }, @@ -175,7 +223,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 46 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -193,7 +245,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 48 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 54 }, @@ -211,7 +267,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 55 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 56 }, @@ -229,7 +291,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 57 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -247,7 +313,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 67 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 73 }, @@ -265,7 +335,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@29" + }, "flags": 0, "position": 74 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 75 }, @@ -283,7 +357,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@18" + }, "flags": 16, "position": 76 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 77 }, @@ -301,30 +379,34 @@ "token": "NO", "value": "NO", "keyword": "NO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 78 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 35 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -348,7 +430,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -362,45 +443,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@27" }, { - "@type": "@24" + "@type": "@28" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@32" }, { - "@type": "@28" + "@type": "@33" }, { - "@type": "@29" + "@type": "@34" }, { - "@type": "@30" + "@type": "@35" }, { - "@type": "@31" + "@type": "@36" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -418,11 +501,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -447,11 +530,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -459,7 +542,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -469,7 +552,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -478,10 +561,9 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": null, @@ -513,9 +595,7 @@ "last": 31 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -523,21 +603,21 @@ [ "An expression was expected.", { - "@type": "@34" + "@type": "@39" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@34" + "@type": "@39" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@34" + "@type": "@39" }, 0 ] diff --git a/tests/data/parser/parseWithStatement5.out b/tests/data/parser/parseWithStatement5.out index b3ef1144f..f084a4e55 100644 --- a/tests/data/parser/parseWithStatement5.out +++ b/tests/data/parser/parseWithStatement5.out @@ -2,18 +2,26 @@ "query": "CREATE view view_name AS WITH aa(col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE view view_name AS WITH aa(col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "len": 95, "last": 95, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 39, + "idx": 39, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "view", "value": "view", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "view_name", "value": "view_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 24 }, @@ -85,7 +111,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 25 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -103,7 +133,9 @@ "token": "aa", "value": "aa", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 31 }, @@ -112,7 +144,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -121,7 +157,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 34 }, @@ -130,7 +168,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 38 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -148,7 +190,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -166,7 +212,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 43 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -184,7 +234,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -193,7 +245,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -202,7 +256,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 52 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -220,7 +280,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -238,7 +302,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 64 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -256,7 +324,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@28" + }, "flags": 0, "position": 71 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -274,7 +346,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 73 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -292,7 +368,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 75 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 81 }, @@ -310,7 +390,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 82 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -328,7 +412,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -337,7 +423,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 91 }, @@ -346,30 +434,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 92 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 39, - "idx": 39 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -393,7 +485,6 @@ "withers": { "aa": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "aa", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -407,45 +498,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@27" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@32" }, { - "@type": "@28" + "@type": "@33" }, { - "@type": "@29" + "@type": "@34" }, { - "@type": "@30" + "@type": "@35" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -463,11 +556,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -492,11 +585,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -504,7 +597,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -514,7 +607,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -523,44 +616,45 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "aa" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 8, + "idx": 8, "tokens": [ { - "@type": "@33" + "@type": "@38" }, { - "@type": "@34" + "@type": "@39" }, { - "@type": "@35" + "@type": "@40" }, { - "@type": "@36" + "@type": "@41" }, { - "@type": "@37" + "@type": "@42" }, { - "@type": "@38" + "@type": "@43" }, { - "@type": "@39" + "@type": "@44" }, { - "@type": "@40" + "@type": "@45" } - ], - "count": 8, - "idx": 8 + ] }, "statements": [ { @@ -589,11 +683,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -601,7 +695,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -610,9 +704,7 @@ "last": 6 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -633,7 +725,7 @@ "parameters": null, "body": [ { - "@type": "@39" + "@type": "@44" } ], "options": { @@ -646,9 +738,7 @@ "last": 38 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatement6.out b/tests/data/parser/parseWithStatement6.out index 776c14559..533ca306a 100644 --- a/tests/data/parser/parseWithStatement6.out +++ b/tests/data/parser/parseWithStatement6.out @@ -2,18 +2,26 @@ "query": "CREATE view view_name WITH aa(col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE view view_name WITH aa(col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "len": 92, "last": 92, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 37, + "idx": 37, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "view", "value": "view", "keyword": "VIEW", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,11 @@ "token": "view_name", "value": "view_name", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 12 }, @@ -58,7 +78,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 21 }, @@ -67,7 +89,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 22 }, @@ -76,7 +100,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 26 }, @@ -85,7 +111,9 @@ "token": "aa", "value": "aa", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 28 }, @@ -94,7 +122,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 30 }, @@ -103,7 +135,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 31 }, @@ -112,7 +146,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 35 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 36 }, @@ -130,7 +168,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 37 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -148,7 +190,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 40 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -166,7 +212,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 49 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -202,7 +258,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 51 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -220,7 +280,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -238,7 +302,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 68 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -256,7 +324,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@15" + }, "flags": 16, "position": 70 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -274,7 +346,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 72 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -292,7 +368,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 79 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -310,7 +390,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 84 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -328,30 +412,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@9" + }, "flags": 0, "position": 89 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 37, - "idx": 37 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -382,15 +470,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@9" - }, - { - "@type": "@10" - }, - { - "@type": "@11" - }, { "@type": "@12" }, @@ -400,9 +479,6 @@ { "@type": "@14" }, - { - "@type": "@15" - }, { "@type": "@16" }, @@ -433,9 +509,6 @@ { "@type": "@25" }, - { - "@type": "@26" - }, { "@type": "@27" }, @@ -468,6 +541,21 @@ }, { "@type": "@37" + }, + { + "@type": "@38" + }, + { + "@type": "@39" + }, + { + "@type": "@40" + }, + { + "@type": "@41" + }, + { + "@type": "@42" } ], "options": { @@ -480,9 +568,7 @@ "last": 36 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatement7.out b/tests/data/parser/parseWithStatement7.out index b4865b436..82fab5bea 100644 --- a/tests/data/parser/parseWithStatement7.out +++ b/tests/data/parser/parseWithStatement7.out @@ -2,18 +2,26 @@ "query": "WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT * FROM cte INNER JOIN table2 ON table2.col1=cte.col1;", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT * FROM cte INNER JOIN table2 ON table2.col1=cte.col1;", "len": 111, "last": 111, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 47, + "idx": 47, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -58,7 +80,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 10 }, @@ -67,7 +91,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -85,7 +113,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 19 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -121,7 +157,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +179,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -157,7 +203,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 30 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -175,7 +225,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -193,7 +247,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 47 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -211,7 +269,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 49 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 51 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -247,7 +313,9 @@ "token": "*", "value": "*", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 58 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -265,7 +335,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 60 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 64 }, @@ -283,7 +357,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 65 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -301,7 +379,9 @@ "token": "INNER JOIN", "value": "INNER JOIN", "keyword": "INNER JOIN", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 69 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -319,7 +401,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 80 }, @@ -328,7 +412,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 86 }, @@ -337,7 +423,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 87 }, @@ -346,7 +434,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -355,7 +445,9 @@ "token": "table2", "value": "table2", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 90 }, @@ -364,7 +456,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 96 }, @@ -373,7 +467,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 97 }, @@ -382,7 +478,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 2, "position": 101 }, @@ -391,7 +489,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 102 }, @@ -400,7 +500,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 105 }, @@ -409,7 +511,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 106 }, @@ -418,30 +522,34 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 110 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@53" + }, "flags": 0, "position": null } - ], - "count": 47, - "idx": 47 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -451,7 +559,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -465,45 +572,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" }, { - "@type": "@22" + "@type": "@27" }, { - "@type": "@23" + "@type": "@28" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -521,11 +630,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -550,11 +659,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -562,7 +671,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -572,7 +681,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -581,32 +690,20 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 23, + "idx": 23, "tokens": [ - { - "@type": "@26" - }, - { - "@type": "@27" - }, - { - "@type": "@28" - }, - { - "@type": "@29" - }, - { - "@type": "@30" - }, { "@type": "@31" }, @@ -660,10 +757,23 @@ }, { "@type": "@48" + }, + { + "@type": "@49" + }, + { + "@type": "@50" + }, + { + "@type": "@51" + }, + { + "@type": "@52" + }, + { + "@type": "@54" } - ], - "count": 23, - "idx": 23 + ] }, "statements": [ { @@ -692,11 +802,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -725,14 +835,18 @@ "cte" ], "isOperator": false, - "expr": "table2.col1=cte.col1" + "expr": "table2.col1=cte.col1", + "leftOperand": "table2.col1", + "operator": "=", + "rightOperand": "cte.col1" } ], - "using": null + "using": null, + "indexHints": [] } ], "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -741,9 +855,7 @@ "last": 20 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", @@ -753,9 +865,7 @@ "last": 45 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tests/data/parser/parseWithStatementErr.out b/tests/data/parser/parseWithStatementErr.out index 6334a59bc..56a3fa299 100644 --- a/tests/data/parser/parseWithStatementErr.out +++ b/tests/data/parser/parseWithStatementErr.out @@ -2,18 +2,26 @@ "query": "INSERT INTO table_name WITH cte col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO table_name WITH cte col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "len": 93, "last": 93, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 37, + "idx": 38, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 28 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +133,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 32 }, @@ -112,7 +144,11 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 36 }, @@ -121,7 +157,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -130,7 +168,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -139,7 +179,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -148,7 +190,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 41 }, @@ -157,7 +201,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -166,7 +212,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 43 }, @@ -175,7 +223,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -184,7 +234,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 50 }, @@ -193,7 +247,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -202,7 +258,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 52 }, @@ -211,7 +269,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 61 }, @@ -220,7 +280,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 62 }, @@ -229,7 +291,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -238,7 +302,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@26" + }, "flags": 0, "position": 69 }, @@ -247,7 +313,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -256,7 +324,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@17" + }, "flags": 16, "position": 71 }, @@ -265,7 +335,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -274,7 +346,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 73 }, @@ -283,7 +357,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 79 }, @@ -292,7 +368,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 80 }, @@ -301,7 +379,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 84 }, @@ -310,7 +390,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 85 }, @@ -319,7 +401,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 89 }, @@ -328,30 +412,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 90 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 37, - "idx": 38 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -373,9 +461,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -385,9 +473,9 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [], - "statement": null + "statement": null, + "name": "cte" } }, "cteStatementParser": null, @@ -407,9 +495,7 @@ "last": 9 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -417,35 +503,35 @@ [ "Unexpected token.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unexpected token.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@12" + "@type": "@15" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@15" + "@type": "@19" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr1.out b/tests/data/parser/parseWithStatementErr1.out index 958bebaff..bdad09ff8 100644 --- a/tests/data/parser/parseWithStatementErr1.out +++ b/tests/data/parser/parseWithStatementErr1.out @@ -2,18 +2,26 @@ "query": "CREATE table table_name WITH cte (col1) ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE table table_name WITH cte (col1) ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FROM cte", "len": 92, "last": 92, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 36, + "idx": 36, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "table", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -112,7 +146,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 38 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 40 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 42 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -175,7 +223,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 49 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +247,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 51 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -211,7 +269,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 67 }, @@ -229,7 +291,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@25" + }, "flags": 0, "position": 68 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 69 }, @@ -247,7 +313,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 70 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 71 }, @@ -265,7 +335,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 72 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 78 }, @@ -283,7 +357,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 79 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 83 }, @@ -301,7 +379,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 84 }, @@ -310,7 +390,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 88 }, @@ -319,30 +401,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 89 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 36, - "idx": 36 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -366,7 +452,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -378,7 +463,8 @@ ] } ], - "statement": null + "statement": null, + "name": "cte" } }, "cteStatementParser": null, @@ -424,11 +510,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -453,11 +539,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -465,7 +551,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -475,7 +561,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -509,11 +595,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -521,7 +607,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -530,9 +616,7 @@ "last": 34 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -540,21 +624,21 @@ [ "AS keyword was expected.", { - "@type": "@16" + "@type": "@20" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@16" + "@type": "@20" }, 0 ], [ "This type of clause was previously parsed.", { - "@type": "@30" + "@type": "@35" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr2.out b/tests/data/parser/parseWithStatementErr2.out index 905f61502..cb16b2d0d 100644 --- a/tests/data/parser/parseWithStatementErr2.out +++ b/tests/data/parser/parseWithStatementErr2.out @@ -2,18 +2,26 @@ "query": "WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 )", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 )", "len": 50, "last": 50, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 24, + "idx": 24, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -58,7 +80,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 10 }, @@ -67,7 +91,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -85,7 +113,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 19 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -121,7 +157,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +179,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -157,7 +203,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 30 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -175,7 +225,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -193,7 +247,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 47 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -211,30 +269,34 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 49 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 24, - "idx": 24 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -244,7 +306,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -258,45 +319,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" }, { - "@type": "@22" + "@type": "@27" }, { - "@type": "@23" + "@type": "@28" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -314,11 +377,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -343,11 +406,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -355,7 +418,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -365,7 +428,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -374,10 +437,9 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": null, @@ -389,9 +451,7 @@ "last": 22 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -399,14 +459,14 @@ [ "An expression was expected.", { - "@type": "@25" + "@type": "@30" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@25" + "@type": "@30" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr3.out b/tests/data/parser/parseWithStatementErr3.out index c390c13d4..b7437a354 100644 --- a/tests/data/parser/parseWithStatementErr3.out +++ b/tests/data/parser/parseWithStatementErr3.out @@ -2,18 +2,26 @@ "query": "CREATE table table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ),", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE table table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ),", "len": 75, "last": 75, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 31, + "idx": 31, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "table", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -112,7 +146,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 38 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 43 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -175,7 +223,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -193,7 +245,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 52 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -211,7 +269,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 64 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -247,7 +313,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@27" + }, "flags": 0, "position": 71 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -265,7 +335,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 73 }, @@ -274,30 +346,34 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 74 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 31, - "idx": 31 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -321,7 +397,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -335,45 +410,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@19" + "@type": "@23" }, { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@28" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@32" }, { - "@type": "@28" + "@type": "@33" }, { - "@type": "@29" + "@type": "@34" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -391,11 +468,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -420,11 +497,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -432,7 +509,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -442,7 +519,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -451,10 +528,9 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": null, @@ -486,9 +562,7 @@ "last": 29 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -496,14 +570,14 @@ [ "The name of the CTE was expected.", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@32" + "@type": "@37" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr4.out b/tests/data/parser/parseWithStatementErr4.out index 1575e0bb5..8da216c6c 100644 --- a/tests/data/parser/parseWithStatementErr4.out +++ b/tests/data/parser/parseWithStatementErr4.out @@ -2,18 +2,26 @@ "query": "CREATE table table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) NO", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE table table_name WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) NO", "len": 77, "last": 77, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 33, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "table", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 29 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 32 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 33 }, @@ -112,7 +146,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 34 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 38 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -139,7 +179,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 42 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 43 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -175,7 +223,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 45 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 51 }, @@ -193,7 +245,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 52 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 53 }, @@ -211,7 +269,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 54 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 63 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 64 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -247,7 +313,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@27" + }, "flags": 0, "position": 71 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 72 }, @@ -265,7 +335,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 73 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 74 }, @@ -283,30 +357,34 @@ "token": "NO", "value": "NO", "keyword": "NO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 75 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 33 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -330,7 +408,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -344,45 +421,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@19" + "@type": "@23" }, { - "@type": "@20" + "@type": "@24" }, { - "@type": "@21" + "@type": "@25" }, { - "@type": "@22" + "@type": "@26" }, { - "@type": "@23" + "@type": "@28" }, { - "@type": "@24" + "@type": "@29" }, { - "@type": "@25" + "@type": "@30" }, { - "@type": "@26" + "@type": "@31" }, { - "@type": "@27" + "@type": "@32" }, { - "@type": "@28" + "@type": "@33" }, { - "@type": "@29" + "@type": "@34" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -400,11 +479,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -429,11 +508,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -441,7 +520,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -451,7 +530,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -460,10 +539,9 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": null, @@ -495,9 +573,7 @@ "last": 29 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -505,21 +581,21 @@ [ "An expression was expected.", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@32" + "@type": "@37" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr5.out b/tests/data/parser/parseWithStatementErr5.out index f512aba97..7eec23fdb 100644 --- a/tests/data/parser/parseWithStatementErr5.out +++ b/tests/data/parser/parseWithStatementErr5.out @@ -2,18 +2,26 @@ "query": "CREATE table table_name WITH (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) NO", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "CREATE table table_name WITH (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) NO", "len": 73, "last": 73, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 30, + "idx": 31, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "table", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 12 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 13 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 23 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 24 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 28 }, @@ -85,7 +109,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 29 }, @@ -94,7 +122,11 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 30 }, @@ -103,7 +135,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 34 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 35 }, @@ -121,7 +157,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 36 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -139,7 +179,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 39 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 40 }, @@ -157,7 +201,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 41 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 47 }, @@ -175,7 +223,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 48 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 49 }, @@ -193,7 +247,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 50 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 59 }, @@ -211,7 +269,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 60 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -229,7 +291,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@25" + }, "flags": 0, "position": 67 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 68 }, @@ -247,7 +313,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@13" + }, "flags": 16, "position": 69 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 70 }, @@ -265,30 +335,34 @@ "token": "NO", "value": "NO", "keyword": "NO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 71 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 30, - "idx": 31 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -339,9 +413,7 @@ "last": 7 } ], - "brackets": 1, - "strict": false, - "errors": [] + "brackets": 1 }, "errors": { "lexer": [], @@ -349,28 +421,28 @@ [ "The name of the CTE was expected.", { - "@type": "@10" + "@type": "@12" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@10" + "@type": "@12" }, 0 ], [ "Unexpected beginning of statement.", { - "@type": "@11" + "@type": "@14" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@14" + "@type": "@18" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr6.out b/tests/data/parser/parseWithStatementErr6.out index cf6e6cf79..fdcea525e 100644 --- a/tests/data/parser/parseWithStatementErr6.out +++ b/tests/data/parser/parseWithStatementErr6.out @@ -2,18 +2,26 @@ "query": "INSERT INTO table_name WITH cte (col1) AS ( INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3) ) SELECT col1 FROM cte ON DUPLICATE KEY UPDATE col_name = 3", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "INSERT INTO table_name WITH cte (col1) AS ( INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3) ) SELECT col1 FROM cte ON DUPLICATE KEY UPDATE col_name = 3", "len": 186, "last": 186, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 70, + "idx": 71, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 35, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 6 }, @@ -31,7 +43,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 7 }, @@ -40,7 +54,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 11 }, @@ -49,7 +65,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 12 }, @@ -58,7 +76,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 22 }, @@ -67,7 +87,9 @@ "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 23 }, @@ -76,7 +98,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -85,7 +109,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 28 }, @@ -94,7 +122,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 31 }, @@ -103,7 +133,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 32 }, @@ -112,7 +146,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 33 }, @@ -121,7 +157,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 37 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 38 }, @@ -139,7 +179,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 39 }, @@ -148,7 +190,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 41 }, @@ -157,7 +201,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 42 }, @@ -166,7 +212,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 43 }, @@ -175,7 +223,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 44 }, @@ -184,7 +234,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -193,7 +245,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 51 }, @@ -202,7 +256,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -211,7 +267,9 @@ "token": "table_name", "value": "table_name", "keyword": "TABLE_NAME", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 56 }, @@ -220,7 +278,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 66 }, @@ -229,7 +289,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 67 }, @@ -238,7 +300,9 @@ "token": "column1", "value": "column1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 68 }, @@ -247,7 +311,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 75 }, @@ -256,7 +322,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 76 }, @@ -265,7 +333,9 @@ "token": "column2", "value": "column2", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 77 }, @@ -274,7 +344,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 84 }, @@ -283,7 +355,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 85 }, @@ -292,7 +366,9 @@ "token": "column3", "value": "column3", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 86 }, @@ -301,7 +377,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 93 }, @@ -310,7 +388,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 94 }, @@ -319,7 +399,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 35, "position": 95 }, @@ -328,7 +410,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 101 }, @@ -337,7 +421,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 102 }, @@ -346,7 +432,9 @@ "token": "value1", "value": "value1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 103 }, @@ -355,7 +443,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 109 }, @@ -364,7 +454,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 110 }, @@ -373,7 +465,9 @@ "token": "value2", "value": "value2", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 111 }, @@ -382,7 +476,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 117 }, @@ -391,7 +487,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 118 }, @@ -400,7 +498,9 @@ "token": "value3", "value": "value3", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 119 }, @@ -409,7 +509,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 125 }, @@ -418,7 +520,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 126 }, @@ -427,7 +531,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 16, "position": 127 }, @@ -436,7 +542,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 128 }, @@ -445,7 +553,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 129 }, @@ -454,7 +564,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 135 }, @@ -463,7 +575,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 136 }, @@ -472,7 +586,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 140 }, @@ -481,7 +597,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 141 }, @@ -490,7 +608,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 145 }, @@ -499,7 +619,9 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 146 }, @@ -508,7 +630,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 149 }, @@ -517,7 +641,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 150 }, @@ -526,7 +652,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 152 }, @@ -535,7 +663,9 @@ "token": "DUPLICATE", "value": "DUPLICATE", "keyword": "DUPLICATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 1, "position": 153 }, @@ -544,7 +674,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 162 }, @@ -553,7 +685,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 19, "position": 163 }, @@ -562,7 +696,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 166 }, @@ -571,7 +707,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 167 }, @@ -580,7 +718,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 173 }, @@ -589,7 +729,9 @@ "token": "col_name", "value": "col_name", "keyword": null, - "type": 0, + "type": { + "@type": "@13" + }, "flags": 0, "position": 174 }, @@ -598,7 +740,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 182 }, @@ -607,7 +751,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@16" + }, "flags": 2, "position": 183 }, @@ -616,7 +762,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 184 }, @@ -625,30 +773,36 @@ "token": "3", "value": 3, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 185 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 70, - "idx": 71 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -670,9 +824,9 @@ }, "columns": null, "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": null, "set": null, @@ -682,7 +836,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -694,7 +847,8 @@ ] } ], - "statement": null + "statement": null, + "name": "cte" } }, "cteStatementParser": null, @@ -734,9 +888,9 @@ "column3" ], "values": null, - "fields_options": null, - "fields_keyword": null, - "lines_options": null + "fieldsOptions": null, + "fieldsKeyword": null, + "linesOptions": null }, "values": [ { @@ -790,11 +944,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -802,7 +956,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -811,9 +965,7 @@ "last": 55 } ], - "brackets": 1, - "strict": false, - "errors": [] + "brackets": 1 }, "errors": { "lexer": [], @@ -821,35 +973,35 @@ [ "Subquery of the CTE was expected.", { - "@type": "@18" + "@type": "@22" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@18" + "@type": "@22" }, 0 ], [ "Unexpected token.", { - "@type": "@18" + "@type": "@22" }, 0 ], [ "Unexpected token.", { - "@type": "@48" + "@type": "@52" }, 0 ], [ "Unrecognized statement type.", { - "@type": "@58" + "@type": "@62" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr7.out b/tests/data/parser/parseWithStatementErr7.out index dd3b5a118..bb5acb97e 100644 --- a/tests/data/parser/parseWithStatementErr7.out +++ b/tests/data/parser/parseWithStatementErr7.out @@ -2,18 +2,26 @@ "query": "WITH cte (col1) AS ( SELECT 1 UNN ALL SELECT 2 ) SELECT col1 FROM cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "WITH cte (col1) AS ( SELECT 1 UNN ALL SELECT 2 ) SELECT col1 FROM cte", "len": 69, "last": 69, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 34, + "idx": 34, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -58,7 +80,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 10 }, @@ -67,7 +91,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -85,7 +113,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 19 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -121,7 +157,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +179,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -157,7 +203,9 @@ "token": "UNN", "value": "UNN", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 30 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 33 }, @@ -175,7 +225,9 @@ "token": "ALL", "value": "ALL", "keyword": "ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 34 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 37 }, @@ -193,7 +247,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 38 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 44 }, @@ -211,7 +269,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 45 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -229,7 +291,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 47 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -247,7 +313,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 49 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 55 }, @@ -265,7 +335,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 56 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 60 }, @@ -283,7 +357,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 61 }, @@ -292,7 +368,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -301,30 +379,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 66 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 34, - "idx": 34 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -334,7 +416,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -346,7 +427,8 @@ ] } ], - "statement": null + "statement": null, + "name": "cte" } }, "cteStatementParser": null, @@ -383,11 +465,11 @@ "subquery": null } ], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -395,7 +477,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -404,9 +486,7 @@ "last": 32 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -414,21 +494,21 @@ [ "Unrecognized keyword.", { - "@type": "@20" + "@type": "@25" }, 0 ], [ "This type of clause was previously parsed.", { - "@type": "@22" + "@type": "@27" }, 0 ], [ "Unexpected end of the WITH CTE.", { - "@type": "@26" + "@type": "@31" }, 0 ] diff --git a/tests/data/parser/parseWithStatementErr8.out b/tests/data/parser/parseWithStatementErr8.out index 594165b3e..147b07e3a 100644 --- a/tests/data/parser/parseWithStatementErr8.out +++ b/tests/data/parser/parseWithStatementErr8.out @@ -2,18 +2,26 @@ "query": "WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FR cte", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": "WITH cte (col1) AS ( SELECT 1 UNION ALL SELECT 2 ) SELECT col1 FR cte", "len": 69, "last": 69, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 32, + "idx": 32, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "WITH", "value": "WITH", "keyword": "WITH", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 3, "position": 0 }, @@ -22,7 +30,11 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 4 }, @@ -31,7 +43,11 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 5 }, @@ -40,7 +56,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 8 }, @@ -49,7 +67,11 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 16, "position": 9 }, @@ -58,7 +80,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 10 }, @@ -67,7 +91,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 14 }, @@ -76,7 +102,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 15 }, @@ -85,7 +113,9 @@ "token": "AS", "value": "AS", "keyword": "AS", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 16 }, @@ -94,7 +124,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 18 }, @@ -103,7 +135,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 19 }, @@ -112,7 +146,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 20 }, @@ -121,7 +157,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 21 }, @@ -130,7 +168,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 27 }, @@ -139,7 +179,11 @@ "token": "1", "value": 1, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 28 }, @@ -148,7 +192,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 29 }, @@ -157,7 +203,9 @@ "token": "UNION ALL", "value": "UNION ALL", "keyword": "UNION ALL", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 7, "position": 30 }, @@ -166,7 +214,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 39 }, @@ -175,7 +225,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 40 }, @@ -184,7 +236,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 46 }, @@ -193,7 +247,9 @@ "token": "2", "value": 2, "keyword": null, - "type": 6, + "type": { + "@type": "@21" + }, "flags": 0, "position": 47 }, @@ -202,7 +258,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 48 }, @@ -211,7 +269,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@10" + }, "flags": 16, "position": 49 }, @@ -220,7 +280,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 50 }, @@ -229,7 +291,9 @@ "token": "SELECT", "value": "SELECT", "keyword": "SELECT", - "type": 1, + "type": { + "@type": "@3" + }, "flags": 3, "position": 51 }, @@ -238,7 +302,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 57 }, @@ -247,7 +313,9 @@ "token": "col1", "value": "col1", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 58 }, @@ -256,7 +324,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 62 }, @@ -265,7 +335,9 @@ "token": "FR", "value": "FR", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 63 }, @@ -274,7 +346,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@5" + }, "flags": 0, "position": 65 }, @@ -283,30 +357,34 @@ "token": "cte", "value": "cte", "keyword": null, - "type": 0, + "type": { + "@type": "@7" + }, "flags": 0, "position": 66 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": null } - ], - "count": 32, - "idx": 32 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@1" }, @@ -316,7 +394,6 @@ "withers": { "cte": { "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword", - "name": "cte", "columns": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj", @@ -330,45 +407,47 @@ ], "statement": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 11, + "idx": 11, "tokens": [ { - "@type": "@13" + "@type": "@17" }, { - "@type": "@14" + "@type": "@18" }, { - "@type": "@15" + "@type": "@19" }, { - "@type": "@16" + "@type": "@20" }, { - "@type": "@17" + "@type": "@22" }, { - "@type": "@18" + "@type": "@23" }, { - "@type": "@19" + "@type": "@24" }, { - "@type": "@20" + "@type": "@25" }, { - "@type": "@21" + "@type": "@26" }, { - "@type": "@22" + "@type": "@27" }, { - "@type": "@23" + "@type": "@28" } - ], - "count": 11, - "idx": 11 + ] }, "statements": [ { @@ -386,11 +465,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -415,11 +494,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": [], "limit": null, @@ -427,7 +506,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -437,7 +516,7 @@ } ] ], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -446,10 +525,9 @@ "last": 10 } ], - "brackets": 0, - "strict": false, - "errors": [] - } + "brackets": 0 + }, + "name": "cte" } }, "cteStatementParser": null, @@ -475,11 +553,11 @@ } ], "from": [], - "index_hints": null, + "indexHints": null, "partition": null, "where": null, "group": null, - "group_options": null, + "groupOptions": null, "having": null, "order": null, "limit": null, @@ -487,7 +565,7 @@ "into": null, "join": null, "union": [], - "end_options": null, + "endOptions": null, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] @@ -496,9 +574,7 @@ "last": 30 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], @@ -506,28 +582,28 @@ [ "An alias was previously found.", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "Unexpected token.", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "An alias was previously found.", { - "@type": "@32" + "@type": "@37" }, 0 ], [ "Unexpected token.", { - "@type": "@32" + "@type": "@37" }, 0 ] diff --git a/tests/data/parser/parsephpMyAdminExport1.out b/tests/data/parser/parsephpMyAdminExport1.out index b78796fd5..f07048929 100644 --- a/tests/data/parser/parsephpMyAdminExport1.out +++ b/tests/data/parser/parsephpMyAdminExport1.out @@ -2,25 +2,29 @@ "query": "-- phpMyAdmin SQL Dump\n-- version 5.0.0-dev\n-- https://www.phpmyadmin.net/\n--\n-- Hôte : xxxx.xxxxx.eu-west-1.rds.amazonaws.com\n-- Généré le : mer. 05 sep. 2018 à 00:03\n-- Version du serveur : 10.0.24-MariaDB\n-- Version de PHP : 7.2.8-1+ubuntu18.04.1+deb.sury.org+1\n\nSET SQL_MODE = \"NO_AUTO_VALUE_ON_ZERO\";\nSET AUTOCOMMIT = 0;\nSTART TRANSACTION;\nSET time_zone = \"+00:00\";\n\n\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\n/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\n/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n/*!40101 SET NAMES utf8mb4 */;\n\n--\n-- Base de données : `xxxxxdbnamexxxxx`\n--\n\n-- --------------------------------------------------------\n\n--\n-- Structure de la table `monitoring__times`\n--\n\nCREATE TABLE `monitoring__times` (\n `idServer` int(11) UNSIGNED NOT NULL COMMENT 'Id of server',\n `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Time UTC',\n `totalTime` float UNSIGNED NOT NULL COMMENT 'Total time in ms'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n--\n-- Déclencheurs `monitoring__times`\n--\nDELIMITER $$\nCREATE TRIGGER `copyTimes` AFTER INSERT ON `monitoring__times` FOR EACH ROW INSERT INTO monitoring__times_mirror\n(`idServer`, `time`, `totalTime`) VALUES(new.idServer, new.time, new.totalTime)\n$$\nDELIMITER ;\nDELIMITER $$\nCREATE TRIGGER `deleteTimes` AFTER DELETE ON `monitoring__times` FOR EACH ROW DELETE FROM monitoring__times_mirror\nWHERE `idServer`=old.idServer\nAND `time`=old.time\nAND `totalTime`=old.totalTime\n$$\nDELIMITER ;\nDELIMITER $$\nCREATE TRIGGER `updateTimes` AFTER UPDATE ON `monitoring__times` FOR EACH ROW UPDATE monitoring__times_mirror\nSET `idServer`=new.idServer,\n`time`=new.time,\n`totalTime`=new.totalTime\nWHERE `idServer`=old.idServer\nAND `time`=old.time\nAND `totalTime`=old.totalTime\n$$\nDELIMITER ;\n\n--\n-- Index pour les tables déchargées\n--\n\n--\n-- Index pour la table `monitoring__times`\n--\nALTER TABLE `monitoring__times`\n ADD UNIQUE KEY `idServer` (`idServer`,`time`) USING BTREE COMMENT 'Unique idServer/time',\n ADD KEY `INDEX_totalTime` (`totalTime`) USING BTREE COMMENT 'Index for totalTime column';\n\n--\n-- Contraintes pour les tables déchargées\n--\n\n--\n-- Contraintes pour la table `monitoring__times`\n--\nALTER TABLE `monitoring__times`\n ADD CONSTRAINT `monitoring__times__idServer` FOREIGN KEY (`idServer`) REFERENCES `monitoring__servers` (`id`);\nCOMMIT;\n\n/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\n/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n", "lexer": { "@type": "PhpMyAdmin\\SqlParser\\Lexer", + "strict": false, + "errors": [], "str": { "@type": "PhpMyAdmin\\SqlParser\\UtfString", - "str": "-- phpMyAdmin SQL Dump\n-- version 5.0.0-dev\n-- https://www.phpmyadmin.net/\n--\n-- Hôte : xxxx.xxxxx.eu-west-1.rds.amazonaws.com\n-- Généré le : mer. 05 sep. 2018 à 00:03\n-- Version du serveur : 10.0.24-MariaDB\n-- Version de PHP : 7.2.8-1+ubuntu18.04.1+deb.sury.org+1\n\nSET SQL_MODE = \"NO_AUTO_VALUE_ON_ZERO\";\nSET AUTOCOMMIT = 0;\nSTART TRANSACTION;\nSET time_zone = \"+00:00\";\n\n\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\n/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\n/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n/*!40101 SET NAMES utf8mb4 */;\n\n--\n-- Base de données : `xxxxxdbnamexxxxx`\n--\n\n-- --------------------------------------------------------\n\n--\n-- Structure de la table `monitoring__times`\n--\n\nCREATE TABLE `monitoring__times` (\n `idServer` int(11) UNSIGNED NOT NULL COMMENT 'Id of server',\n `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Time UTC',\n `totalTime` float UNSIGNED NOT NULL COMMENT 'Total time in ms'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n--\n-- Déclencheurs `monitoring__times`\n--\nDELIMITER $$\nCREATE TRIGGER `copyTimes` AFTER INSERT ON `monitoring__times` FOR EACH ROW INSERT INTO monitoring__times_mirror\n(`idServer`, `time`, `totalTime`) VALUES(new.idServer, new.time, new.totalTime)\n$$\nDELIMITER ;\nDELIMITER $$\nCREATE TRIGGER `deleteTimes` AFTER DELETE ON `monitoring__times` FOR EACH ROW DELETE FROM monitoring__times_mirror\nWHERE `idServer`=old.idServer\nAND `time`=old.time\nAND `totalTime`=old.totalTime\n$$\nDELIMITER ;\nDELIMITER $$\nCREATE TRIGGER `updateTimes` AFTER UPDATE ON `monitoring__times` FOR EACH ROW UPDATE monitoring__times_mirror\nSET `idServer`=new.idServer,\n`time`=new.time,\n`totalTime`=new.totalTime\nWHERE `idServer`=old.idServer\nAND `time`=old.time\nAND `totalTime`=old.totalTime\n$$\nDELIMITER ;\n\n--\n-- Index pour les tables déchargées\n--\n\n--\n-- Index pour la table `monitoring__times`\n--\nALTER TABLE `monitoring__times`\n ADD UNIQUE KEY `idServer` (`idServer`,`time`) USING BTREE COMMENT 'Unique idServer/time',\n ADD KEY `INDEX_totalTime` (`totalTime`) USING BTREE COMMENT 'Index for totalTime column';\n\n--\n-- Contraintes pour les tables déchargées\n--\n\n--\n-- Contraintes pour la table `monitoring__times`\n--\nALTER TABLE `monitoring__times`\n ADD CONSTRAINT `monitoring__times__idServer` FOREIGN KEY (`idServer`) REFERENCES `monitoring__servers` (`id`);\nCOMMIT;\n\n/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\n/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n", - "byteIdx": 2645, - "charIdx": 2634, - "byteLen": 2646, - "charLen": 2635 + "str": "-- phpMyAdmin SQL Dump\n-- version 5.0.0-dev\n-- https://www.phpmyadmin.net/\n--\n-- Hôte : xxxx.xxxxx.eu-west-1.rds.amazonaws.com\n-- Généré le : mer. 05 sep. 2018 à 00:03\n-- Version du serveur : 10.0.24-MariaDB\n-- Version de PHP : 7.2.8-1+ubuntu18.04.1+deb.sury.org+1\n\nSET SQL_MODE = \"NO_AUTO_VALUE_ON_ZERO\";\nSET AUTOCOMMIT = 0;\nSTART TRANSACTION;\nSET time_zone = \"+00:00\";\n\n\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\n/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\n/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n/*!40101 SET NAMES utf8mb4 */;\n\n--\n-- Base de données : `xxxxxdbnamexxxxx`\n--\n\n-- --------------------------------------------------------\n\n--\n-- Structure de la table `monitoring__times`\n--\n\nCREATE TABLE `monitoring__times` (\n `idServer` int(11) UNSIGNED NOT NULL COMMENT 'Id of server',\n `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Time UTC',\n `totalTime` float UNSIGNED NOT NULL COMMENT 'Total time in ms'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n--\n-- Déclencheurs `monitoring__times`\n--\nDELIMITER $$\nCREATE TRIGGER `copyTimes` AFTER INSERT ON `monitoring__times` FOR EACH ROW INSERT INTO monitoring__times_mirror\n(`idServer`, `time`, `totalTime`) VALUES(new.idServer, new.time, new.totalTime)\n$$\nDELIMITER ;\nDELIMITER $$\nCREATE TRIGGER `deleteTimes` AFTER DELETE ON `monitoring__times` FOR EACH ROW DELETE FROM monitoring__times_mirror\nWHERE `idServer`=old.idServer\nAND `time`=old.time\nAND `totalTime`=old.totalTime\n$$\nDELIMITER ;\nDELIMITER $$\nCREATE TRIGGER `updateTimes` AFTER UPDATE ON `monitoring__times` FOR EACH ROW UPDATE monitoring__times_mirror\nSET `idServer`=new.idServer,\n`time`=new.time,\n`totalTime`=new.totalTime\nWHERE `idServer`=old.idServer\nAND `time`=old.time\nAND `totalTime`=old.totalTime\n$$\nDELIMITER ;\n\n--\n-- Index pour les tables déchargées\n--\n\n--\n-- Index pour la table `monitoring__times`\n--\nALTER TABLE `monitoring__times`\n ADD UNIQUE KEY `idServer` (`idServer`,`time`) USING BTREE COMMENT 'Unique idServer/time',\n ADD KEY `INDEX_totalTime` (`totalTime`) USING BTREE COMMENT 'Index for totalTime column';\n\n--\n-- Contraintes pour les tables déchargées\n--\n\n--\n-- Contraintes pour la table `monitoring__times`\n--\nALTER TABLE `monitoring__times`\n ADD CONSTRAINT `monitoring__times__idServer` FOREIGN KEY (`idServer`) REFERENCES `monitoring__servers` (`id`);\nCOMMIT;\n\n/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\n/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n" }, "len": 2635, "last": 2635, "list": { "@type": "PhpMyAdmin\\SqlParser\\TokensList", + "count": 505, + "idx": 505, "tokens": [ { "@type": "PhpMyAdmin\\SqlParser\\Token", "token": "-- phpMyAdmin SQL Dump", "value": "-- phpMyAdmin SQL Dump", "keyword": null, - "type": 4, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Comment", + "value": 4 + }, "flags": 4, "position": 0 }, @@ -29,7 +33,11 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Whitespace", + "value": 3 + }, "flags": 0, "position": 22 }, @@ -38,7 +46,9 @@ "token": "-- version 5.0.0-dev", "value": "-- version 5.0.0-dev", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 23 }, @@ -47,7 +57,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 43 }, @@ -56,7 +68,9 @@ "token": "-- https://www.phpmyadmin.net/", "value": "-- https://www.phpmyadmin.net/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 44 }, @@ -65,7 +79,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 74 }, @@ -74,7 +90,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 75 }, @@ -83,7 +101,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 77 }, @@ -92,7 +112,9 @@ "token": "-- Hôte : xxxx.xxxxx.eu-west-1.rds.amazonaws.com", "value": "-- Hôte : xxxx.xxxxx.eu-west-1.rds.amazonaws.com", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 78 }, @@ -101,7 +123,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 126 }, @@ -110,7 +134,9 @@ "token": "-- Généré le : mer. 05 sep. 2018 à 00:03", "value": "-- Généré le : mer. 05 sep. 2018 à 00:03", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 127 }, @@ -119,7 +145,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 168 }, @@ -128,7 +156,9 @@ "token": "-- Version du serveur : 10.0.24-MariaDB", "value": "-- Version du serveur : 10.0.24-MariaDB", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 169 }, @@ -137,7 +167,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 209 }, @@ -146,7 +178,9 @@ "token": "-- Version de PHP : 7.2.8-1+ubuntu18.04.1+deb.sury.org+1", "value": "-- Version de PHP : 7.2.8-1+ubuntu18.04.1+deb.sury.org+1", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 210 }, @@ -155,7 +189,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 267 }, @@ -164,7 +200,11 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Keyword", + "value": 1 + }, "flags": 11, "position": 269 }, @@ -173,7 +213,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 272 }, @@ -182,7 +224,11 @@ "token": "SQL_MODE", "value": "SQL_MODE", "keyword": null, - "type": 0, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "None", + "value": 0 + }, "flags": 0, "position": 273 }, @@ -191,7 +237,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 281 }, @@ -200,7 +248,11 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Operator", + "value": 2 + }, "flags": 2, "position": 282 }, @@ -209,7 +261,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 283 }, @@ -218,7 +272,11 @@ "token": "\"NO_AUTO_VALUE_ON_ZERO\"", "value": "NO_AUTO_VALUE_ON_ZERO", "keyword": null, - "type": 7, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "String", + "value": 7 + }, "flags": 2, "position": 284 }, @@ -227,7 +285,11 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Delimiter", + "value": 9 + }, "flags": 0, "position": 307 }, @@ -236,7 +298,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 308 }, @@ -245,7 +309,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 309 }, @@ -254,7 +320,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 312 }, @@ -263,7 +331,9 @@ "token": "AUTOCOMMIT", "value": "AUTOCOMMIT", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 313 }, @@ -272,7 +342,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 323 }, @@ -281,7 +353,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 324 }, @@ -290,7 +364,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 325 }, @@ -299,7 +375,11 @@ "token": "0", "value": 0, "keyword": null, - "type": 6, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Number", + "value": 6 + }, "flags": 0, "position": 326 }, @@ -308,7 +388,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 327 }, @@ -317,7 +399,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 328 }, @@ -326,7 +410,9 @@ "token": "START TRANSACTION", "value": "START TRANSACTION", "keyword": "START TRANSACTION", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 329 }, @@ -335,7 +421,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 346 }, @@ -344,7 +432,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 347 }, @@ -353,7 +443,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 348 }, @@ -362,7 +454,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 351 }, @@ -371,7 +465,9 @@ "token": "time_zone", "value": "time_zone", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 352 }, @@ -380,7 +476,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 361 }, @@ -389,7 +487,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 362 }, @@ -398,7 +498,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 363 }, @@ -407,7 +509,9 @@ "token": "\"+00:00\"", "value": "+00:00", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 2, "position": 364 }, @@ -416,7 +520,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 372 }, @@ -425,7 +531,9 @@ "token": "\n\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 373 }, @@ -434,7 +542,9 @@ "token": "/*!40101", "value": "/*!40101", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 10, "position": 376 }, @@ -443,7 +553,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 384 }, @@ -452,7 +564,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 385 }, @@ -461,7 +575,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 388 }, @@ -470,7 +586,11 @@ "token": "@OLD_CHARACTER_SET_CLIENT", "value": "OLD_CHARACTER_SET_CLIENT", "keyword": null, - "type": 8, + "type": { + "@type": "PhpMyAdmin\\SqlParser\\TokenType", + "name": "Symbol", + "value": 8 + }, "flags": 1, "position": 389 }, @@ -479,7 +599,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 414 }, @@ -488,7 +610,9 @@ "token": "@@CHARACTER_SET_CLIENT", "value": "CHARACTER_SET_CLIENT", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 9, "position": 415 }, @@ -497,7 +621,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 437 }, @@ -506,7 +632,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 2, "position": 438 }, @@ -515,7 +643,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 440 }, @@ -524,7 +654,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 441 }, @@ -533,7 +665,9 @@ "token": "/*!40101", "value": "/*!40101", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 10, "position": 442 }, @@ -542,7 +676,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 450 }, @@ -551,7 +687,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 451 }, @@ -560,7 +698,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 454 }, @@ -569,7 +709,9 @@ "token": "@OLD_CHARACTER_SET_RESULTS", "value": "OLD_CHARACTER_SET_RESULTS", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 1, "position": 455 }, @@ -578,7 +720,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 481 }, @@ -587,7 +731,9 @@ "token": "@@CHARACTER_SET_RESULTS", "value": "CHARACTER_SET_RESULTS", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 9, "position": 482 }, @@ -596,7 +742,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 505 }, @@ -605,7 +753,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 2, "position": 506 }, @@ -614,7 +764,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 508 }, @@ -623,7 +775,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 509 }, @@ -632,7 +786,9 @@ "token": "/*!40101", "value": "/*!40101", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 10, "position": 510 }, @@ -641,7 +797,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 518 }, @@ -650,7 +808,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 519 }, @@ -659,7 +819,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 522 }, @@ -668,7 +830,9 @@ "token": "@OLD_COLLATION_CONNECTION", "value": "OLD_COLLATION_CONNECTION", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 1, "position": 523 }, @@ -677,7 +841,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 548 }, @@ -686,7 +852,9 @@ "token": "@@COLLATION_CONNECTION", "value": "COLLATION_CONNECTION", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 9, "position": 549 }, @@ -695,7 +863,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 571 }, @@ -704,7 +874,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 2, "position": 572 }, @@ -713,7 +885,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 574 }, @@ -722,7 +896,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 575 }, @@ -731,7 +907,9 @@ "token": "/*!40101", "value": "/*!40101", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 10, "position": 576 }, @@ -740,7 +918,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 584 }, @@ -749,7 +929,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 585 }, @@ -758,7 +940,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 588 }, @@ -767,7 +951,9 @@ "token": "NAMES", "value": "NAMES", "keyword": "NAMES", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 589 }, @@ -776,7 +962,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 594 }, @@ -785,7 +973,9 @@ "token": "utf8mb4", "value": "utf8mb4", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 595 }, @@ -794,7 +984,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 602 }, @@ -803,7 +995,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 2, "position": 603 }, @@ -812,7 +1006,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 605 }, @@ -821,7 +1017,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 606 }, @@ -830,7 +1028,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 608 }, @@ -839,7 +1039,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 610 }, @@ -848,7 +1050,9 @@ "token": "-- Base de données : `xxxxxdbnamexxxxx`", "value": "-- Base de données : `xxxxxdbnamexxxxx`", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 611 }, @@ -857,7 +1061,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 651 }, @@ -866,7 +1072,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 652 }, @@ -875,7 +1083,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 654 }, @@ -884,7 +1094,9 @@ "token": "-- --------------------------------------------------------", "value": "-- --------------------------------------------------------", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 656 }, @@ -893,7 +1105,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 715 }, @@ -902,7 +1116,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 717 }, @@ -911,7 +1127,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 719 }, @@ -920,7 +1138,9 @@ "token": "-- Structure de la table `monitoring__times`", "value": "-- Structure de la table `monitoring__times`", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 720 }, @@ -929,7 +1149,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 764 }, @@ -938,7 +1160,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 765 }, @@ -947,7 +1171,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 767 }, @@ -956,7 +1182,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 769 }, @@ -965,7 +1193,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 775 }, @@ -974,7 +1204,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 776 }, @@ -983,7 +1215,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 781 }, @@ -992,7 +1226,9 @@ "token": "`monitoring__times`", "value": "monitoring__times", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 782 }, @@ -1001,7 +1237,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 801 }, @@ -1010,7 +1248,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 802 }, @@ -1019,7 +1259,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 803 }, @@ -1028,7 +1270,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 806 }, @@ -1037,7 +1281,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 816 }, @@ -1046,7 +1292,9 @@ "token": "int", "value": "INT", "keyword": "INT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 817 }, @@ -1055,7 +1303,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 820 }, @@ -1064,7 +1314,9 @@ "token": "11", "value": 11, "keyword": null, - "type": 6, + "type": { + "@type": "@42" + }, "flags": 0, "position": 821 }, @@ -1073,7 +1325,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 823 }, @@ -1082,7 +1336,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 824 }, @@ -1091,7 +1347,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 825 }, @@ -1100,7 +1358,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 833 }, @@ -1109,7 +1369,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 834 }, @@ -1118,7 +1380,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 842 }, @@ -1127,7 +1391,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 843 }, @@ -1136,7 +1402,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 850 }, @@ -1145,7 +1413,9 @@ "token": "'Id of server'", "value": "Id of server", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 851 }, @@ -1154,7 +1424,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 865 }, @@ -1163,7 +1435,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 866 }, @@ -1172,7 +1446,9 @@ "token": "`time`", "value": "time", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 869 }, @@ -1181,7 +1457,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 875 }, @@ -1190,7 +1468,9 @@ "token": "timestamp", "value": "timestamp", "keyword": "TIMESTAMP", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 41, "position": 876 }, @@ -1199,7 +1479,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 885 }, @@ -1208,7 +1490,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 886 }, @@ -1217,7 +1501,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 894 }, @@ -1226,7 +1512,9 @@ "token": "DEFAULT", "value": "DEFAULT", "keyword": "DEFAULT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 35, "position": 895 }, @@ -1235,7 +1523,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 902 }, @@ -1244,7 +1534,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 35, "position": 903 }, @@ -1253,7 +1545,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 920 }, @@ -1262,7 +1556,9 @@ "token": "ON UPDATE", "value": "ON UPDATE", "keyword": "ON UPDATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 921 }, @@ -1271,7 +1567,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 930 }, @@ -1280,7 +1578,9 @@ "token": "CURRENT_TIMESTAMP", "value": "CURRENT_TIMESTAMP", "keyword": "CURRENT_TIMESTAMP", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 35, "position": 931 }, @@ -1289,7 +1589,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 948 }, @@ -1298,7 +1600,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 949 }, @@ -1307,7 +1611,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 956 }, @@ -1316,7 +1622,9 @@ "token": "'Time UTC'", "value": "Time UTC", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 957 }, @@ -1325,7 +1633,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 967 }, @@ -1334,7 +1644,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 968 }, @@ -1343,7 +1655,9 @@ "token": "`totalTime`", "value": "totalTime", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 971 }, @@ -1352,7 +1666,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 982 }, @@ -1361,7 +1677,9 @@ "token": "float", "value": "FLOAT", "keyword": "FLOAT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 983 }, @@ -1370,7 +1688,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 988 }, @@ -1379,7 +1699,9 @@ "token": "UNSIGNED", "value": "UNSIGNED", "keyword": "UNSIGNED", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 989 }, @@ -1388,7 +1710,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 997 }, @@ -1397,7 +1721,9 @@ "token": "NOT NULL", "value": "NOT NULL", "keyword": "NOT NULL", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 998 }, @@ -1406,7 +1732,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1006 }, @@ -1415,7 +1743,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1007 }, @@ -1424,7 +1754,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1014 }, @@ -1433,7 +1765,9 @@ "token": "'Total time in ms'", "value": "Total time in ms", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 1015 }, @@ -1442,7 +1776,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1033 }, @@ -1451,7 +1787,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1034 }, @@ -1460,7 +1798,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1035 }, @@ -1469,7 +1809,9 @@ "token": "ENGINE", "value": "ENGINE", "keyword": "ENGINE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1036 }, @@ -1478,7 +1820,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1042 }, @@ -1487,7 +1831,9 @@ "token": "InnoDB", "value": "InnoDB", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1043 }, @@ -1496,7 +1842,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1049 }, @@ -1505,7 +1853,9 @@ "token": "DEFAULT CHARSET", "value": "DEFAULT CHARSET", "keyword": "DEFAULT CHARSET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 1050 }, @@ -1514,7 +1864,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1065 }, @@ -1523,7 +1875,9 @@ "token": "utf8", "value": "utf8", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1066 }, @@ -1532,7 +1886,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1070 }, @@ -1541,7 +1897,9 @@ "token": "COLLATE", "value": "COLLATE", "keyword": "COLLATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1071 }, @@ -1550,7 +1908,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1078 }, @@ -1559,7 +1919,9 @@ "token": "utf8_unicode_ci", "value": "utf8_unicode_ci", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1079 }, @@ -1568,7 +1930,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1094 }, @@ -1577,7 +1941,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1095 }, @@ -1586,7 +1952,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1097 }, @@ -1595,7 +1963,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1099 }, @@ -1604,7 +1974,9 @@ "token": "-- Déclencheurs `monitoring__times`", "value": "-- Déclencheurs `monitoring__times`", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1100 }, @@ -1613,7 +1985,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1135 }, @@ -1622,7 +1996,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1136 }, @@ -1631,7 +2007,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1138 }, @@ -1640,7 +2018,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1139 }, @@ -1649,7 +2029,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1148 }, @@ -1658,7 +2040,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1149 }, @@ -1667,7 +2051,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1151 }, @@ -1676,7 +2062,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1152 }, @@ -1685,7 +2073,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1158 }, @@ -1694,7 +2084,9 @@ "token": "TRIGGER", "value": "TRIGGER", "keyword": "TRIGGER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1159 }, @@ -1703,7 +2095,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1166 }, @@ -1712,7 +2106,9 @@ "token": "`copyTimes`", "value": "copyTimes", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1167 }, @@ -1721,7 +2117,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1178 }, @@ -1730,7 +2128,9 @@ "token": "AFTER", "value": "AFTER", "keyword": "AFTER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1179 }, @@ -1739,7 +2139,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1184 }, @@ -1748,7 +2150,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 35, "position": 1185 }, @@ -1757,7 +2161,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1191 }, @@ -1766,7 +2172,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1192 }, @@ -1775,7 +2183,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1194 }, @@ -1784,7 +2194,9 @@ "token": "`monitoring__times`", "value": "monitoring__times", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1195 }, @@ -1793,7 +2205,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1214 }, @@ -1802,7 +2216,9 @@ "token": "FOR EACH ROW", "value": "FOR EACH ROW", "keyword": "FOR EACH ROW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 1215 }, @@ -1811,7 +2227,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1227 }, @@ -1820,7 +2238,9 @@ "token": "INSERT", "value": "INSERT", "keyword": "INSERT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 35, "position": 1228 }, @@ -1829,7 +2249,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1234 }, @@ -1838,7 +2260,9 @@ "token": "INTO", "value": "INTO", "keyword": "INTO", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1235 }, @@ -1847,7 +2271,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1239 }, @@ -1856,7 +2282,9 @@ "token": "monitoring__times_mirror", "value": "monitoring__times_mirror", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1240 }, @@ -1865,7 +2293,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1264 }, @@ -1874,7 +2304,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1265 }, @@ -1883,7 +2315,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1266 }, @@ -1892,7 +2326,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1276 }, @@ -1901,7 +2337,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1277 }, @@ -1910,7 +2348,9 @@ "token": "`time`", "value": "time", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1278 }, @@ -1919,7 +2359,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1284 }, @@ -1928,7 +2370,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1285 }, @@ -1937,7 +2381,9 @@ "token": "`totalTime`", "value": "totalTime", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1286 }, @@ -1946,7 +2392,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1297 }, @@ -1955,7 +2403,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1298 }, @@ -1964,7 +2414,9 @@ "token": "VALUES", "value": "VALUES", "keyword": "VALUES", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 35, "position": 1299 }, @@ -1973,7 +2425,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1305 }, @@ -1982,7 +2436,9 @@ "token": "new", "value": "new", "keyword": "NEW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1306 }, @@ -1991,7 +2447,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1309 }, @@ -2000,7 +2458,9 @@ "token": "idServer", "value": "idServer", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1310 }, @@ -2009,7 +2469,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1318 }, @@ -2018,7 +2480,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1319 }, @@ -2027,7 +2491,9 @@ "token": "new", "value": "new", "keyword": "NEW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1320 }, @@ -2036,7 +2502,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1323 }, @@ -2045,7 +2513,9 @@ "token": "time", "value": "time", "keyword": "TIME", - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1324 }, @@ -2054,7 +2524,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1328 }, @@ -2063,7 +2535,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1329 }, @@ -2072,7 +2546,9 @@ "token": "new", "value": "new", "keyword": "NEW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1330 }, @@ -2081,7 +2557,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1333 }, @@ -2090,7 +2568,9 @@ "token": "totalTime", "value": "totalTime", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1334 }, @@ -2099,7 +2579,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1343 }, @@ -2108,7 +2590,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1344 }, @@ -2117,7 +2601,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1345 }, @@ -2126,7 +2612,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1347 }, @@ -2135,7 +2623,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1348 }, @@ -2144,7 +2634,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1357 }, @@ -2153,7 +2645,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1358 }, @@ -2162,7 +2656,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1359 }, @@ -2171,7 +2667,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1360 }, @@ -2180,7 +2678,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1369 }, @@ -2189,7 +2689,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1370 }, @@ -2198,7 +2700,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1372 }, @@ -2207,7 +2711,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1373 }, @@ -2216,7 +2722,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1379 }, @@ -2225,7 +2733,9 @@ "token": "TRIGGER", "value": "TRIGGER", "keyword": "TRIGGER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1380 }, @@ -2234,7 +2744,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1387 }, @@ -2243,7 +2755,9 @@ "token": "`deleteTimes`", "value": "deleteTimes", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1388 }, @@ -2252,7 +2766,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1401 }, @@ -2261,7 +2777,9 @@ "token": "AFTER", "value": "AFTER", "keyword": "AFTER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1402 }, @@ -2270,7 +2788,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1407 }, @@ -2279,7 +2799,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1408 }, @@ -2288,7 +2810,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1414 }, @@ -2297,7 +2821,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1415 }, @@ -2306,7 +2832,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1417 }, @@ -2315,7 +2843,9 @@ "token": "`monitoring__times`", "value": "monitoring__times", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1418 }, @@ -2324,7 +2854,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1437 }, @@ -2333,7 +2865,9 @@ "token": "FOR EACH ROW", "value": "FOR EACH ROW", "keyword": "FOR EACH ROW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 1438 }, @@ -2342,7 +2876,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1450 }, @@ -2351,7 +2887,9 @@ "token": "DELETE", "value": "DELETE", "keyword": "DELETE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1451 }, @@ -2360,7 +2898,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1457 }, @@ -2369,7 +2909,9 @@ "token": "FROM", "value": "FROM", "keyword": "FROM", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1458 }, @@ -2378,7 +2920,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1462 }, @@ -2387,7 +2931,9 @@ "token": "monitoring__times_mirror", "value": "monitoring__times_mirror", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1463 }, @@ -2396,7 +2942,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1487 }, @@ -2405,7 +2953,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1488 }, @@ -2414,7 +2964,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1493 }, @@ -2423,7 +2975,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1494 }, @@ -2432,7 +2986,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1504 }, @@ -2441,7 +2997,9 @@ "token": "old", "value": "old", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1505 }, @@ -2450,7 +3008,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1508 }, @@ -2459,7 +3019,9 @@ "token": "idServer", "value": "idServer", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1509 }, @@ -2468,7 +3030,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1517 }, @@ -2477,7 +3041,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1518 }, @@ -2486,7 +3052,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1521 }, @@ -2495,7 +3063,9 @@ "token": "`time`", "value": "time", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1522 }, @@ -2504,7 +3074,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1528 }, @@ -2513,7 +3085,9 @@ "token": "old", "value": "old", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1529 }, @@ -2522,7 +3096,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1532 }, @@ -2531,7 +3107,9 @@ "token": "time", "value": "time", "keyword": "TIME", - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1533 }, @@ -2540,7 +3118,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1537 }, @@ -2549,7 +3129,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1538 }, @@ -2558,7 +3140,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1541 }, @@ -2567,7 +3151,9 @@ "token": "`totalTime`", "value": "totalTime", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1542 }, @@ -2576,7 +3162,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1553 }, @@ -2585,7 +3173,9 @@ "token": "old", "value": "old", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1554 }, @@ -2594,7 +3184,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1557 }, @@ -2603,7 +3195,9 @@ "token": "totalTime", "value": "totalTime", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1558 }, @@ -2612,7 +3206,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1567 }, @@ -2621,7 +3217,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1568 }, @@ -2630,7 +3228,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1570 }, @@ -2639,7 +3239,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1571 }, @@ -2648,7 +3250,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1580 }, @@ -2657,7 +3261,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1581 }, @@ -2666,7 +3272,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1582 }, @@ -2675,7 +3283,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1583 }, @@ -2684,7 +3294,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1592 }, @@ -2693,7 +3305,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1593 }, @@ -2702,7 +3316,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1595 }, @@ -2711,7 +3327,9 @@ "token": "CREATE", "value": "CREATE", "keyword": "CREATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1596 }, @@ -2720,7 +3338,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1602 }, @@ -2729,7 +3349,9 @@ "token": "TRIGGER", "value": "TRIGGER", "keyword": "TRIGGER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1603 }, @@ -2738,7 +3360,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1610 }, @@ -2747,7 +3371,9 @@ "token": "`updateTimes`", "value": "updateTimes", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1611 }, @@ -2756,7 +3382,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1624 }, @@ -2765,7 +3393,9 @@ "token": "AFTER", "value": "AFTER", "keyword": "AFTER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1625 }, @@ -2774,7 +3404,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1630 }, @@ -2783,7 +3415,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1631 }, @@ -2792,7 +3426,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1637 }, @@ -2801,7 +3437,9 @@ "token": "ON", "value": "ON", "keyword": "ON", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1638 }, @@ -2810,7 +3448,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1640 }, @@ -2819,7 +3459,9 @@ "token": "`monitoring__times`", "value": "monitoring__times", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1641 }, @@ -2828,7 +3470,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1660 }, @@ -2837,7 +3481,9 @@ "token": "FOR EACH ROW", "value": "FOR EACH ROW", "keyword": "FOR EACH ROW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 7, "position": 1661 }, @@ -2846,7 +3492,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1673 }, @@ -2855,7 +3503,9 @@ "token": "UPDATE", "value": "UPDATE", "keyword": "UPDATE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1674 }, @@ -2864,7 +3514,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1680 }, @@ -2873,7 +3525,9 @@ "token": "monitoring__times_mirror", "value": "monitoring__times_mirror", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1681 }, @@ -2882,7 +3536,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1705 }, @@ -2891,7 +3547,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 1706 }, @@ -2900,7 +3558,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1709 }, @@ -2909,7 +3569,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1710 }, @@ -2918,7 +3580,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1720 }, @@ -2927,7 +3591,9 @@ "token": "new", "value": "new", "keyword": "NEW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1721 }, @@ -2936,7 +3602,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1724 }, @@ -2945,7 +3613,9 @@ "token": "idServer", "value": "idServer", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1725 }, @@ -2954,7 +3624,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1733 }, @@ -2963,7 +3635,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1734 }, @@ -2972,7 +3646,9 @@ "token": "`time`", "value": "time", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1735 }, @@ -2981,7 +3657,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1741 }, @@ -2990,7 +3668,9 @@ "token": "new", "value": "new", "keyword": "NEW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1742 }, @@ -2999,7 +3679,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1745 }, @@ -3008,7 +3690,9 @@ "token": "time", "value": "time", "keyword": "TIME", - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1746 }, @@ -3017,7 +3701,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1750 }, @@ -3026,7 +3712,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1751 }, @@ -3035,7 +3723,9 @@ "token": "`totalTime`", "value": "totalTime", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1752 }, @@ -3044,7 +3734,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1763 }, @@ -3053,7 +3745,9 @@ "token": "new", "value": "new", "keyword": "NEW", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 1764 }, @@ -3062,7 +3756,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1767 }, @@ -3071,7 +3767,9 @@ "token": "totalTime", "value": "totalTime", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1768 }, @@ -3080,7 +3778,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1777 }, @@ -3089,7 +3789,9 @@ "token": "WHERE", "value": "WHERE", "keyword": "WHERE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1778 }, @@ -3098,7 +3800,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1783 }, @@ -3107,7 +3811,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1784 }, @@ -3116,7 +3822,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1794 }, @@ -3125,7 +3833,9 @@ "token": "old", "value": "old", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1795 }, @@ -3134,7 +3844,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1798 }, @@ -3143,7 +3855,9 @@ "token": "idServer", "value": "idServer", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1799 }, @@ -3152,7 +3866,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1807 }, @@ -3161,7 +3877,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1808 }, @@ -3170,7 +3888,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1811 }, @@ -3179,7 +3899,9 @@ "token": "`time`", "value": "time", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1812 }, @@ -3188,7 +3910,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1818 }, @@ -3197,7 +3921,9 @@ "token": "old", "value": "old", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1819 }, @@ -3206,7 +3932,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1822 }, @@ -3215,7 +3943,9 @@ "token": "time", "value": "time", "keyword": "TIME", - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1823 }, @@ -3224,7 +3954,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1827 }, @@ -3233,7 +3965,9 @@ "token": "AND", "value": "AND", "keyword": "AND", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1828 }, @@ -3242,7 +3976,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1831 }, @@ -3251,7 +3987,9 @@ "token": "`totalTime`", "value": "totalTime", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1832 }, @@ -3260,7 +3998,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 1843 }, @@ -3269,7 +4009,9 @@ "token": "old", "value": "old", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1844 }, @@ -3278,7 +4020,9 @@ "token": ".", "value": ".", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 1847 }, @@ -3287,7 +4031,9 @@ "token": "totalTime", "value": "totalTime", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1848 }, @@ -3296,7 +4042,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1857 }, @@ -3305,7 +4053,9 @@ "token": "$$", "value": "$$", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1858 }, @@ -3314,7 +4064,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1860 }, @@ -3323,7 +4075,9 @@ "token": "DELIMITER", "value": "DELIMITER", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 1861 }, @@ -3332,7 +4086,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1870 }, @@ -3341,7 +4097,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 1871 }, @@ -3350,7 +4108,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1872 }, @@ -3359,7 +4119,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1874 }, @@ -3368,7 +4130,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1876 }, @@ -3377,7 +4141,9 @@ "token": "-- Index pour les tables déchargées", "value": "-- Index pour les tables déchargées", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1877 }, @@ -3386,7 +4152,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1912 }, @@ -3395,7 +4163,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1913 }, @@ -3404,7 +4174,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1915 }, @@ -3413,7 +4185,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1917 }, @@ -3422,7 +4196,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1919 }, @@ -3431,7 +4207,9 @@ "token": "-- Index pour la table `monitoring__times`", "value": "-- Index pour la table `monitoring__times`", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1920 }, @@ -3440,7 +4218,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1962 }, @@ -3449,7 +4229,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 1963 }, @@ -3458,7 +4240,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1965 }, @@ -3467,7 +4251,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1966 }, @@ -3476,7 +4262,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1971 }, @@ -3485,7 +4273,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 1972 }, @@ -3494,7 +4284,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1977 }, @@ -3503,7 +4295,9 @@ "token": "`monitoring__times`", "value": "monitoring__times", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 1978 }, @@ -3512,7 +4306,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 1997 }, @@ -3521,7 +4317,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2000 }, @@ -3530,7 +4328,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2003 }, @@ -3539,7 +4339,9 @@ "token": "UNIQUE KEY", "value": "UNIQUE KEY", "keyword": "UNIQUE KEY", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 23, "position": 2004 }, @@ -3548,7 +4350,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2014 }, @@ -3557,7 +4361,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2015 }, @@ -3566,7 +4372,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2025 }, @@ -3575,7 +4383,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2026 }, @@ -3584,7 +4394,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2027 }, @@ -3593,7 +4405,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2037 }, @@ -3602,7 +4416,9 @@ "token": "`time`", "value": "time", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2038 }, @@ -3611,7 +4427,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2044 }, @@ -3620,7 +4438,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2045 }, @@ -3629,7 +4449,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2046 }, @@ -3638,7 +4460,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2051 }, @@ -3647,7 +4471,9 @@ "token": "BTREE", "value": "BTREE", "keyword": "BTREE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 2052 }, @@ -3656,7 +4482,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2057 }, @@ -3665,7 +4493,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 2058 }, @@ -3674,7 +4504,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2065 }, @@ -3683,7 +4515,9 @@ "token": "'Unique idServer/time'", "value": "Unique idServer/time", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 2066 }, @@ -3692,7 +4526,9 @@ "token": ",", "value": ",", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2088 }, @@ -3701,7 +4537,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2089 }, @@ -3710,7 +4548,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2092 }, @@ -3719,7 +4559,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2095 }, @@ -3728,7 +4570,9 @@ "token": "KEY", "value": "KEY", "keyword": "KEY", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 19, "position": 2096 }, @@ -3737,7 +4581,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2099 }, @@ -3746,7 +4592,9 @@ "token": "`INDEX_totalTime`", "value": "INDEX_totalTime", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2100 }, @@ -3755,7 +4603,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2117 }, @@ -3764,7 +4614,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2118 }, @@ -3773,7 +4625,9 @@ "token": "`totalTime`", "value": "totalTime", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2119 }, @@ -3782,7 +4636,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2130 }, @@ -3791,7 +4647,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2131 }, @@ -3800,7 +4658,9 @@ "token": "USING", "value": "USING", "keyword": "USING", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2132 }, @@ -3809,7 +4669,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2137 }, @@ -3818,7 +4680,9 @@ "token": "BTREE", "value": "BTREE", "keyword": "BTREE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 2138 }, @@ -3827,7 +4691,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2143 }, @@ -3836,7 +4702,9 @@ "token": "COMMENT", "value": "COMMENT", "keyword": "COMMENT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 2144 }, @@ -3845,7 +4713,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2151 }, @@ -3854,7 +4724,9 @@ "token": "'Index for totalTime column'", "value": "Index for totalTime column", "keyword": null, - "type": 7, + "type": { + "@type": "@31" + }, "flags": 1, "position": 2152 }, @@ -3863,7 +4735,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 2180 }, @@ -3872,7 +4746,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2181 }, @@ -3881,7 +4757,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 2183 }, @@ -3890,7 +4768,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2185 }, @@ -3899,7 +4779,9 @@ "token": "-- Contraintes pour les tables déchargées", "value": "-- Contraintes pour les tables déchargées", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 2186 }, @@ -3908,7 +4790,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2227 }, @@ -3917,7 +4801,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 2228 }, @@ -3926,7 +4812,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2230 }, @@ -3935,7 +4823,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 2232 }, @@ -3944,7 +4834,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2234 }, @@ -3953,7 +4845,9 @@ "token": "-- Contraintes pour la table `monitoring__times`", "value": "-- Contraintes pour la table `monitoring__times`", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 2235 }, @@ -3962,7 +4856,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2283 }, @@ -3971,7 +4867,9 @@ "token": "--\n", "value": "--\n", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 4, "position": 2284 }, @@ -3980,7 +4878,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2286 }, @@ -3989,7 +4889,9 @@ "token": "ALTER", "value": "ALTER", "keyword": "ALTER", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2287 }, @@ -3998,7 +4900,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2292 }, @@ -4007,7 +4911,9 @@ "token": "TABLE", "value": "TABLE", "keyword": "TABLE", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2293 }, @@ -4016,7 +4922,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2298 }, @@ -4025,7 +4933,9 @@ "token": "`monitoring__times`", "value": "monitoring__times", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2299 }, @@ -4034,7 +4944,9 @@ "token": "\n ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2318 }, @@ -4043,7 +4955,9 @@ "token": "ADD", "value": "ADD", "keyword": "ADD", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2321 }, @@ -4052,7 +4966,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2324 }, @@ -4061,7 +4977,9 @@ "token": "CONSTRAINT", "value": "CONSTRAINT", "keyword": "CONSTRAINT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2325 }, @@ -4070,7 +4988,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2335 }, @@ -4079,7 +4999,9 @@ "token": "`monitoring__times__idServer`", "value": "monitoring__times__idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2336 }, @@ -4088,7 +5010,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2365 }, @@ -4097,7 +5021,9 @@ "token": "FOREIGN KEY", "value": "FOREIGN KEY", "keyword": "FOREIGN KEY", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 23, "position": 2366 }, @@ -4106,7 +5032,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2377 }, @@ -4115,7 +5043,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2378 }, @@ -4124,7 +5054,9 @@ "token": "`idServer`", "value": "idServer", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2379 }, @@ -4133,7 +5065,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2389 }, @@ -4142,7 +5076,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2390 }, @@ -4151,7 +5087,9 @@ "token": "REFERENCES", "value": "REFERENCES", "keyword": "REFERENCES", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 3, "position": 2391 }, @@ -4160,7 +5098,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2401 }, @@ -4169,7 +5109,9 @@ "token": "`monitoring__servers`", "value": "monitoring__servers", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2402 }, @@ -4178,7 +5120,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2423 }, @@ -4187,7 +5131,9 @@ "token": "(", "value": "(", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2424 }, @@ -4196,7 +5142,9 @@ "token": "`id`", "value": "id", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 2, "position": 2425 }, @@ -4205,7 +5153,9 @@ "token": ")", "value": ")", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 16, "position": 2429 }, @@ -4214,7 +5164,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 2430 }, @@ -4223,7 +5175,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2431 }, @@ -4232,7 +5186,9 @@ "token": "COMMIT", "value": "COMMIT", "keyword": "COMMIT", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 1, "position": 2432 }, @@ -4241,7 +5197,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 2438 }, @@ -4250,7 +5208,9 @@ "token": "\n\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2439 }, @@ -4259,7 +5219,9 @@ "token": "/*!40101", "value": "/*!40101", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 10, "position": 2441 }, @@ -4268,7 +5230,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2449 }, @@ -4277,7 +5241,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 2450 }, @@ -4286,7 +5252,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2453 }, @@ -4295,7 +5263,9 @@ "token": "CHARACTER_SET_CLIENT", "value": "CHARACTER_SET_CLIENT", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 2454 }, @@ -4304,7 +5274,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 2474 }, @@ -4313,7 +5285,9 @@ "token": "@OLD_CHARACTER_SET_CLIENT", "value": "OLD_CHARACTER_SET_CLIENT", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 1, "position": 2475 }, @@ -4322,7 +5296,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2500 }, @@ -4331,7 +5307,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 2, "position": 2501 }, @@ -4340,7 +5318,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 2503 }, @@ -4349,7 +5329,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2504 }, @@ -4358,7 +5340,9 @@ "token": "/*!40101", "value": "/*!40101", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 10, "position": 2505 }, @@ -4367,7 +5351,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2513 }, @@ -4376,7 +5362,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 2514 }, @@ -4385,7 +5373,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2517 }, @@ -4394,7 +5384,9 @@ "token": "CHARACTER_SET_RESULTS", "value": "CHARACTER_SET_RESULTS", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 2518 }, @@ -4403,7 +5395,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 2539 }, @@ -4412,7 +5406,9 @@ "token": "@OLD_CHARACTER_SET_RESULTS", "value": "OLD_CHARACTER_SET_RESULTS", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 1, "position": 2540 }, @@ -4421,7 +5417,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2566 }, @@ -4430,7 +5428,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 2, "position": 2567 }, @@ -4439,7 +5439,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 2569 }, @@ -4448,7 +5450,9 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2570 }, @@ -4457,7 +5461,9 @@ "token": "/*!40101", "value": "/*!40101", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 10, "position": 2571 }, @@ -4466,7 +5472,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2579 }, @@ -4475,7 +5483,9 @@ "token": "SET", "value": "SET", "keyword": "SET", - "type": 1, + "type": { + "@type": "@22" + }, "flags": 11, "position": 2580 }, @@ -4484,7 +5494,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2583 }, @@ -4493,7 +5505,9 @@ "token": "COLLATION_CONNECTION", "value": "COLLATION_CONNECTION", "keyword": null, - "type": 0, + "type": { + "@type": "@25" + }, "flags": 0, "position": 2584 }, @@ -4502,7 +5516,9 @@ "token": "=", "value": "=", "keyword": null, - "type": 2, + "type": { + "@type": "@28" + }, "flags": 2, "position": 2604 }, @@ -4511,7 +5527,9 @@ "token": "@OLD_COLLATION_CONNECTION", "value": "OLD_COLLATION_CONNECTION", "keyword": null, - "type": 8, + "type": { + "@type": "@62" + }, "flags": 1, "position": 2605 }, @@ -4520,7 +5538,9 @@ "token": " ", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2630 }, @@ -4529,7 +5549,9 @@ "token": "*/", "value": "*/", "keyword": null, - "type": 4, + "type": { + "@type": "@4" + }, "flags": 2, "position": 2631 }, @@ -4538,7 +5560,9 @@ "token": ";", "value": ";", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": 2633 }, @@ -4547,30 +5571,32 @@ "token": "\n", "value": " ", "keyword": null, - "type": 3, + "type": { + "@type": "@6" + }, "flags": 0, "position": 2634 }, { "@type": "PhpMyAdmin\\SqlParser\\Token", - "token": null, - "value": null, + "token": "", + "value": "", "keyword": null, - "type": 9, + "type": { + "@type": "@33" + }, "flags": 0, "position": null } - ], - "count": 505, - "idx": 505 + ] }, "delimiter": ";", - "delimiterLen": 1, - "strict": false, - "errors": [] + "delimiterLen": 1 }, "parser": { "@type": "PhpMyAdmin\\SqlParser\\Parser", + "strict": false, + "errors": [], "list": { "@type": "@2" }, @@ -4581,7 +5607,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -4598,7 +5624,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -4619,7 +5645,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -4636,7 +5662,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -4653,7 +5679,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -4670,7 +5696,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -4694,7 +5720,7 @@ } } }, - "end_options": null, + "endOptions": null, "set": [], "first": 77, "last": 87 @@ -4750,7 +5776,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -4778,7 +5805,8 @@ "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] - } + }, + "lowercase": false }, "key": null, "references": null, @@ -4838,7 +5866,8 @@ "options": { "4": "UNSIGNED" } - } + }, + "lowercase": false }, "key": null, "references": null, @@ -4918,33 +5947,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@203" - }, - { - "@type": "@204" - }, - { - "@type": "@205" - }, - { - "@type": "@206" - }, - { - "@type": "@207" - }, - { - "@type": "@208" - }, - { - "@type": "@209" - }, - { - "@type": "@210" - }, - { - "@type": "@211" - }, { "@type": "@212" }, @@ -5016,6 +6018,33 @@ }, { "@type": "@235" + }, + { + "@type": "@236" + }, + { + "@type": "@237" + }, + { + "@type": "@238" + }, + { + "@type": "@239" + }, + { + "@type": "@240" + }, + { + "@type": "@241" + }, + { + "@type": "@242" + }, + { + "@type": "@243" + }, + { + "@type": "@244" } ], "options": { @@ -5068,33 +6097,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@262" - }, - { - "@type": "@263" - }, - { - "@type": "@264" - }, - { - "@type": "@265" - }, - { - "@type": "@266" - }, - { - "@type": "@267" - }, - { - "@type": "@268" - }, - { - "@type": "@269" - }, - { - "@type": "@270" - }, { "@type": "@271" }, @@ -5157,6 +6159,33 @@ }, { "@type": "@291" + }, + { + "@type": "@292" + }, + { + "@type": "@293" + }, + { + "@type": "@294" + }, + { + "@type": "@295" + }, + { + "@type": "@296" + }, + { + "@type": "@297" + }, + { + "@type": "@298" + }, + { + "@type": "@299" + }, + { + "@type": "@300" } ], "options": { @@ -5209,33 +6238,6 @@ "return": null, "parameters": null, "body": [ - { - "@type": "@318" - }, - { - "@type": "@319" - }, - { - "@type": "@320" - }, - { - "@type": "@321" - }, - { - "@type": "@322" - }, - { - "@type": "@323" - }, - { - "@type": "@324" - }, - { - "@type": "@325" - }, - { - "@type": "@326" - }, { "@type": "@327" }, @@ -5358,6 +6360,33 @@ }, { "@type": "@367" + }, + { + "@type": "@368" + }, + { + "@type": "@369" + }, + { + "@type": "@370" + }, + { + "@type": "@371" + }, + { + "@type": "@372" + }, + { + "@type": "@373" + }, + { + "@type": "@374" + }, + { + "@type": "@375" + }, + { + "@type": "@376" } ], "options": { @@ -5384,98 +6413,68 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { - "1": "ADD" + "1": "ADD", + "2": "UNIQUE KEY" } }, - "field": null, + "field": { + "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression", + "database": null, + "table": null, + "column": "idServer", + "expr": "`idServer`", + "alias": null, + "function": null, + "subquery": null + }, "partitions": null, "unknown": [ { - "@type": "@394" - }, - { - "@type": "@395" - }, - { - "@type": "@396" - }, - { - "@type": "@397" + "@type": "@407" }, { - "@type": "@398" + "@type": "@408" }, { - "@type": "@399" + "@type": "@409" }, { - "@type": "@400" + "@type": "@410" }, { - "@type": "@401" + "@type": "@411" }, { - "@type": "@402" + "@type": "@412" }, { - "@type": "@403" + "@type": "@413" }, { - "@type": "@404" + "@type": "@414" }, { - "@type": "@405" + "@type": "@415" }, { - "@type": "@406" + "@type": "@416" }, { - "@type": "@407" + "@type": "@417" }, { - "@type": "@408" + "@type": "@418" }, { - "@type": "@409" - }, - { - "@type": "@410" + "@type": "@419" } ] }, { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -5492,37 +6491,37 @@ "partitions": null, "unknown": [ { - "@type": "@419" + "@type": "@428" }, { - "@type": "@420" + "@type": "@429" }, { - "@type": "@421" + "@type": "@430" }, { - "@type": "@422" + "@type": "@431" }, { - "@type": "@423" + "@type": "@432" }, { - "@type": "@424" + "@type": "@433" }, { - "@type": "@425" + "@type": "@434" }, { - "@type": "@426" + "@type": "@435" }, { - "@type": "@427" + "@type": "@436" }, { - "@type": "@428" + "@type": "@437" }, { - "@type": "@429" + "@type": "@438" } ] } @@ -5551,20 +6550,6 @@ "altered": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\AlterOperation", - "ROUTINE_OPTIONS": { - "COMMENT": [ - 1, - "var" - ], - "LANGUAGE SQL": 2, - "CONTAINS SQL": 3, - "NO SQL": 3, - "READS SQL DATA": 3, - "MODIFIES SQL DATA": 3, - "SQL SECURITY": 4, - "DEFINER": 5, - "INVOKER": 5 - }, "options": { "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": { @@ -5585,43 +6570,43 @@ "partitions": null, "unknown": [ { - "@type": "@456" + "@type": "@465" }, { - "@type": "@457" + "@type": "@466" }, { - "@type": "@458" + "@type": "@467" }, { - "@type": "@459" + "@type": "@468" }, { - "@type": "@460" + "@type": "@469" }, { - "@type": "@461" + "@type": "@470" }, { - "@type": "@462" + "@type": "@471" }, { - "@type": "@463" + "@type": "@472" }, { - "@type": "@464" + "@type": "@473" }, { - "@type": "@465" + "@type": "@474" }, { - "@type": "@466" + "@type": "@475" }, { - "@type": "@467" + "@type": "@476" }, { - "@type": "@468" + "@type": "@477" } ] } @@ -5665,7 +6650,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -5682,7 +6667,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -5699,7 +6684,7 @@ "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray", "options": [] }, - "end_options": null, + "endOptions": null, "set": [ { "@type": "PhpMyAdmin\\SqlParser\\Components\\SetOperation", @@ -5711,9 +6696,7 @@ "last": 501 } ], - "brackets": 0, - "strict": false, - "errors": [] + "brackets": 0 }, "errors": { "lexer": [], diff --git a/tools/contexts/MariaDb110800.txt b/tools/contexts/MariaDb110800.txt new file mode 100644 index 000000000..5e0346e4c --- /dev/null +++ b/tools/contexts/MariaDb110800.txt @@ -0,0 +1,630 @@ +ACCESSIBLE (R) +ACCOUNT +ACTION +ADD (R) +AFTER +AGAINST +AGGREGATE +ALGORITHM +ALL (R) +ALTER (R) +ALWAYS +ANALYSE +ANALYZE (R) +AND (R) +ANY +AS (R) +ASC (R) +ASCII +ASENSITIVE (R) +AT +AUTO_INCREMENT +AUTOEXTEND_SIZE +AVG +AVG_ROW_LENGTH +BACKUP +BEFORE (R) +BEGIN +BETWEEN (R) +BIGINT (R) +BINARY (R) +BINLOG +BIT +BLOB (R) +BLOCK +BOOL +BOOLEAN +BOTH (R) +BTREE +BY (R) +BYTE +CACHE +CALL (R) +CASCADE (R) +CASCADED +CASE (R) +CATALOG_NAME +CHAIN +CHANGE (R) +CHANGED +CHANNEL +CHAR (R) +CHARACTER (R) +CHARSET +CHECK (R) +CHECKSUM +CIPHER +CLASS_ORIGIN +CLIENT +CLOSE +COALESCE +CODE +COLLATE (R) +COLLATION +COLUMN (R) +COLUMN_FORMAT +COLUMN_NAME +COLUMNS +COMMENT +COMMIT +COMMITTED +COMPACT +COMPLETION +COMPRESSED +COMPRESSION +CONCURRENT +CONDITION (R) +CONNECTION +CONSISTENT +CONSTRAINT (R) +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONTAINS +CONTEXT +CONTINUE (R) +CONVERT (R) +CPU +CREATE (R) +CROSS (R) +CUBE +CURRENT +CURRENT_DATE (R) +CURRENT_TIME (R) +CURRENT_TIMESTAMP (R) +CURRENT_USER (R) +CURSOR (R) +CURSOR_NAME +DATA +DATABASE (R) +DATABASES (R) +DATAFILE +DATE +DATETIME +DAY +DAY_HOUR (R) +DAY_MICROSECOND (R) +DAY_MINUTE (R) +DAY_SECOND (R) +DEALLOCATE +DEC (R) +DECIMAL (R) +DECLARE (R) +DEFAULT (R) +DEFAULT_AUTH +DEFINER +DELAY_KEY_WRITE +DELAYED (R) +DELETE (R) +DES_KEY_FILE +DESC (R) +DESCRIBE (R) +DETERMINISTIC (R) +DIAGNOSTICS +DIRECTORY +DISABLE +DISABLE ON SLAVE +DISCARD +DISK +DISTINCT (R) +DISTINCTROW (R) +DIV (R) +DO +DOUBLE (R) +DROP (R) +DUAL (R) +DUMPFILE +DUPLICATE +DYNAMIC +EACH (R) +ELSE (R) +ELSEIF (R) +ENABLE +ENCLOSED (R) +END +ENDS +ENGINE +ENGINES +ENUM +ERROR +ERRORS +ESCAPE +ESCAPED (R) +EVENT +EVENTS +EVERY +EXCEPT (R) +EXCHANGE +EXECUTE +EXISTS (R) +EXIT (R) +EXPANSION +EXPIRE +EXPLAIN (R) +EXPORT +EXTENDED +EXTENT_SIZE +FALSE (R) +FAST +FAULTS +FETCH (R) +FIELDS +FILE +FILE_BLOCK_SIZE +FILTER +FIRST +FIXED +FLOAT (R) +FLOAT4 (R) +FLOAT8 (R) +FLUSH +FOLLOWS +FOR (R) +FORCE (R) +FOREIGN (R) +FORMAT +FOUND +FROM (R) +FULL +FULLTEXT (R) +FUNCTION +GENERAL +GENERATED (R) +GEOMETRY +GEOMETRYCOLLECTION +GET (R) +GET_FORMAT +GLOBAL +GRANT (R) +GRANTS +GROUP (R) +GROUP_REPLICATION +HANDLER +HASH +HAVING (R) +HELP +HIGH_PRIORITY (R) +HOST +HOSTS +HOUR +HOUR_MICROSECOND (R) +HOUR_MINUTE (R) +HOUR_SECOND (R) +IDENTIFIED +IDENTIFIED VIA (K) +IDENTIFIED WITH (K) +IF (R) +IGNORE (R) +IGNORE_SERVER_IDS +IMPORT +IN (R) +INDEX (R) +INDEXES +INFILE (R) +INITIAL_SIZE +INNER (R) +INOUT (R) +INSENSITIVE (R) +INSERT (R) +INSERT_METHOD +INSTALL +INT (R) +INT1 (R) +INT2 (R) +INT3 (R) +INT4 (R) +INT8 (R) +INTEGER (R) +INTERSECT (R) +INTERVAL (R) +INTO (R) +INVOKER +INVISIBLE +IO +IO_AFTER_GTIDS (R) +IO_BEFORE_GTIDS (R) +IO_THREAD +IPC +IS (R) +ISOLATION +ISSUER +ITERATE (R) +JOIN (R) +KEY (R) +KEY_BLOCK_SIZE +KEYS (R) +KILL (R) +LANGUAGE +LAST +LEADING (R) +LEAVE (R) +LEAVES +LEFT (R) +LESS +LEVEL +LIKE (R) +LIMIT (R) +LINEAR (R) +LINES (R) +LINESTRING +LIST +LOAD (R) +LOCAL +LOCALTIME (R) +LOCALTIMESTAMP (R) +LOCK (R) +LOCKS +LOGFILE +LOGS +LONG (R) +LONGBLOB (R) +LONGTEXT (R) +LOOP (R) +LOW_PRIORITY (R) +MASTER +MASTER_AUTO_POSITION +MASTER_BIND (R) +MASTER_CONNECT_RETRY +MASTER_DELAY +MASTER_HEARTBEAT_PERIOD +MASTER_HOST +MASTER_LOG_FILE +MASTER_LOG_POS +MASTER_PASSWORD +MASTER_PORT +MASTER_RETRY_COUNT +MASTER_SERVER_ID +MASTER_SSL +MASTER_SSL_CA +MASTER_SSL_CAPATH +MASTER_SSL_CERT +MASTER_SSL_CIPHER +MASTER_SSL_CRL +MASTER_SSL_CRLPATH +MASTER_SSL_KEY +MASTER_SSL_VERIFY_SERVER_CERT (R) +MASTER_USER +MATCH (R) +MAX_CONNECTIONS_PER_HOUR +MAX_QUERIES_PER_HOUR +MAX_ROWS +MAX_SIZE +MAX_STATEMENT_TIME +MAX_UPDATES_PER_HOUR +MAX_USER_CONNECTIONS +MAXVALUE (R) +MEDIUM +MEDIUMBLOB (R) +MEDIUMINT (R) +MEDIUMTEXT (R) +MEMORY +MERGE +MESSAGE_TEXT +MICROSECOND +MIDDLEINT (R) +MIGRATE +MIN_ROWS +MINUTE +MINUTE_MICROSECOND (R) +MINUTE_SECOND (R) +MOD (R) +MODE +MODIFIES (R) +MODIFY +MONTH +MULTILINESTRING +MULTIPOINT +MULTIPOLYGON +MUTEX +MYSQL_ERRNO +NAME +NAMES +NATIONAL +NATURAL (R) +NCHAR +NDB +NDBCLUSTER +NEVER +NEW +NEXT +NO +NO_WAIT +NO_WRITE_TO_BINLOG (R) +NODEGROUP +NONBLOCKING +NONE +NOT (R) +NULL (R) +NUMBER +NUMERIC (R) +NVARCHAR +OFFSET (R) +OLD_PASSWORD +ON (R) +ON COMPLETION NOT PRESERVE +ON COMPLETION PRESERVE +ON SCHEDULE +ONE +ONLY +OPEN +OPTIMIZE (R) +OPTIMIZER_COSTS (R) +OPTION (R) +OPTIONALLY (R) +OPTIONS +OR (R) +ORDER (R) +OUT (R) +OUTER (R) +OUTFILE (R) +OWNER +OVER (R) +PACK_KEYS +PAGE +PARSE_GCOL_EXPR +PARSER +PARTIAL +PARTITION (R) +PARTITIONING +PARTITIONS +PASSWORD +PHASE +PLUGIN +PLUGIN_DIR +PLUGINS +POINT +POLYGON +PORT +PRECEDES +PRECISION (R) +PREPARE +PRESERVE +PREV +PRIMARY (R) +PRIVILEGES +PROCEDURE (R) +PROCESSLIST +PROFILE +PROFILES +PROXY +PURGE (R) +QUARTER +QUERY +QUICK +RANGE (R) +READ (R) +READ_ONLY +READ_WRITE (R) +READS (R) +REAL (R) +REBUILD +RECOVER +RECURSIVE (R) +REDO_BUFFER_SIZE +REDOFILE +REDUNDANT +REFERENCES (R) +REGEXP (R) +RELAY +RELAY_LOG_FILE +RELAY_LOG_POS +RELAY_THREAD +RELAYLOG +RELEASE (R) +RELOAD +REMOVE +RENAME (R) +REORGANIZE +REPAIR +REPEAT (R) +REPEATABLE +REPLACE (R) +REPLICATE_DO_DB +REPLICATE_DO_TABLE +REPLICATE_IGNORE_DB +REPLICATE_IGNORE_TABLE +REPLICATE_REWRITE_DB +REPLICATE_WILD_DO_TABLE +REPLICATE_WILD_IGNORE_TABLE +REPLICATION +REQUIRE (R) +RESET +RESIGNAL (R) +RESTORE +RESTRICT (R) +RESUME +RETURN (R) +RETURNED_SQLSTATE +RETURNS +REVERSE +REVOKE (R) +RIGHT (R) +RLIKE (R) +ROLLBACK +ROLLUP +ROUTINE +ROW +ROW_COUNT +ROW_FORMAT +ROW_NUMBER (R) +ROWS (R) +RTREE +SAVEPOINT +SCHEDULE +SCHEMA (R) +SCHEMA_NAME +SCHEMAS (R) +SECOND +SECOND_MICROSECOND (R) +SECURITY +SELECT (R) +SENSITIVE (R) +SEPARATOR (R) +SEQUENCE +SERIAL +SERIALIZABLE +SERVER +SESSION +SET (R) +SHARE +SHOW (R) +SHUTDOWN +SIGNAL (R) +SIGNED +SIMPLE +SLAVE +SLOW +SMALLINT (R) +SNAPSHOT +SOCKET +SOME +SONAME +SOUNDS +SOURCE +SPATIAL (R) +SPECIFIC (R) +SQL (R) +SQL_AFTER_GTIDS +SQL_AFTER_MTS_GAPS +SQL_BEFORE_GTIDS +SQL_BIG_RESULT (R) +SQL_BUFFER_RESULT +SQL_CACHE +SQL_CALC_FOUND_ROWS (R) +SQL_NO_CACHE +SQL_SMALL_RESULT (R) +SQL_THREAD +SQL_TSI_DAY +SQL_TSI_HOUR +SQL_TSI_MINUTE +SQL_TSI_MONTH +SQL_TSI_QUARTER +SQL_TSI_SECOND +SQL_TSI_WEEK +SQL_TSI_YEAR +SQLEXCEPTION (R) +SQLSTATE (R) +SQLWARNING (R) +SSL (R) +STACKED +START +STARTING (R) +STARTS +STATS_AUTO_RECALC +STATS_PERSISTENT +STATS_SAMPLE_PAGES +STATUS +STOP +STORAGE +STORED (R) +STRAIGHT_JOIN (R) +STRING +SUBCLASS_ORIGIN +SUBJECT +SUBPARTITION +SUBPARTITIONS +SUPER +SUSPEND +SWAPS +SWITCHES +TABLE (R) +TABLE_CHECKSUM +TABLE_NAME +TABLES +TABLESPACE +TEMPORARY +TEMPTABLE +TERMINATED (R) +TEXT +THAN +THEN (R) +TIME +TIMESTAMP +TIMESTAMPADD +TIMESTAMPDIFF +TINYBLOB (R) +TINYINT (R) +TINYTEXT (R) +TO (R) +TRAILING (R) +TRANSACTION +TRIGGER (R) +TRIGGERS +TRUE (R) +TRUNCATE +TYPE +TYPES +UNCOMMITTED +UNDEFINED +UNDO (R) +UNDO_BUFFER_SIZE +UNDOFILE +UNICODE +UNINSTALL +UNION (R) +UNIQUE (R) +UNKNOWN +UNLOCK (R) +UNSIGNED (R) +UNTIL +UPDATE (R) +UPGRADE +USAGE (R) +USE (R) +USE_FRM +USER +USER_RESOURCES +USING (R) +UTC_DATE (R) +UTC_TIME (R) +UTC_TIMESTAMP (R) +VALIDATION +VALUE +VALUES (R) +VARBINARY (R) +VARCHAR (R) +VARCHARACTER (R) +VARIABLES +VARYING (R) +VIEW +VIRTUAL (R) +WAIT +WARNINGS +WEEK +WEIGHT_STRING +WHEN (R) +WHERE (R) +WHILE (R) +WITH (R) +WITHOUT +WORK +WRAPPER +WRITE (R) +X509 +XA +XID +XML +XOR (R) +YEAR +YEAR_MONTH (R) +ZEROFILL (R) diff --git a/tools/contexts/MariaDb120000.txt b/tools/contexts/MariaDb120000.txt new file mode 100644 index 000000000..5e0346e4c --- /dev/null +++ b/tools/contexts/MariaDb120000.txt @@ -0,0 +1,630 @@ +ACCESSIBLE (R) +ACCOUNT +ACTION +ADD (R) +AFTER +AGAINST +AGGREGATE +ALGORITHM +ALL (R) +ALTER (R) +ALWAYS +ANALYSE +ANALYZE (R) +AND (R) +ANY +AS (R) +ASC (R) +ASCII +ASENSITIVE (R) +AT +AUTO_INCREMENT +AUTOEXTEND_SIZE +AVG +AVG_ROW_LENGTH +BACKUP +BEFORE (R) +BEGIN +BETWEEN (R) +BIGINT (R) +BINARY (R) +BINLOG +BIT +BLOB (R) +BLOCK +BOOL +BOOLEAN +BOTH (R) +BTREE +BY (R) +BYTE +CACHE +CALL (R) +CASCADE (R) +CASCADED +CASE (R) +CATALOG_NAME +CHAIN +CHANGE (R) +CHANGED +CHANNEL +CHAR (R) +CHARACTER (R) +CHARSET +CHECK (R) +CHECKSUM +CIPHER +CLASS_ORIGIN +CLIENT +CLOSE +COALESCE +CODE +COLLATE (R) +COLLATION +COLUMN (R) +COLUMN_FORMAT +COLUMN_NAME +COLUMNS +COMMENT +COMMIT +COMMITTED +COMPACT +COMPLETION +COMPRESSED +COMPRESSION +CONCURRENT +CONDITION (R) +CONNECTION +CONSISTENT +CONSTRAINT (R) +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONTAINS +CONTEXT +CONTINUE (R) +CONVERT (R) +CPU +CREATE (R) +CROSS (R) +CUBE +CURRENT +CURRENT_DATE (R) +CURRENT_TIME (R) +CURRENT_TIMESTAMP (R) +CURRENT_USER (R) +CURSOR (R) +CURSOR_NAME +DATA +DATABASE (R) +DATABASES (R) +DATAFILE +DATE +DATETIME +DAY +DAY_HOUR (R) +DAY_MICROSECOND (R) +DAY_MINUTE (R) +DAY_SECOND (R) +DEALLOCATE +DEC (R) +DECIMAL (R) +DECLARE (R) +DEFAULT (R) +DEFAULT_AUTH +DEFINER +DELAY_KEY_WRITE +DELAYED (R) +DELETE (R) +DES_KEY_FILE +DESC (R) +DESCRIBE (R) +DETERMINISTIC (R) +DIAGNOSTICS +DIRECTORY +DISABLE +DISABLE ON SLAVE +DISCARD +DISK +DISTINCT (R) +DISTINCTROW (R) +DIV (R) +DO +DOUBLE (R) +DROP (R) +DUAL (R) +DUMPFILE +DUPLICATE +DYNAMIC +EACH (R) +ELSE (R) +ELSEIF (R) +ENABLE +ENCLOSED (R) +END +ENDS +ENGINE +ENGINES +ENUM +ERROR +ERRORS +ESCAPE +ESCAPED (R) +EVENT +EVENTS +EVERY +EXCEPT (R) +EXCHANGE +EXECUTE +EXISTS (R) +EXIT (R) +EXPANSION +EXPIRE +EXPLAIN (R) +EXPORT +EXTENDED +EXTENT_SIZE +FALSE (R) +FAST +FAULTS +FETCH (R) +FIELDS +FILE +FILE_BLOCK_SIZE +FILTER +FIRST +FIXED +FLOAT (R) +FLOAT4 (R) +FLOAT8 (R) +FLUSH +FOLLOWS +FOR (R) +FORCE (R) +FOREIGN (R) +FORMAT +FOUND +FROM (R) +FULL +FULLTEXT (R) +FUNCTION +GENERAL +GENERATED (R) +GEOMETRY +GEOMETRYCOLLECTION +GET (R) +GET_FORMAT +GLOBAL +GRANT (R) +GRANTS +GROUP (R) +GROUP_REPLICATION +HANDLER +HASH +HAVING (R) +HELP +HIGH_PRIORITY (R) +HOST +HOSTS +HOUR +HOUR_MICROSECOND (R) +HOUR_MINUTE (R) +HOUR_SECOND (R) +IDENTIFIED +IDENTIFIED VIA (K) +IDENTIFIED WITH (K) +IF (R) +IGNORE (R) +IGNORE_SERVER_IDS +IMPORT +IN (R) +INDEX (R) +INDEXES +INFILE (R) +INITIAL_SIZE +INNER (R) +INOUT (R) +INSENSITIVE (R) +INSERT (R) +INSERT_METHOD +INSTALL +INT (R) +INT1 (R) +INT2 (R) +INT3 (R) +INT4 (R) +INT8 (R) +INTEGER (R) +INTERSECT (R) +INTERVAL (R) +INTO (R) +INVOKER +INVISIBLE +IO +IO_AFTER_GTIDS (R) +IO_BEFORE_GTIDS (R) +IO_THREAD +IPC +IS (R) +ISOLATION +ISSUER +ITERATE (R) +JOIN (R) +KEY (R) +KEY_BLOCK_SIZE +KEYS (R) +KILL (R) +LANGUAGE +LAST +LEADING (R) +LEAVE (R) +LEAVES +LEFT (R) +LESS +LEVEL +LIKE (R) +LIMIT (R) +LINEAR (R) +LINES (R) +LINESTRING +LIST +LOAD (R) +LOCAL +LOCALTIME (R) +LOCALTIMESTAMP (R) +LOCK (R) +LOCKS +LOGFILE +LOGS +LONG (R) +LONGBLOB (R) +LONGTEXT (R) +LOOP (R) +LOW_PRIORITY (R) +MASTER +MASTER_AUTO_POSITION +MASTER_BIND (R) +MASTER_CONNECT_RETRY +MASTER_DELAY +MASTER_HEARTBEAT_PERIOD +MASTER_HOST +MASTER_LOG_FILE +MASTER_LOG_POS +MASTER_PASSWORD +MASTER_PORT +MASTER_RETRY_COUNT +MASTER_SERVER_ID +MASTER_SSL +MASTER_SSL_CA +MASTER_SSL_CAPATH +MASTER_SSL_CERT +MASTER_SSL_CIPHER +MASTER_SSL_CRL +MASTER_SSL_CRLPATH +MASTER_SSL_KEY +MASTER_SSL_VERIFY_SERVER_CERT (R) +MASTER_USER +MATCH (R) +MAX_CONNECTIONS_PER_HOUR +MAX_QUERIES_PER_HOUR +MAX_ROWS +MAX_SIZE +MAX_STATEMENT_TIME +MAX_UPDATES_PER_HOUR +MAX_USER_CONNECTIONS +MAXVALUE (R) +MEDIUM +MEDIUMBLOB (R) +MEDIUMINT (R) +MEDIUMTEXT (R) +MEMORY +MERGE +MESSAGE_TEXT +MICROSECOND +MIDDLEINT (R) +MIGRATE +MIN_ROWS +MINUTE +MINUTE_MICROSECOND (R) +MINUTE_SECOND (R) +MOD (R) +MODE +MODIFIES (R) +MODIFY +MONTH +MULTILINESTRING +MULTIPOINT +MULTIPOLYGON +MUTEX +MYSQL_ERRNO +NAME +NAMES +NATIONAL +NATURAL (R) +NCHAR +NDB +NDBCLUSTER +NEVER +NEW +NEXT +NO +NO_WAIT +NO_WRITE_TO_BINLOG (R) +NODEGROUP +NONBLOCKING +NONE +NOT (R) +NULL (R) +NUMBER +NUMERIC (R) +NVARCHAR +OFFSET (R) +OLD_PASSWORD +ON (R) +ON COMPLETION NOT PRESERVE +ON COMPLETION PRESERVE +ON SCHEDULE +ONE +ONLY +OPEN +OPTIMIZE (R) +OPTIMIZER_COSTS (R) +OPTION (R) +OPTIONALLY (R) +OPTIONS +OR (R) +ORDER (R) +OUT (R) +OUTER (R) +OUTFILE (R) +OWNER +OVER (R) +PACK_KEYS +PAGE +PARSE_GCOL_EXPR +PARSER +PARTIAL +PARTITION (R) +PARTITIONING +PARTITIONS +PASSWORD +PHASE +PLUGIN +PLUGIN_DIR +PLUGINS +POINT +POLYGON +PORT +PRECEDES +PRECISION (R) +PREPARE +PRESERVE +PREV +PRIMARY (R) +PRIVILEGES +PROCEDURE (R) +PROCESSLIST +PROFILE +PROFILES +PROXY +PURGE (R) +QUARTER +QUERY +QUICK +RANGE (R) +READ (R) +READ_ONLY +READ_WRITE (R) +READS (R) +REAL (R) +REBUILD +RECOVER +RECURSIVE (R) +REDO_BUFFER_SIZE +REDOFILE +REDUNDANT +REFERENCES (R) +REGEXP (R) +RELAY +RELAY_LOG_FILE +RELAY_LOG_POS +RELAY_THREAD +RELAYLOG +RELEASE (R) +RELOAD +REMOVE +RENAME (R) +REORGANIZE +REPAIR +REPEAT (R) +REPEATABLE +REPLACE (R) +REPLICATE_DO_DB +REPLICATE_DO_TABLE +REPLICATE_IGNORE_DB +REPLICATE_IGNORE_TABLE +REPLICATE_REWRITE_DB +REPLICATE_WILD_DO_TABLE +REPLICATE_WILD_IGNORE_TABLE +REPLICATION +REQUIRE (R) +RESET +RESIGNAL (R) +RESTORE +RESTRICT (R) +RESUME +RETURN (R) +RETURNED_SQLSTATE +RETURNS +REVERSE +REVOKE (R) +RIGHT (R) +RLIKE (R) +ROLLBACK +ROLLUP +ROUTINE +ROW +ROW_COUNT +ROW_FORMAT +ROW_NUMBER (R) +ROWS (R) +RTREE +SAVEPOINT +SCHEDULE +SCHEMA (R) +SCHEMA_NAME +SCHEMAS (R) +SECOND +SECOND_MICROSECOND (R) +SECURITY +SELECT (R) +SENSITIVE (R) +SEPARATOR (R) +SEQUENCE +SERIAL +SERIALIZABLE +SERVER +SESSION +SET (R) +SHARE +SHOW (R) +SHUTDOWN +SIGNAL (R) +SIGNED +SIMPLE +SLAVE +SLOW +SMALLINT (R) +SNAPSHOT +SOCKET +SOME +SONAME +SOUNDS +SOURCE +SPATIAL (R) +SPECIFIC (R) +SQL (R) +SQL_AFTER_GTIDS +SQL_AFTER_MTS_GAPS +SQL_BEFORE_GTIDS +SQL_BIG_RESULT (R) +SQL_BUFFER_RESULT +SQL_CACHE +SQL_CALC_FOUND_ROWS (R) +SQL_NO_CACHE +SQL_SMALL_RESULT (R) +SQL_THREAD +SQL_TSI_DAY +SQL_TSI_HOUR +SQL_TSI_MINUTE +SQL_TSI_MONTH +SQL_TSI_QUARTER +SQL_TSI_SECOND +SQL_TSI_WEEK +SQL_TSI_YEAR +SQLEXCEPTION (R) +SQLSTATE (R) +SQLWARNING (R) +SSL (R) +STACKED +START +STARTING (R) +STARTS +STATS_AUTO_RECALC +STATS_PERSISTENT +STATS_SAMPLE_PAGES +STATUS +STOP +STORAGE +STORED (R) +STRAIGHT_JOIN (R) +STRING +SUBCLASS_ORIGIN +SUBJECT +SUBPARTITION +SUBPARTITIONS +SUPER +SUSPEND +SWAPS +SWITCHES +TABLE (R) +TABLE_CHECKSUM +TABLE_NAME +TABLES +TABLESPACE +TEMPORARY +TEMPTABLE +TERMINATED (R) +TEXT +THAN +THEN (R) +TIME +TIMESTAMP +TIMESTAMPADD +TIMESTAMPDIFF +TINYBLOB (R) +TINYINT (R) +TINYTEXT (R) +TO (R) +TRAILING (R) +TRANSACTION +TRIGGER (R) +TRIGGERS +TRUE (R) +TRUNCATE +TYPE +TYPES +UNCOMMITTED +UNDEFINED +UNDO (R) +UNDO_BUFFER_SIZE +UNDOFILE +UNICODE +UNINSTALL +UNION (R) +UNIQUE (R) +UNKNOWN +UNLOCK (R) +UNSIGNED (R) +UNTIL +UPDATE (R) +UPGRADE +USAGE (R) +USE (R) +USE_FRM +USER +USER_RESOURCES +USING (R) +UTC_DATE (R) +UTC_TIME (R) +UTC_TIMESTAMP (R) +VALIDATION +VALUE +VALUES (R) +VARBINARY (R) +VARCHAR (R) +VARCHARACTER (R) +VARIABLES +VARYING (R) +VIEW +VIRTUAL (R) +WAIT +WARNINGS +WEEK +WEIGHT_STRING +WHEN (R) +WHERE (R) +WHILE (R) +WITH (R) +WITHOUT +WORK +WRAPPER +WRITE (R) +X509 +XA +XID +XML +XOR (R) +YEAR +YEAR_MONTH (R) +ZEROFILL (R) diff --git a/tools/contexts/MariaDb120100.txt b/tools/contexts/MariaDb120100.txt new file mode 100644 index 000000000..5e0346e4c --- /dev/null +++ b/tools/contexts/MariaDb120100.txt @@ -0,0 +1,630 @@ +ACCESSIBLE (R) +ACCOUNT +ACTION +ADD (R) +AFTER +AGAINST +AGGREGATE +ALGORITHM +ALL (R) +ALTER (R) +ALWAYS +ANALYSE +ANALYZE (R) +AND (R) +ANY +AS (R) +ASC (R) +ASCII +ASENSITIVE (R) +AT +AUTO_INCREMENT +AUTOEXTEND_SIZE +AVG +AVG_ROW_LENGTH +BACKUP +BEFORE (R) +BEGIN +BETWEEN (R) +BIGINT (R) +BINARY (R) +BINLOG +BIT +BLOB (R) +BLOCK +BOOL +BOOLEAN +BOTH (R) +BTREE +BY (R) +BYTE +CACHE +CALL (R) +CASCADE (R) +CASCADED +CASE (R) +CATALOG_NAME +CHAIN +CHANGE (R) +CHANGED +CHANNEL +CHAR (R) +CHARACTER (R) +CHARSET +CHECK (R) +CHECKSUM +CIPHER +CLASS_ORIGIN +CLIENT +CLOSE +COALESCE +CODE +COLLATE (R) +COLLATION +COLUMN (R) +COLUMN_FORMAT +COLUMN_NAME +COLUMNS +COMMENT +COMMIT +COMMITTED +COMPACT +COMPLETION +COMPRESSED +COMPRESSION +CONCURRENT +CONDITION (R) +CONNECTION +CONSISTENT +CONSTRAINT (R) +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONTAINS +CONTEXT +CONTINUE (R) +CONVERT (R) +CPU +CREATE (R) +CROSS (R) +CUBE +CURRENT +CURRENT_DATE (R) +CURRENT_TIME (R) +CURRENT_TIMESTAMP (R) +CURRENT_USER (R) +CURSOR (R) +CURSOR_NAME +DATA +DATABASE (R) +DATABASES (R) +DATAFILE +DATE +DATETIME +DAY +DAY_HOUR (R) +DAY_MICROSECOND (R) +DAY_MINUTE (R) +DAY_SECOND (R) +DEALLOCATE +DEC (R) +DECIMAL (R) +DECLARE (R) +DEFAULT (R) +DEFAULT_AUTH +DEFINER +DELAY_KEY_WRITE +DELAYED (R) +DELETE (R) +DES_KEY_FILE +DESC (R) +DESCRIBE (R) +DETERMINISTIC (R) +DIAGNOSTICS +DIRECTORY +DISABLE +DISABLE ON SLAVE +DISCARD +DISK +DISTINCT (R) +DISTINCTROW (R) +DIV (R) +DO +DOUBLE (R) +DROP (R) +DUAL (R) +DUMPFILE +DUPLICATE +DYNAMIC +EACH (R) +ELSE (R) +ELSEIF (R) +ENABLE +ENCLOSED (R) +END +ENDS +ENGINE +ENGINES +ENUM +ERROR +ERRORS +ESCAPE +ESCAPED (R) +EVENT +EVENTS +EVERY +EXCEPT (R) +EXCHANGE +EXECUTE +EXISTS (R) +EXIT (R) +EXPANSION +EXPIRE +EXPLAIN (R) +EXPORT +EXTENDED +EXTENT_SIZE +FALSE (R) +FAST +FAULTS +FETCH (R) +FIELDS +FILE +FILE_BLOCK_SIZE +FILTER +FIRST +FIXED +FLOAT (R) +FLOAT4 (R) +FLOAT8 (R) +FLUSH +FOLLOWS +FOR (R) +FORCE (R) +FOREIGN (R) +FORMAT +FOUND +FROM (R) +FULL +FULLTEXT (R) +FUNCTION +GENERAL +GENERATED (R) +GEOMETRY +GEOMETRYCOLLECTION +GET (R) +GET_FORMAT +GLOBAL +GRANT (R) +GRANTS +GROUP (R) +GROUP_REPLICATION +HANDLER +HASH +HAVING (R) +HELP +HIGH_PRIORITY (R) +HOST +HOSTS +HOUR +HOUR_MICROSECOND (R) +HOUR_MINUTE (R) +HOUR_SECOND (R) +IDENTIFIED +IDENTIFIED VIA (K) +IDENTIFIED WITH (K) +IF (R) +IGNORE (R) +IGNORE_SERVER_IDS +IMPORT +IN (R) +INDEX (R) +INDEXES +INFILE (R) +INITIAL_SIZE +INNER (R) +INOUT (R) +INSENSITIVE (R) +INSERT (R) +INSERT_METHOD +INSTALL +INT (R) +INT1 (R) +INT2 (R) +INT3 (R) +INT4 (R) +INT8 (R) +INTEGER (R) +INTERSECT (R) +INTERVAL (R) +INTO (R) +INVOKER +INVISIBLE +IO +IO_AFTER_GTIDS (R) +IO_BEFORE_GTIDS (R) +IO_THREAD +IPC +IS (R) +ISOLATION +ISSUER +ITERATE (R) +JOIN (R) +KEY (R) +KEY_BLOCK_SIZE +KEYS (R) +KILL (R) +LANGUAGE +LAST +LEADING (R) +LEAVE (R) +LEAVES +LEFT (R) +LESS +LEVEL +LIKE (R) +LIMIT (R) +LINEAR (R) +LINES (R) +LINESTRING +LIST +LOAD (R) +LOCAL +LOCALTIME (R) +LOCALTIMESTAMP (R) +LOCK (R) +LOCKS +LOGFILE +LOGS +LONG (R) +LONGBLOB (R) +LONGTEXT (R) +LOOP (R) +LOW_PRIORITY (R) +MASTER +MASTER_AUTO_POSITION +MASTER_BIND (R) +MASTER_CONNECT_RETRY +MASTER_DELAY +MASTER_HEARTBEAT_PERIOD +MASTER_HOST +MASTER_LOG_FILE +MASTER_LOG_POS +MASTER_PASSWORD +MASTER_PORT +MASTER_RETRY_COUNT +MASTER_SERVER_ID +MASTER_SSL +MASTER_SSL_CA +MASTER_SSL_CAPATH +MASTER_SSL_CERT +MASTER_SSL_CIPHER +MASTER_SSL_CRL +MASTER_SSL_CRLPATH +MASTER_SSL_KEY +MASTER_SSL_VERIFY_SERVER_CERT (R) +MASTER_USER +MATCH (R) +MAX_CONNECTIONS_PER_HOUR +MAX_QUERIES_PER_HOUR +MAX_ROWS +MAX_SIZE +MAX_STATEMENT_TIME +MAX_UPDATES_PER_HOUR +MAX_USER_CONNECTIONS +MAXVALUE (R) +MEDIUM +MEDIUMBLOB (R) +MEDIUMINT (R) +MEDIUMTEXT (R) +MEMORY +MERGE +MESSAGE_TEXT +MICROSECOND +MIDDLEINT (R) +MIGRATE +MIN_ROWS +MINUTE +MINUTE_MICROSECOND (R) +MINUTE_SECOND (R) +MOD (R) +MODE +MODIFIES (R) +MODIFY +MONTH +MULTILINESTRING +MULTIPOINT +MULTIPOLYGON +MUTEX +MYSQL_ERRNO +NAME +NAMES +NATIONAL +NATURAL (R) +NCHAR +NDB +NDBCLUSTER +NEVER +NEW +NEXT +NO +NO_WAIT +NO_WRITE_TO_BINLOG (R) +NODEGROUP +NONBLOCKING +NONE +NOT (R) +NULL (R) +NUMBER +NUMERIC (R) +NVARCHAR +OFFSET (R) +OLD_PASSWORD +ON (R) +ON COMPLETION NOT PRESERVE +ON COMPLETION PRESERVE +ON SCHEDULE +ONE +ONLY +OPEN +OPTIMIZE (R) +OPTIMIZER_COSTS (R) +OPTION (R) +OPTIONALLY (R) +OPTIONS +OR (R) +ORDER (R) +OUT (R) +OUTER (R) +OUTFILE (R) +OWNER +OVER (R) +PACK_KEYS +PAGE +PARSE_GCOL_EXPR +PARSER +PARTIAL +PARTITION (R) +PARTITIONING +PARTITIONS +PASSWORD +PHASE +PLUGIN +PLUGIN_DIR +PLUGINS +POINT +POLYGON +PORT +PRECEDES +PRECISION (R) +PREPARE +PRESERVE +PREV +PRIMARY (R) +PRIVILEGES +PROCEDURE (R) +PROCESSLIST +PROFILE +PROFILES +PROXY +PURGE (R) +QUARTER +QUERY +QUICK +RANGE (R) +READ (R) +READ_ONLY +READ_WRITE (R) +READS (R) +REAL (R) +REBUILD +RECOVER +RECURSIVE (R) +REDO_BUFFER_SIZE +REDOFILE +REDUNDANT +REFERENCES (R) +REGEXP (R) +RELAY +RELAY_LOG_FILE +RELAY_LOG_POS +RELAY_THREAD +RELAYLOG +RELEASE (R) +RELOAD +REMOVE +RENAME (R) +REORGANIZE +REPAIR +REPEAT (R) +REPEATABLE +REPLACE (R) +REPLICATE_DO_DB +REPLICATE_DO_TABLE +REPLICATE_IGNORE_DB +REPLICATE_IGNORE_TABLE +REPLICATE_REWRITE_DB +REPLICATE_WILD_DO_TABLE +REPLICATE_WILD_IGNORE_TABLE +REPLICATION +REQUIRE (R) +RESET +RESIGNAL (R) +RESTORE +RESTRICT (R) +RESUME +RETURN (R) +RETURNED_SQLSTATE +RETURNS +REVERSE +REVOKE (R) +RIGHT (R) +RLIKE (R) +ROLLBACK +ROLLUP +ROUTINE +ROW +ROW_COUNT +ROW_FORMAT +ROW_NUMBER (R) +ROWS (R) +RTREE +SAVEPOINT +SCHEDULE +SCHEMA (R) +SCHEMA_NAME +SCHEMAS (R) +SECOND +SECOND_MICROSECOND (R) +SECURITY +SELECT (R) +SENSITIVE (R) +SEPARATOR (R) +SEQUENCE +SERIAL +SERIALIZABLE +SERVER +SESSION +SET (R) +SHARE +SHOW (R) +SHUTDOWN +SIGNAL (R) +SIGNED +SIMPLE +SLAVE +SLOW +SMALLINT (R) +SNAPSHOT +SOCKET +SOME +SONAME +SOUNDS +SOURCE +SPATIAL (R) +SPECIFIC (R) +SQL (R) +SQL_AFTER_GTIDS +SQL_AFTER_MTS_GAPS +SQL_BEFORE_GTIDS +SQL_BIG_RESULT (R) +SQL_BUFFER_RESULT +SQL_CACHE +SQL_CALC_FOUND_ROWS (R) +SQL_NO_CACHE +SQL_SMALL_RESULT (R) +SQL_THREAD +SQL_TSI_DAY +SQL_TSI_HOUR +SQL_TSI_MINUTE +SQL_TSI_MONTH +SQL_TSI_QUARTER +SQL_TSI_SECOND +SQL_TSI_WEEK +SQL_TSI_YEAR +SQLEXCEPTION (R) +SQLSTATE (R) +SQLWARNING (R) +SSL (R) +STACKED +START +STARTING (R) +STARTS +STATS_AUTO_RECALC +STATS_PERSISTENT +STATS_SAMPLE_PAGES +STATUS +STOP +STORAGE +STORED (R) +STRAIGHT_JOIN (R) +STRING +SUBCLASS_ORIGIN +SUBJECT +SUBPARTITION +SUBPARTITIONS +SUPER +SUSPEND +SWAPS +SWITCHES +TABLE (R) +TABLE_CHECKSUM +TABLE_NAME +TABLES +TABLESPACE +TEMPORARY +TEMPTABLE +TERMINATED (R) +TEXT +THAN +THEN (R) +TIME +TIMESTAMP +TIMESTAMPADD +TIMESTAMPDIFF +TINYBLOB (R) +TINYINT (R) +TINYTEXT (R) +TO (R) +TRAILING (R) +TRANSACTION +TRIGGER (R) +TRIGGERS +TRUE (R) +TRUNCATE +TYPE +TYPES +UNCOMMITTED +UNDEFINED +UNDO (R) +UNDO_BUFFER_SIZE +UNDOFILE +UNICODE +UNINSTALL +UNION (R) +UNIQUE (R) +UNKNOWN +UNLOCK (R) +UNSIGNED (R) +UNTIL +UPDATE (R) +UPGRADE +USAGE (R) +USE (R) +USE_FRM +USER +USER_RESOURCES +USING (R) +UTC_DATE (R) +UTC_TIME (R) +UTC_TIMESTAMP (R) +VALIDATION +VALUE +VALUES (R) +VARBINARY (R) +VARCHAR (R) +VARCHARACTER (R) +VARIABLES +VARYING (R) +VIEW +VIRTUAL (R) +WAIT +WARNINGS +WEEK +WEIGHT_STRING +WHEN (R) +WHERE (R) +WHILE (R) +WITH (R) +WITHOUT +WORK +WRAPPER +WRITE (R) +X509 +XA +XID +XML +XOR (R) +YEAR +YEAR_MONTH (R) +ZEROFILL (R) diff --git a/tools/contexts/MySql90200.txt b/tools/contexts/MySql90200.txt new file mode 100644 index 000000000..65ecf0fc5 --- /dev/null +++ b/tools/contexts/MySql90200.txt @@ -0,0 +1,617 @@ +ACCESSIBLE (R) +ACCOUNT +ACTION +ADD (R) +AFTER +AGAINST +AGGREGATE +ALGORITHM +ALL (R) +ALTER (R) +ALWAYS +ANALYSE +ANALYZE (R) +AND (R) +ANY +AS (R) +ASC (R) +ASCII +ASENSITIVE (R) +AT +AUTO +AUTO_INCREMENT +AUTOEXTEND_SIZE +AVG +AVG_ROW_LENGTH +BACKUP +BEFORE (R) +BEGIN +BERNOULLI +BETWEEN (R) +BIGINT (R) +BINARY (R) +BINLOG +BIT +BLOB (R) +BLOCK +BOOL +BOOLEAN +BOTH (R) +BTREE +BY (R) +BYTE +CACHE +CALL (R) +CASCADE (R) +CASCADED +CASE (R) +CATALOG_NAME +CHAIN +CHANGE (R) +CHANGED +CHANNEL +CHAR (R) +CHARACTER (R) +CHARSET +CHECK (R) +CHECKSUM +CIPHER +CLASS_ORIGIN +CLIENT +CLOSE +COALESCE +CODE +COLLATE (R) +COLLATION +COLUMN (R) +COLUMN_FORMAT +COLUMN_NAME +COLUMNS +COMMENT +COMMIT +COMMITTED +COMPACT +COMPLETION +COMPRESSED +COMPRESSION +CONCURRENT +CONDITION (R) +CONNECTION +CONSISTENT +CONSTRAINT (R) +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONTAINS +CONTEXT +CONTINUE (R) +CONVERT (R) +CPU +CREATE (R) +CROSS (R) +CUBE +CURRENT +CURRENT_DATE (R) +CURRENT_TIME (R) +CURRENT_TIMESTAMP (R) +CURRENT_USER (R) +CURSOR (R) +CURSOR_NAME +DATA +DATABASE (R) +DATABASES (R) +DATAFILE +DATE +DATETIME +DAY +DAY_HOUR (R) +DAY_MICROSECOND (R) +DAY_MINUTE (R) +DAY_SECOND (R) +DEALLOCATE +DEC (R) +DECIMAL (R) +DECLARE (R) +DEFAULT (R) +DEFAULT_AUTH +DEFINER +DELAY_KEY_WRITE +DELAYED (R) +DELETE (R) +DES_KEY_FILE +DESC (R) +DESCRIBE (R) +DETERMINISTIC (R) +DIAGNOSTICS +DIRECTORY +DISABLE +DISABLE ON SLAVE +DISCARD +DISK +DISTINCT (R) +DISTINCTROW (R) +DIV (R) +DO +DOUBLE (R) +DROP (R) +DUAL (R) +DUMPFILE +DUPLICATE +DYNAMIC +EACH (R) +ELSE (R) +ELSEIF (R) +ENABLE +ENCLOSED (R) +END +ENDS +ENGINE +ENGINES +ENUM +ERROR +ERRORS +ESCAPE +ESCAPED (R) +EVENT +EVENTS +EVERY +EXCHANGE +EXECUTE +EXISTS (R) +EXIT (R) +EXPANSION +EXPIRE +EXPLAIN (R) +EXPORT +EXTENDED +EXTENT_SIZE +FALSE (R) +FAST +FAULTS +FETCH (R) +FIELDS +FILE +FILE_BLOCK_SIZE +FILTER +FIRST +FIXED +FLOAT (R) +FLOAT4 (R) +FLOAT8 (R) +FLUSH +FOLLOWS +FOR (R) +FORCE (R) +FOREIGN (R) +FORMAT +FOUND +FROM (R) +FULL +FULLTEXT (R) +FUNCTION +GENERAL +GENERATED (R) +GEOMETRY +GEOMETRYCOLLECTION +GET (R) +GET_FORMAT +GLOBAL +GRANT (R) +GRANTS +GROUP (R) +GROUP_REPLICATION +GTIDS +HANDLER +HASH +HAVING (R) +HELP +HIGH_PRIORITY (R) +HOST +HOSTS +HOUR +HOUR_MICROSECOND (R) +HOUR_MINUTE (R) +HOUR_SECOND (R) +IDENTIFIED +IDENTIFIED WITH (K) +IF (R) +IGNORE (R) +IGNORE_SERVER_IDS +IMPORT +IN (R) +INDEX (R) +INDEXES +INFILE (R) +INITIAL_SIZE +INNER (R) +INOUT (R) +INSENSITIVE (R) +INSERT (R) +INSERT_METHOD +INSTALL +INT (R) +INT1 (R) +INT2 (R) +INT3 (R) +INT4 (R) +INT8 (R) +INTEGER (R) +INTERVAL (R) +INTO (R) +INVOKER +INVISIBLE +IO +IO_AFTER_GTIDS (R) +IO_BEFORE_GTIDS (R) +IO_THREAD +IPC +IS (R) +ISOLATION +ISSUER +ITERATE (R) +JOIN (R) +KEY (R) +KEY_BLOCK_SIZE +KEYS (R) +KILL (R) +LANGUAGE +LAST +LEADING (R) +LEAVE (R) +LEAVES +LEFT (R) +LESS +LEVEL +LIKE (R) +LIMIT (R) +LINEAR (R) +LINES (R) +LINESTRING +LIST +LOAD (R) +LOCAL +LOCALTIME (R) +LOCALTIMESTAMP (R) +LOCK (R) +LOCKS +LOG +LOGFILE +LOGS +LONG (R) +LONGBLOB (R) +LONGTEXT (R) +LOOP (R) +LOW_PRIORITY (R) +MANUAL (R) +MASTER +MASTER_SERVER_ID +MATCH (R) +MAX_CONNECTIONS_PER_HOUR +MAX_QUERIES_PER_HOUR +MAX_ROWS +MAX_SIZE +MAX_STATEMENT_TIME +MAX_UPDATES_PER_HOUR +MAX_USER_CONNECTIONS +MAXVALUE (R) +MEDIUM +MEDIUMBLOB (R) +MEDIUMINT (R) +MEDIUMTEXT (R) +MEMORY +MERGE +MESSAGE_TEXT +MICROSECOND +MIDDLEINT (R) +MIGRATE +MIN_ROWS +MINUTE +MINUTE_MICROSECOND (R) +MINUTE_SECOND (R) +MOD (R) +MODE +MODIFIES (R) +MODIFY +MONTH +MULTILINESTRING +MULTIPOINT +MULTIPOLYGON +MUTEX +MYSQL_ERRNO +NAME +NAMES +NATIONAL +NATURAL (R) +NCHAR +NDB +NDBCLUSTER +NEVER +NEW +NEXT +NO +NO_WAIT +NO_WRITE_TO_BINLOG (R) +NODEGROUP +NONBLOCKING +NONE +NOT (R) +NULL (R) +NUMBER +NUMERIC (R) +NVARCHAR +OFFSET +OLD_PASSWORD +ON (R) +ON COMPLETION NOT PRESERVE +ON COMPLETION PRESERVE +ON SCHEDULE +ONE +ONLY +OPEN +OPTIMIZE (R) +OPTIMIZER_COSTS (R) +OPTION (R) +OPTIONALLY (R) +OPTIONS +OR (R) +ORDER (R) +OUT (R) +OUTER (R) +OUTFILE (R) +OVER (R) +OWNER +PACK_KEYS +PAGE +PARALLEL (R) +PARSE_GCOL_EXPR +PARSE_TREE +PARSER +PARTIAL +PARTITION (R) +PARTITIONING +PARTITIONS +PASSWORD +PERSIST +PERSIST_ONLY +PHASE +PLUGIN +PLUGIN_DIR +PLUGINS +POINT +POLYGON +PORT +PRECEDES +PRECISION (R) +PREPARE +PRESERVE +PREV +PRIMARY (R) +PRIVILEGES +PROCEDURE (R) +PROCESSLIST +PROFILE +PROFILES +PROXY +PURGE (R) +QUALIFY (R) +QUARTER +QUERY +QUICK +RANGE (R) +READ (R) +READ_ONLY +READ_WRITE (R) +READS (R) +REAL (R) +REBUILD +RECOVER +REDO_BUFFER_SIZE +REDOFILE +REDUNDANT +REFERENCES (R) +REGEXP (R) +RELAY +RELAY_LOG_FILE +RELAY_LOG_POS +RELAY_THREAD +RELAYLOG +RELEASE (R) +RELOAD +REMOVE +RENAME (R) +REORGANIZE +REPAIR +REPEAT (R) +REPEATABLE +REPLACE (R) +REPLICATE_DO_DB +REPLICATE_DO_TABLE +REPLICATE_IGNORE_DB +REPLICATE_IGNORE_TABLE +REPLICATE_REWRITE_DB +REPLICATE_WILD_DO_TABLE +REPLICATE_WILD_IGNORE_TABLE +REPLICATION +REQUIRE (R) +RESET +RESIGNAL (R) +RESTORE +RESTRICT (R) +RESUME +RETURN (R) +RETURNED_SQLSTATE +RETURNS +REVERSE +REVOKE (R) +RIGHT (R) +RLIKE (R) +ROLLBACK +ROLLUP +ROUTINE +ROW +ROW_COUNT +ROW_FORMAT +ROWS +RTREE +S3 +SAVEPOINT +SCHEDULE +SCHEMA (R) +SCHEMA_NAME +SCHEMAS (R) +SECOND +SECOND_MICROSECOND (R) +SECURITY +SELECT (R) +SENSITIVE (R) +SEPARATOR (R) +SERIAL +SERIALIZABLE +SERVER +SESSION +SET (R) +SHARE +SHOW (R) +SHUTDOWN +SIGNAL (R) +SIGNED +SIMPLE +SLAVE +SLOW +SMALLINT (R) +SNAPSHOT +SOCKET +SOME +SONAME +SOUNDS +SOURCE +SPATIAL (R) +SPECIFIC (R) +SQL (R) +SQL_AFTER_GTIDS +SQL_AFTER_MTS_GAPS +SQL_BEFORE_GTIDS +SQL_BIG_RESULT (R) +SQL_BUFFER_RESULT +SQL_CACHE +SQL_CALC_FOUND_ROWS (R) +SQL_NO_CACHE +SQL_SMALL_RESULT (R) +SQL_THREAD +SQL_TSI_DAY +SQL_TSI_HOUR +SQL_TSI_MINUTE +SQL_TSI_MONTH +SQL_TSI_QUARTER +SQL_TSI_SECOND +SQL_TSI_WEEK +SQL_TSI_YEAR +SQLEXCEPTION (R) +SQLSTATE (R) +SQLWARNING (R) +SSL (R) +STACKED +START +STARTING (R) +STARTS +STATS_AUTO_RECALC +STATS_PERSISTENT +STATS_SAMPLE_PAGES +STATUS +STOP +STORAGE +STORED (R) +STRAIGHT_JOIN (R) +STRING +SUBCLASS_ORIGIN +SUBJECT +SUBPARTITION +SUBPARTITIONS +SUPER +SUSPEND +SWAPS +SWITCHES +TABLE (R) +TABLE_CHECKSUM +TABLE_NAME +TABLES +TABLESAMPLE (R) +TABLESPACE +TEMPORARY +TEMPTABLE +TERMINATED (R) +TEXT +THAN +THEN (R) +TIME +TIMESTAMP +TIMESTAMPADD +TIMESTAMPDIFF +TINYBLOB (R) +TINYINT (R) +TINYTEXT (R) +TO (R) +TRAILING (R) +TRANSACTION +TRIGGER (R) +TRIGGERS +TRUE (R) +TRUNCATE +TYPE +TYPES +UNCOMMITTED +UNDEFINED +UNDO (R) +UNDO_BUFFER_SIZE +UNDOFILE +UNICODE +UNINSTALL +UNION (R) +UNIQUE (R) +UNKNOWN +UNLOCK (R) +UNSIGNED (R) +UNTIL +UPDATE (R) +UPGRADE +USAGE (R) +USE (R) +USE_FRM +USER +USER_RESOURCES +USING (R) +UTC_DATE (R) +UTC_TIME (R) +UTC_TIMESTAMP (R) +VALIDATION +VALUE +VALUES (R) +VARBINARY (R) +VARCHAR (R) +VARCHARACTER (R) +VARIABLES +VARYING (R) +VECTOR (R) +VIEW +VIRTUAL (R) +WAIT +WARNINGS +WEEK +WEIGHT_STRING +WHEN (R) +WHERE (R) +WHILE (R) +WITH (R) +WITH PARSER +WITHOUT +WORK +WRAPPER +WRITE (R) +X509 +XA +XID +XML +XOR (R) +YEAR +YEAR_MONTH (R) +ZEROFILL (R) diff --git a/tools/contexts/MySql90300.txt b/tools/contexts/MySql90300.txt new file mode 100644 index 000000000..65ecf0fc5 --- /dev/null +++ b/tools/contexts/MySql90300.txt @@ -0,0 +1,617 @@ +ACCESSIBLE (R) +ACCOUNT +ACTION +ADD (R) +AFTER +AGAINST +AGGREGATE +ALGORITHM +ALL (R) +ALTER (R) +ALWAYS +ANALYSE +ANALYZE (R) +AND (R) +ANY +AS (R) +ASC (R) +ASCII +ASENSITIVE (R) +AT +AUTO +AUTO_INCREMENT +AUTOEXTEND_SIZE +AVG +AVG_ROW_LENGTH +BACKUP +BEFORE (R) +BEGIN +BERNOULLI +BETWEEN (R) +BIGINT (R) +BINARY (R) +BINLOG +BIT +BLOB (R) +BLOCK +BOOL +BOOLEAN +BOTH (R) +BTREE +BY (R) +BYTE +CACHE +CALL (R) +CASCADE (R) +CASCADED +CASE (R) +CATALOG_NAME +CHAIN +CHANGE (R) +CHANGED +CHANNEL +CHAR (R) +CHARACTER (R) +CHARSET +CHECK (R) +CHECKSUM +CIPHER +CLASS_ORIGIN +CLIENT +CLOSE +COALESCE +CODE +COLLATE (R) +COLLATION +COLUMN (R) +COLUMN_FORMAT +COLUMN_NAME +COLUMNS +COMMENT +COMMIT +COMMITTED +COMPACT +COMPLETION +COMPRESSED +COMPRESSION +CONCURRENT +CONDITION (R) +CONNECTION +CONSISTENT +CONSTRAINT (R) +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONTAINS +CONTEXT +CONTINUE (R) +CONVERT (R) +CPU +CREATE (R) +CROSS (R) +CUBE +CURRENT +CURRENT_DATE (R) +CURRENT_TIME (R) +CURRENT_TIMESTAMP (R) +CURRENT_USER (R) +CURSOR (R) +CURSOR_NAME +DATA +DATABASE (R) +DATABASES (R) +DATAFILE +DATE +DATETIME +DAY +DAY_HOUR (R) +DAY_MICROSECOND (R) +DAY_MINUTE (R) +DAY_SECOND (R) +DEALLOCATE +DEC (R) +DECIMAL (R) +DECLARE (R) +DEFAULT (R) +DEFAULT_AUTH +DEFINER +DELAY_KEY_WRITE +DELAYED (R) +DELETE (R) +DES_KEY_FILE +DESC (R) +DESCRIBE (R) +DETERMINISTIC (R) +DIAGNOSTICS +DIRECTORY +DISABLE +DISABLE ON SLAVE +DISCARD +DISK +DISTINCT (R) +DISTINCTROW (R) +DIV (R) +DO +DOUBLE (R) +DROP (R) +DUAL (R) +DUMPFILE +DUPLICATE +DYNAMIC +EACH (R) +ELSE (R) +ELSEIF (R) +ENABLE +ENCLOSED (R) +END +ENDS +ENGINE +ENGINES +ENUM +ERROR +ERRORS +ESCAPE +ESCAPED (R) +EVENT +EVENTS +EVERY +EXCHANGE +EXECUTE +EXISTS (R) +EXIT (R) +EXPANSION +EXPIRE +EXPLAIN (R) +EXPORT +EXTENDED +EXTENT_SIZE +FALSE (R) +FAST +FAULTS +FETCH (R) +FIELDS +FILE +FILE_BLOCK_SIZE +FILTER +FIRST +FIXED +FLOAT (R) +FLOAT4 (R) +FLOAT8 (R) +FLUSH +FOLLOWS +FOR (R) +FORCE (R) +FOREIGN (R) +FORMAT +FOUND +FROM (R) +FULL +FULLTEXT (R) +FUNCTION +GENERAL +GENERATED (R) +GEOMETRY +GEOMETRYCOLLECTION +GET (R) +GET_FORMAT +GLOBAL +GRANT (R) +GRANTS +GROUP (R) +GROUP_REPLICATION +GTIDS +HANDLER +HASH +HAVING (R) +HELP +HIGH_PRIORITY (R) +HOST +HOSTS +HOUR +HOUR_MICROSECOND (R) +HOUR_MINUTE (R) +HOUR_SECOND (R) +IDENTIFIED +IDENTIFIED WITH (K) +IF (R) +IGNORE (R) +IGNORE_SERVER_IDS +IMPORT +IN (R) +INDEX (R) +INDEXES +INFILE (R) +INITIAL_SIZE +INNER (R) +INOUT (R) +INSENSITIVE (R) +INSERT (R) +INSERT_METHOD +INSTALL +INT (R) +INT1 (R) +INT2 (R) +INT3 (R) +INT4 (R) +INT8 (R) +INTEGER (R) +INTERVAL (R) +INTO (R) +INVOKER +INVISIBLE +IO +IO_AFTER_GTIDS (R) +IO_BEFORE_GTIDS (R) +IO_THREAD +IPC +IS (R) +ISOLATION +ISSUER +ITERATE (R) +JOIN (R) +KEY (R) +KEY_BLOCK_SIZE +KEYS (R) +KILL (R) +LANGUAGE +LAST +LEADING (R) +LEAVE (R) +LEAVES +LEFT (R) +LESS +LEVEL +LIKE (R) +LIMIT (R) +LINEAR (R) +LINES (R) +LINESTRING +LIST +LOAD (R) +LOCAL +LOCALTIME (R) +LOCALTIMESTAMP (R) +LOCK (R) +LOCKS +LOG +LOGFILE +LOGS +LONG (R) +LONGBLOB (R) +LONGTEXT (R) +LOOP (R) +LOW_PRIORITY (R) +MANUAL (R) +MASTER +MASTER_SERVER_ID +MATCH (R) +MAX_CONNECTIONS_PER_HOUR +MAX_QUERIES_PER_HOUR +MAX_ROWS +MAX_SIZE +MAX_STATEMENT_TIME +MAX_UPDATES_PER_HOUR +MAX_USER_CONNECTIONS +MAXVALUE (R) +MEDIUM +MEDIUMBLOB (R) +MEDIUMINT (R) +MEDIUMTEXT (R) +MEMORY +MERGE +MESSAGE_TEXT +MICROSECOND +MIDDLEINT (R) +MIGRATE +MIN_ROWS +MINUTE +MINUTE_MICROSECOND (R) +MINUTE_SECOND (R) +MOD (R) +MODE +MODIFIES (R) +MODIFY +MONTH +MULTILINESTRING +MULTIPOINT +MULTIPOLYGON +MUTEX +MYSQL_ERRNO +NAME +NAMES +NATIONAL +NATURAL (R) +NCHAR +NDB +NDBCLUSTER +NEVER +NEW +NEXT +NO +NO_WAIT +NO_WRITE_TO_BINLOG (R) +NODEGROUP +NONBLOCKING +NONE +NOT (R) +NULL (R) +NUMBER +NUMERIC (R) +NVARCHAR +OFFSET +OLD_PASSWORD +ON (R) +ON COMPLETION NOT PRESERVE +ON COMPLETION PRESERVE +ON SCHEDULE +ONE +ONLY +OPEN +OPTIMIZE (R) +OPTIMIZER_COSTS (R) +OPTION (R) +OPTIONALLY (R) +OPTIONS +OR (R) +ORDER (R) +OUT (R) +OUTER (R) +OUTFILE (R) +OVER (R) +OWNER +PACK_KEYS +PAGE +PARALLEL (R) +PARSE_GCOL_EXPR +PARSE_TREE +PARSER +PARTIAL +PARTITION (R) +PARTITIONING +PARTITIONS +PASSWORD +PERSIST +PERSIST_ONLY +PHASE +PLUGIN +PLUGIN_DIR +PLUGINS +POINT +POLYGON +PORT +PRECEDES +PRECISION (R) +PREPARE +PRESERVE +PREV +PRIMARY (R) +PRIVILEGES +PROCEDURE (R) +PROCESSLIST +PROFILE +PROFILES +PROXY +PURGE (R) +QUALIFY (R) +QUARTER +QUERY +QUICK +RANGE (R) +READ (R) +READ_ONLY +READ_WRITE (R) +READS (R) +REAL (R) +REBUILD +RECOVER +REDO_BUFFER_SIZE +REDOFILE +REDUNDANT +REFERENCES (R) +REGEXP (R) +RELAY +RELAY_LOG_FILE +RELAY_LOG_POS +RELAY_THREAD +RELAYLOG +RELEASE (R) +RELOAD +REMOVE +RENAME (R) +REORGANIZE +REPAIR +REPEAT (R) +REPEATABLE +REPLACE (R) +REPLICATE_DO_DB +REPLICATE_DO_TABLE +REPLICATE_IGNORE_DB +REPLICATE_IGNORE_TABLE +REPLICATE_REWRITE_DB +REPLICATE_WILD_DO_TABLE +REPLICATE_WILD_IGNORE_TABLE +REPLICATION +REQUIRE (R) +RESET +RESIGNAL (R) +RESTORE +RESTRICT (R) +RESUME +RETURN (R) +RETURNED_SQLSTATE +RETURNS +REVERSE +REVOKE (R) +RIGHT (R) +RLIKE (R) +ROLLBACK +ROLLUP +ROUTINE +ROW +ROW_COUNT +ROW_FORMAT +ROWS +RTREE +S3 +SAVEPOINT +SCHEDULE +SCHEMA (R) +SCHEMA_NAME +SCHEMAS (R) +SECOND +SECOND_MICROSECOND (R) +SECURITY +SELECT (R) +SENSITIVE (R) +SEPARATOR (R) +SERIAL +SERIALIZABLE +SERVER +SESSION +SET (R) +SHARE +SHOW (R) +SHUTDOWN +SIGNAL (R) +SIGNED +SIMPLE +SLAVE +SLOW +SMALLINT (R) +SNAPSHOT +SOCKET +SOME +SONAME +SOUNDS +SOURCE +SPATIAL (R) +SPECIFIC (R) +SQL (R) +SQL_AFTER_GTIDS +SQL_AFTER_MTS_GAPS +SQL_BEFORE_GTIDS +SQL_BIG_RESULT (R) +SQL_BUFFER_RESULT +SQL_CACHE +SQL_CALC_FOUND_ROWS (R) +SQL_NO_CACHE +SQL_SMALL_RESULT (R) +SQL_THREAD +SQL_TSI_DAY +SQL_TSI_HOUR +SQL_TSI_MINUTE +SQL_TSI_MONTH +SQL_TSI_QUARTER +SQL_TSI_SECOND +SQL_TSI_WEEK +SQL_TSI_YEAR +SQLEXCEPTION (R) +SQLSTATE (R) +SQLWARNING (R) +SSL (R) +STACKED +START +STARTING (R) +STARTS +STATS_AUTO_RECALC +STATS_PERSISTENT +STATS_SAMPLE_PAGES +STATUS +STOP +STORAGE +STORED (R) +STRAIGHT_JOIN (R) +STRING +SUBCLASS_ORIGIN +SUBJECT +SUBPARTITION +SUBPARTITIONS +SUPER +SUSPEND +SWAPS +SWITCHES +TABLE (R) +TABLE_CHECKSUM +TABLE_NAME +TABLES +TABLESAMPLE (R) +TABLESPACE +TEMPORARY +TEMPTABLE +TERMINATED (R) +TEXT +THAN +THEN (R) +TIME +TIMESTAMP +TIMESTAMPADD +TIMESTAMPDIFF +TINYBLOB (R) +TINYINT (R) +TINYTEXT (R) +TO (R) +TRAILING (R) +TRANSACTION +TRIGGER (R) +TRIGGERS +TRUE (R) +TRUNCATE +TYPE +TYPES +UNCOMMITTED +UNDEFINED +UNDO (R) +UNDO_BUFFER_SIZE +UNDOFILE +UNICODE +UNINSTALL +UNION (R) +UNIQUE (R) +UNKNOWN +UNLOCK (R) +UNSIGNED (R) +UNTIL +UPDATE (R) +UPGRADE +USAGE (R) +USE (R) +USE_FRM +USER +USER_RESOURCES +USING (R) +UTC_DATE (R) +UTC_TIME (R) +UTC_TIMESTAMP (R) +VALIDATION +VALUE +VALUES (R) +VARBINARY (R) +VARCHAR (R) +VARCHARACTER (R) +VARIABLES +VARYING (R) +VECTOR (R) +VIEW +VIRTUAL (R) +WAIT +WARNINGS +WEEK +WEIGHT_STRING +WHEN (R) +WHERE (R) +WHILE (R) +WITH (R) +WITH PARSER +WITHOUT +WORK +WRAPPER +WRITE (R) +X509 +XA +XID +XML +XOR (R) +YEAR +YEAR_MONTH (R) +ZEROFILL (R) diff --git a/tools/contexts/_functionsMariaDb110700.txt b/tools/contexts/_functionsMariaDb110700.txt index b04bb02d5..315d320ad 100644 --- a/tools/contexts/_functionsMariaDb110700.txt +++ b/tools/contexts/_functionsMariaDb110700.txt @@ -397,8 +397,8 @@ UTC_DATE (F) UTC_TIME (F) UTC_TIMESTAMP (F) UUID (F) -UUIDv4 (F) -UUIDv7 (F) +UUID_v4 (F) +UUID_v7 (F) UUID_SHORT (F) VALIDATE_PASSWORD_STRENGTH (F) VALUES (F) diff --git a/tools/contexts/_functionsMariaDb110800.txt b/tools/contexts/_functionsMariaDb110800.txt new file mode 100644 index 000000000..0d5094a54 --- /dev/null +++ b/tools/contexts/_functionsMariaDb110800.txt @@ -0,0 +1,425 @@ +ABS (F) +ACOS (F) +ADDDATE (F) +ADDTIME (F) +AES_DECRYPT (F) +AES_ENCRYPT (F) +ANY_VALUE (F) +Area (F) +AsBinary (F) +ASCII (F) +ASIN (F) +AsText (F) +AsWKB (F) +AsWKT (F) +ATAN (F) +ATAN2 (F) +AVG (F) +BENCHMARK (F) +BIN (F) +BINARY (F) +BIT_AND (F) +BIT_COUNT (F) +BIT_LENGTH (F) +BIT_OR (F) +BIT_XOR (F) +Buffer (F) +CAST (F) +CEIL (F) +CEILING (F) +Centroid (F) +CHAR (F) +CHAR_LENGTH (F) +CHARACTER_LENGTH (F) +CHARSET (F) +COALESCE (F) +COERCIBILITY (F) +COLLATION (F) +COMPRESS (F) +CONCAT (F) +CONCAT_WS (F) +CONNECTION_ID (F) +Contains (F) +CONV (F) +CONVERT (F) +CONVERT_TZ (F) +ConvexHull (F) +COS (F) +COT (F) +COUNT (F) +CRC32 (F) +Crosses (F) +CURDATE (F) +CURRENT_DATE (F) +CURRENT_TIME (F) +CURRENT_TIMESTAMP (F) +CURRENT_USER (F) +CURTIME (F) +DATABASE (F) +DATE (F) +DATE_ADD (F) +DATE_FORMAT (F) +DATE_SUB (F) +DATEDIFF (F) +DAY (F) +DAYNAME (F) +DAYOFMONTH (F) +DAYOFWEEK (F) +DAYOFYEAR (F) +DECODE (F) +DEFAULT (F) +DEGREES (F) +DES_DECRYPT (F) +DES_ENCRYPT (F) +Dimension (F) +Disjoint (F) +Distance (F) +ELT (F) +ENCODE (F) +ENCRYPT (F) +EndPoint (F) +Envelope (F) +Equals (F) +EXP (F) +EXPORT_SET (F) +ExteriorRing (F) +EXTRACT (F) +ExtractValue (F) +FIELD (F) +FIND_IN_SET (F) +FLOOR (F) +FORMAT (F) +FORMAT_BYTES (F) +FOUND_ROWS (F) +FROM_BASE64 (F) +FROM_DAYS (F) +FROM_UNIXTIME (F) +GeomCollFromText (F) +GeomCollFromWKB (F) +GeometryCollection (F) +GeometryCollectionFromText (F) +GeometryCollectionFromWKB (F) +GeometryFromText (F) +GeometryN (F) +GeometryType (F) +GeomFromText (F) +GeomFromWKB (F) +GET_FORMAT (F) +GET_LOCK (F) +GLength (F) +GREATEST (F) +GROUP_CONCAT (F) +GTID_SUBSET (F) +GTID_SUBTRACT (F) +HEX (F) +HOUR (F) +IF (F) +IFNULL (F) +IN (F) +INET6_ATON (F) +INET6_NTOA (F) +INET_ATON (F) +INET_NTOA (F) +INSERT (F) +INSTR (F) +InteriorRingN (F) +Intersects (F) +INTERVAL (F) +IS_FREE_LOCK (F) +IS_IPV4 (F) +IS_IPV4_COMPAT (F) +IS_IPV4_MAPPED (F) +IS_IPV6 (F) +IS_USED_LOCK (F) +IsClosed (F) +IsEmpty (F) +ISNULL (F) +IsSimple (F) +JSON_ARRAY (F) +JSON_ARRAY_APPEND (F) +JSON_ARRAY_INSERT (F) +JSON_CONTAINS (F) +JSON_CONTAINS_PATH (F) +JSON_DEPTH (F) +JSON_EXTRACT (F) +JSON_INSERT (F) +JSON_KEYS (F) +JSON_LENGTH (F) +JSON_MERGE (F) +JSON_MERGE_PATCH (F) +JSON_MERGE_PRESERVE (F) +JSON_OBJECT (F) +JSON_PRETTY (F) +JSON_QUOTE (F) +JSON_REMOVE (F) +JSON_REPLACE (F) +JSON_SEARCH (F) +JSON_SET (F) +JSON_STORAGE_FREE (F) +JSON_STORAGE_SIZE (F) +JSON_TYPE (F) +JSON_UNQUOTE (F) +JSON_VALID (F) +LAST_INSERT_ID (F) +LCASE (F) +LEAST (F) +LEFT (F) +LENGTH (F) +LineFromText (F) +LineFromWKB (F) +LineString (F) +LineStringFromWKB (F) +LN (F) +LOAD_FILE (F) +LOCALTIME (F) +LOCALTIMESTAMP (F) +LOCATE (F) +LOG (F) +LOG10 (F) +LOG2 (F) +LOWER (F) +LPAD (F) +LTRIM (F) +MAKE_SET (F) +MAKEDATE (F) +MAKETIME (F) +MASTER_POS_WAIT (F) +MAX (F) +MBRContains (F) +MBRCoveredBy (F) +MBRCovers (F) +MBRDisjoint (F) +MBREqual (F) +MBREquals (F) +MBRIntersects (F) +MBROverlaps (F) +MBRTouches (F) +MBRWithin (F) +MD5 (F) +MICROSECOND (F) +MID (F) +MIN (F) +MINUTE (F) +MLineFromText (F) +MLineFromWKB (F) +MOD (F) +MONTH (F) +MONTHNAME (F) +MPointFromText (F) +MPointFromWKB (F) +MPolyFromText (F) +MPolyFromWKB (F) +MultiLineString (F) +MultiLineStringFromText (F) +MultiLineStringFromWKB (F) +MultiPoint (F) +MultiPointFromText (F) +MultiPointFromWKB (F) +MultiPolygon (F) +MultiPolygonFromText (F) +MultiPolygonFromWKB (F) +NAME_CONST (F) +NOT IN (F) +NOW (F) +NULLIF (F) +NumGeometries (F) +NumInteriorRings (F) +NumPoints (F) +OCT (F) +OCTET_LENGTH (F) +OLD_PASSWORD (F) +ORD (F) +Overlaps (F) +PASSWORD (F) +PERIOD_ADD (F) +PERIOD_DIFF (F) +PI (F) +Point (F) +PointFromText (F) +PointFromWKB (F) +PointN (F) +PolyFromText (F) +PolyFromWKB (F) +Polygon (F) +PolygonFromText (F) +PolygonFromWKB (F) +POSITION (F) +POW (F) +POWER (F) +QUARTER (F) +QUOTE (F) +RADIANS (F) +RAND (F) +RANDOM_BYTES (F) +RELEASE_ALL_LOCKS (F) +RELEASE_LOCK (F) +REPEAT (F) +REPLACE (F) +REVERSE (F) +RIGHT (F) +ROUND (F) +ROW_COUNT (F) +RPAD (F) +RTRIM (F) +SCHEMA (F) +SEC_TO_TIME (F) +SECOND (F) +SESSION_USER (F) +SHA (F) +SHA1 (F) +SHA2 (F) +SIGN (F) +SIN (F) +SLEEP (F) +SOUNDEX (F) +SPACE (F) +SQRT (F) +SRID (F) +ST_Area (F) +ST_AsBinary (F) +ST_AsGeoJSON (F) +ST_AsText (F) +ST_AsWKB (F) +ST_AsWKT (F) +ST_Buffer (F) +ST_Buffer_Strategy (F) +ST_Centroid (F) +ST_Collect (F) +ST_Contains (F) +ST_ConvexHull (F) +ST_Crosses (F) +ST_Difference (F) +ST_Dimension (F) +ST_Disjoint (F) +ST_Distance (F) +ST_Distance_Sphere (F) +ST_EndPoint (F) +ST_Envelope (F) +ST_Equals (F) +ST_ExteriorRing (F) +ST_GeoHash (F) +ST_GeomCollFromText (F) +ST_GeomCollFromTxt (F) +ST_GeomCollFromWKB (F) +ST_GeometryCollectionFromText (F) +ST_GeometryCollectionFromWKB (F) +ST_GeometryFromText (F) +ST_GeometryN (F) +ST_GeometryType (F) +ST_GeomFromGeoJSON (F) +ST_GeomFromText (F) +ST_GeomFromWKB (F) +ST_InteriorRingN (F) +ST_Intersection (F) +ST_Intersects (F) +ST_IsClosed (F) +ST_IsEmpty (F) +ST_IsSimple (F) +ST_IsValid (F) +ST_LatFromGeoHash (F) +ST_Length (F) +ST_LineFromText (F) +ST_LineFromWKB (F) +ST_LineStringFromWKB (F) +ST_LongFromGeoHash (F) +ST_MakeEnvelope (F) +ST_MLineFromText (F) +ST_MLineFromWKB (F) +ST_MPointFromText (F) +ST_MPointFromWKB (F) +ST_MPolyFromText (F) +ST_MPolyFromWKB (F) +ST_MultiLineStringFromText (F) +ST_MultiLineStringFromWKB (F) +ST_MultiPointFromText (F) +ST_MultiPointFromWKB (F) +ST_MultiPolygonFromText (F) +ST_MultiPolygonFromWKB (F) +ST_NumGeometries (F) +ST_NumInteriorRings (F) +ST_NumPoints (F) +ST_Overlaps (F) +ST_PointFromGeoHash (F) +ST_PointFromText (F) +ST_PointFromWKB (F) +ST_PointN (F) +ST_PolyFromText (F) +ST_PolyFromWKB (F) +ST_PolygonFromText (F) +ST_PolygonFromWKB (F) +ST_Simplify (F) +ST_SRID (F) +ST_StartPoint (F) +ST_SymDifference (F) +ST_Touches (F) +ST_Union (F) +ST_Validate (F) +ST_Within (F) +ST_X (F) +ST_Y (F) +StartPoint (F) +STD (F) +STDDEV (F) +STDDEV_POP (F) +STDDEV_SAMP (F) +STR_TO_DATE (F) +STRCMP (F) +SUBDATE (F) +SUBSTR (F) +SUBSTRING (F) +SUBSTRING_INDEX (F) +SUBTIME (F) +SUM (F) +SYSDATE (F) +SYSTEM_USER (F) +TAN (F) +TIME (F) +TIME_FORMAT (F) +TIME_TO_SEC (F) +TIMEDIFF (F) +TIMESTAMP (F) +TIMESTAMPADD (F) +TIMESTAMPDIFF (F) +TO_BASE64 (F) +TO_DAYS (F) +TO_SECONDS (F) +Touches (F) +TRIM (F) +TRUNCATE (F) +UCASE (F) +UNCOMPRESS (F) +UNCOMPRESSED_LENGTH (F) +UNHEX (F) +UNIX_TIMESTAMP (F) +UpdateXML (F) +UPPER (F) +USER (F) +UTC_DATE (F) +UTC_TIME (F) +UTC_TIMESTAMP (F) +UUID (F) +UUID_v4 (F) +UUID_v7 (F) +UUID_SHORT (F) +VALIDATE_PASSWORD_STRENGTH (F) +VALUES (F) +VAR_POP (F) +VAR_SAMP (F) +VARIANCE (F) +VEC_DISTANCE (F) +VEC_DISTANCE_COSINE (F) +VEC_DISTANCE_EUCLIDEAN (F) +VEC_FromText (F) +VEC_ToText (F) +VERSION (F) +WAIT_FOR_EXECUTED_GTID_SET (F) +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS (F) +WEEK (F) +WEEKDAY (F) +WEEKOFYEAR (F) +WEIGHT_STRING (F) +Within (F) +X (F) +Y (F) +YEAR (F) +YEARWEEK (F) diff --git a/tools/contexts/_functionsMariaDb120000.txt b/tools/contexts/_functionsMariaDb120000.txt new file mode 100644 index 000000000..0d5094a54 --- /dev/null +++ b/tools/contexts/_functionsMariaDb120000.txt @@ -0,0 +1,425 @@ +ABS (F) +ACOS (F) +ADDDATE (F) +ADDTIME (F) +AES_DECRYPT (F) +AES_ENCRYPT (F) +ANY_VALUE (F) +Area (F) +AsBinary (F) +ASCII (F) +ASIN (F) +AsText (F) +AsWKB (F) +AsWKT (F) +ATAN (F) +ATAN2 (F) +AVG (F) +BENCHMARK (F) +BIN (F) +BINARY (F) +BIT_AND (F) +BIT_COUNT (F) +BIT_LENGTH (F) +BIT_OR (F) +BIT_XOR (F) +Buffer (F) +CAST (F) +CEIL (F) +CEILING (F) +Centroid (F) +CHAR (F) +CHAR_LENGTH (F) +CHARACTER_LENGTH (F) +CHARSET (F) +COALESCE (F) +COERCIBILITY (F) +COLLATION (F) +COMPRESS (F) +CONCAT (F) +CONCAT_WS (F) +CONNECTION_ID (F) +Contains (F) +CONV (F) +CONVERT (F) +CONVERT_TZ (F) +ConvexHull (F) +COS (F) +COT (F) +COUNT (F) +CRC32 (F) +Crosses (F) +CURDATE (F) +CURRENT_DATE (F) +CURRENT_TIME (F) +CURRENT_TIMESTAMP (F) +CURRENT_USER (F) +CURTIME (F) +DATABASE (F) +DATE (F) +DATE_ADD (F) +DATE_FORMAT (F) +DATE_SUB (F) +DATEDIFF (F) +DAY (F) +DAYNAME (F) +DAYOFMONTH (F) +DAYOFWEEK (F) +DAYOFYEAR (F) +DECODE (F) +DEFAULT (F) +DEGREES (F) +DES_DECRYPT (F) +DES_ENCRYPT (F) +Dimension (F) +Disjoint (F) +Distance (F) +ELT (F) +ENCODE (F) +ENCRYPT (F) +EndPoint (F) +Envelope (F) +Equals (F) +EXP (F) +EXPORT_SET (F) +ExteriorRing (F) +EXTRACT (F) +ExtractValue (F) +FIELD (F) +FIND_IN_SET (F) +FLOOR (F) +FORMAT (F) +FORMAT_BYTES (F) +FOUND_ROWS (F) +FROM_BASE64 (F) +FROM_DAYS (F) +FROM_UNIXTIME (F) +GeomCollFromText (F) +GeomCollFromWKB (F) +GeometryCollection (F) +GeometryCollectionFromText (F) +GeometryCollectionFromWKB (F) +GeometryFromText (F) +GeometryN (F) +GeometryType (F) +GeomFromText (F) +GeomFromWKB (F) +GET_FORMAT (F) +GET_LOCK (F) +GLength (F) +GREATEST (F) +GROUP_CONCAT (F) +GTID_SUBSET (F) +GTID_SUBTRACT (F) +HEX (F) +HOUR (F) +IF (F) +IFNULL (F) +IN (F) +INET6_ATON (F) +INET6_NTOA (F) +INET_ATON (F) +INET_NTOA (F) +INSERT (F) +INSTR (F) +InteriorRingN (F) +Intersects (F) +INTERVAL (F) +IS_FREE_LOCK (F) +IS_IPV4 (F) +IS_IPV4_COMPAT (F) +IS_IPV4_MAPPED (F) +IS_IPV6 (F) +IS_USED_LOCK (F) +IsClosed (F) +IsEmpty (F) +ISNULL (F) +IsSimple (F) +JSON_ARRAY (F) +JSON_ARRAY_APPEND (F) +JSON_ARRAY_INSERT (F) +JSON_CONTAINS (F) +JSON_CONTAINS_PATH (F) +JSON_DEPTH (F) +JSON_EXTRACT (F) +JSON_INSERT (F) +JSON_KEYS (F) +JSON_LENGTH (F) +JSON_MERGE (F) +JSON_MERGE_PATCH (F) +JSON_MERGE_PRESERVE (F) +JSON_OBJECT (F) +JSON_PRETTY (F) +JSON_QUOTE (F) +JSON_REMOVE (F) +JSON_REPLACE (F) +JSON_SEARCH (F) +JSON_SET (F) +JSON_STORAGE_FREE (F) +JSON_STORAGE_SIZE (F) +JSON_TYPE (F) +JSON_UNQUOTE (F) +JSON_VALID (F) +LAST_INSERT_ID (F) +LCASE (F) +LEAST (F) +LEFT (F) +LENGTH (F) +LineFromText (F) +LineFromWKB (F) +LineString (F) +LineStringFromWKB (F) +LN (F) +LOAD_FILE (F) +LOCALTIME (F) +LOCALTIMESTAMP (F) +LOCATE (F) +LOG (F) +LOG10 (F) +LOG2 (F) +LOWER (F) +LPAD (F) +LTRIM (F) +MAKE_SET (F) +MAKEDATE (F) +MAKETIME (F) +MASTER_POS_WAIT (F) +MAX (F) +MBRContains (F) +MBRCoveredBy (F) +MBRCovers (F) +MBRDisjoint (F) +MBREqual (F) +MBREquals (F) +MBRIntersects (F) +MBROverlaps (F) +MBRTouches (F) +MBRWithin (F) +MD5 (F) +MICROSECOND (F) +MID (F) +MIN (F) +MINUTE (F) +MLineFromText (F) +MLineFromWKB (F) +MOD (F) +MONTH (F) +MONTHNAME (F) +MPointFromText (F) +MPointFromWKB (F) +MPolyFromText (F) +MPolyFromWKB (F) +MultiLineString (F) +MultiLineStringFromText (F) +MultiLineStringFromWKB (F) +MultiPoint (F) +MultiPointFromText (F) +MultiPointFromWKB (F) +MultiPolygon (F) +MultiPolygonFromText (F) +MultiPolygonFromWKB (F) +NAME_CONST (F) +NOT IN (F) +NOW (F) +NULLIF (F) +NumGeometries (F) +NumInteriorRings (F) +NumPoints (F) +OCT (F) +OCTET_LENGTH (F) +OLD_PASSWORD (F) +ORD (F) +Overlaps (F) +PASSWORD (F) +PERIOD_ADD (F) +PERIOD_DIFF (F) +PI (F) +Point (F) +PointFromText (F) +PointFromWKB (F) +PointN (F) +PolyFromText (F) +PolyFromWKB (F) +Polygon (F) +PolygonFromText (F) +PolygonFromWKB (F) +POSITION (F) +POW (F) +POWER (F) +QUARTER (F) +QUOTE (F) +RADIANS (F) +RAND (F) +RANDOM_BYTES (F) +RELEASE_ALL_LOCKS (F) +RELEASE_LOCK (F) +REPEAT (F) +REPLACE (F) +REVERSE (F) +RIGHT (F) +ROUND (F) +ROW_COUNT (F) +RPAD (F) +RTRIM (F) +SCHEMA (F) +SEC_TO_TIME (F) +SECOND (F) +SESSION_USER (F) +SHA (F) +SHA1 (F) +SHA2 (F) +SIGN (F) +SIN (F) +SLEEP (F) +SOUNDEX (F) +SPACE (F) +SQRT (F) +SRID (F) +ST_Area (F) +ST_AsBinary (F) +ST_AsGeoJSON (F) +ST_AsText (F) +ST_AsWKB (F) +ST_AsWKT (F) +ST_Buffer (F) +ST_Buffer_Strategy (F) +ST_Centroid (F) +ST_Collect (F) +ST_Contains (F) +ST_ConvexHull (F) +ST_Crosses (F) +ST_Difference (F) +ST_Dimension (F) +ST_Disjoint (F) +ST_Distance (F) +ST_Distance_Sphere (F) +ST_EndPoint (F) +ST_Envelope (F) +ST_Equals (F) +ST_ExteriorRing (F) +ST_GeoHash (F) +ST_GeomCollFromText (F) +ST_GeomCollFromTxt (F) +ST_GeomCollFromWKB (F) +ST_GeometryCollectionFromText (F) +ST_GeometryCollectionFromWKB (F) +ST_GeometryFromText (F) +ST_GeometryN (F) +ST_GeometryType (F) +ST_GeomFromGeoJSON (F) +ST_GeomFromText (F) +ST_GeomFromWKB (F) +ST_InteriorRingN (F) +ST_Intersection (F) +ST_Intersects (F) +ST_IsClosed (F) +ST_IsEmpty (F) +ST_IsSimple (F) +ST_IsValid (F) +ST_LatFromGeoHash (F) +ST_Length (F) +ST_LineFromText (F) +ST_LineFromWKB (F) +ST_LineStringFromWKB (F) +ST_LongFromGeoHash (F) +ST_MakeEnvelope (F) +ST_MLineFromText (F) +ST_MLineFromWKB (F) +ST_MPointFromText (F) +ST_MPointFromWKB (F) +ST_MPolyFromText (F) +ST_MPolyFromWKB (F) +ST_MultiLineStringFromText (F) +ST_MultiLineStringFromWKB (F) +ST_MultiPointFromText (F) +ST_MultiPointFromWKB (F) +ST_MultiPolygonFromText (F) +ST_MultiPolygonFromWKB (F) +ST_NumGeometries (F) +ST_NumInteriorRings (F) +ST_NumPoints (F) +ST_Overlaps (F) +ST_PointFromGeoHash (F) +ST_PointFromText (F) +ST_PointFromWKB (F) +ST_PointN (F) +ST_PolyFromText (F) +ST_PolyFromWKB (F) +ST_PolygonFromText (F) +ST_PolygonFromWKB (F) +ST_Simplify (F) +ST_SRID (F) +ST_StartPoint (F) +ST_SymDifference (F) +ST_Touches (F) +ST_Union (F) +ST_Validate (F) +ST_Within (F) +ST_X (F) +ST_Y (F) +StartPoint (F) +STD (F) +STDDEV (F) +STDDEV_POP (F) +STDDEV_SAMP (F) +STR_TO_DATE (F) +STRCMP (F) +SUBDATE (F) +SUBSTR (F) +SUBSTRING (F) +SUBSTRING_INDEX (F) +SUBTIME (F) +SUM (F) +SYSDATE (F) +SYSTEM_USER (F) +TAN (F) +TIME (F) +TIME_FORMAT (F) +TIME_TO_SEC (F) +TIMEDIFF (F) +TIMESTAMP (F) +TIMESTAMPADD (F) +TIMESTAMPDIFF (F) +TO_BASE64 (F) +TO_DAYS (F) +TO_SECONDS (F) +Touches (F) +TRIM (F) +TRUNCATE (F) +UCASE (F) +UNCOMPRESS (F) +UNCOMPRESSED_LENGTH (F) +UNHEX (F) +UNIX_TIMESTAMP (F) +UpdateXML (F) +UPPER (F) +USER (F) +UTC_DATE (F) +UTC_TIME (F) +UTC_TIMESTAMP (F) +UUID (F) +UUID_v4 (F) +UUID_v7 (F) +UUID_SHORT (F) +VALIDATE_PASSWORD_STRENGTH (F) +VALUES (F) +VAR_POP (F) +VAR_SAMP (F) +VARIANCE (F) +VEC_DISTANCE (F) +VEC_DISTANCE_COSINE (F) +VEC_DISTANCE_EUCLIDEAN (F) +VEC_FromText (F) +VEC_ToText (F) +VERSION (F) +WAIT_FOR_EXECUTED_GTID_SET (F) +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS (F) +WEEK (F) +WEEKDAY (F) +WEEKOFYEAR (F) +WEIGHT_STRING (F) +Within (F) +X (F) +Y (F) +YEAR (F) +YEARWEEK (F) diff --git a/tools/contexts/_functionsMariaDb120100.txt b/tools/contexts/_functionsMariaDb120100.txt new file mode 100644 index 000000000..0d5094a54 --- /dev/null +++ b/tools/contexts/_functionsMariaDb120100.txt @@ -0,0 +1,425 @@ +ABS (F) +ACOS (F) +ADDDATE (F) +ADDTIME (F) +AES_DECRYPT (F) +AES_ENCRYPT (F) +ANY_VALUE (F) +Area (F) +AsBinary (F) +ASCII (F) +ASIN (F) +AsText (F) +AsWKB (F) +AsWKT (F) +ATAN (F) +ATAN2 (F) +AVG (F) +BENCHMARK (F) +BIN (F) +BINARY (F) +BIT_AND (F) +BIT_COUNT (F) +BIT_LENGTH (F) +BIT_OR (F) +BIT_XOR (F) +Buffer (F) +CAST (F) +CEIL (F) +CEILING (F) +Centroid (F) +CHAR (F) +CHAR_LENGTH (F) +CHARACTER_LENGTH (F) +CHARSET (F) +COALESCE (F) +COERCIBILITY (F) +COLLATION (F) +COMPRESS (F) +CONCAT (F) +CONCAT_WS (F) +CONNECTION_ID (F) +Contains (F) +CONV (F) +CONVERT (F) +CONVERT_TZ (F) +ConvexHull (F) +COS (F) +COT (F) +COUNT (F) +CRC32 (F) +Crosses (F) +CURDATE (F) +CURRENT_DATE (F) +CURRENT_TIME (F) +CURRENT_TIMESTAMP (F) +CURRENT_USER (F) +CURTIME (F) +DATABASE (F) +DATE (F) +DATE_ADD (F) +DATE_FORMAT (F) +DATE_SUB (F) +DATEDIFF (F) +DAY (F) +DAYNAME (F) +DAYOFMONTH (F) +DAYOFWEEK (F) +DAYOFYEAR (F) +DECODE (F) +DEFAULT (F) +DEGREES (F) +DES_DECRYPT (F) +DES_ENCRYPT (F) +Dimension (F) +Disjoint (F) +Distance (F) +ELT (F) +ENCODE (F) +ENCRYPT (F) +EndPoint (F) +Envelope (F) +Equals (F) +EXP (F) +EXPORT_SET (F) +ExteriorRing (F) +EXTRACT (F) +ExtractValue (F) +FIELD (F) +FIND_IN_SET (F) +FLOOR (F) +FORMAT (F) +FORMAT_BYTES (F) +FOUND_ROWS (F) +FROM_BASE64 (F) +FROM_DAYS (F) +FROM_UNIXTIME (F) +GeomCollFromText (F) +GeomCollFromWKB (F) +GeometryCollection (F) +GeometryCollectionFromText (F) +GeometryCollectionFromWKB (F) +GeometryFromText (F) +GeometryN (F) +GeometryType (F) +GeomFromText (F) +GeomFromWKB (F) +GET_FORMAT (F) +GET_LOCK (F) +GLength (F) +GREATEST (F) +GROUP_CONCAT (F) +GTID_SUBSET (F) +GTID_SUBTRACT (F) +HEX (F) +HOUR (F) +IF (F) +IFNULL (F) +IN (F) +INET6_ATON (F) +INET6_NTOA (F) +INET_ATON (F) +INET_NTOA (F) +INSERT (F) +INSTR (F) +InteriorRingN (F) +Intersects (F) +INTERVAL (F) +IS_FREE_LOCK (F) +IS_IPV4 (F) +IS_IPV4_COMPAT (F) +IS_IPV4_MAPPED (F) +IS_IPV6 (F) +IS_USED_LOCK (F) +IsClosed (F) +IsEmpty (F) +ISNULL (F) +IsSimple (F) +JSON_ARRAY (F) +JSON_ARRAY_APPEND (F) +JSON_ARRAY_INSERT (F) +JSON_CONTAINS (F) +JSON_CONTAINS_PATH (F) +JSON_DEPTH (F) +JSON_EXTRACT (F) +JSON_INSERT (F) +JSON_KEYS (F) +JSON_LENGTH (F) +JSON_MERGE (F) +JSON_MERGE_PATCH (F) +JSON_MERGE_PRESERVE (F) +JSON_OBJECT (F) +JSON_PRETTY (F) +JSON_QUOTE (F) +JSON_REMOVE (F) +JSON_REPLACE (F) +JSON_SEARCH (F) +JSON_SET (F) +JSON_STORAGE_FREE (F) +JSON_STORAGE_SIZE (F) +JSON_TYPE (F) +JSON_UNQUOTE (F) +JSON_VALID (F) +LAST_INSERT_ID (F) +LCASE (F) +LEAST (F) +LEFT (F) +LENGTH (F) +LineFromText (F) +LineFromWKB (F) +LineString (F) +LineStringFromWKB (F) +LN (F) +LOAD_FILE (F) +LOCALTIME (F) +LOCALTIMESTAMP (F) +LOCATE (F) +LOG (F) +LOG10 (F) +LOG2 (F) +LOWER (F) +LPAD (F) +LTRIM (F) +MAKE_SET (F) +MAKEDATE (F) +MAKETIME (F) +MASTER_POS_WAIT (F) +MAX (F) +MBRContains (F) +MBRCoveredBy (F) +MBRCovers (F) +MBRDisjoint (F) +MBREqual (F) +MBREquals (F) +MBRIntersects (F) +MBROverlaps (F) +MBRTouches (F) +MBRWithin (F) +MD5 (F) +MICROSECOND (F) +MID (F) +MIN (F) +MINUTE (F) +MLineFromText (F) +MLineFromWKB (F) +MOD (F) +MONTH (F) +MONTHNAME (F) +MPointFromText (F) +MPointFromWKB (F) +MPolyFromText (F) +MPolyFromWKB (F) +MultiLineString (F) +MultiLineStringFromText (F) +MultiLineStringFromWKB (F) +MultiPoint (F) +MultiPointFromText (F) +MultiPointFromWKB (F) +MultiPolygon (F) +MultiPolygonFromText (F) +MultiPolygonFromWKB (F) +NAME_CONST (F) +NOT IN (F) +NOW (F) +NULLIF (F) +NumGeometries (F) +NumInteriorRings (F) +NumPoints (F) +OCT (F) +OCTET_LENGTH (F) +OLD_PASSWORD (F) +ORD (F) +Overlaps (F) +PASSWORD (F) +PERIOD_ADD (F) +PERIOD_DIFF (F) +PI (F) +Point (F) +PointFromText (F) +PointFromWKB (F) +PointN (F) +PolyFromText (F) +PolyFromWKB (F) +Polygon (F) +PolygonFromText (F) +PolygonFromWKB (F) +POSITION (F) +POW (F) +POWER (F) +QUARTER (F) +QUOTE (F) +RADIANS (F) +RAND (F) +RANDOM_BYTES (F) +RELEASE_ALL_LOCKS (F) +RELEASE_LOCK (F) +REPEAT (F) +REPLACE (F) +REVERSE (F) +RIGHT (F) +ROUND (F) +ROW_COUNT (F) +RPAD (F) +RTRIM (F) +SCHEMA (F) +SEC_TO_TIME (F) +SECOND (F) +SESSION_USER (F) +SHA (F) +SHA1 (F) +SHA2 (F) +SIGN (F) +SIN (F) +SLEEP (F) +SOUNDEX (F) +SPACE (F) +SQRT (F) +SRID (F) +ST_Area (F) +ST_AsBinary (F) +ST_AsGeoJSON (F) +ST_AsText (F) +ST_AsWKB (F) +ST_AsWKT (F) +ST_Buffer (F) +ST_Buffer_Strategy (F) +ST_Centroid (F) +ST_Collect (F) +ST_Contains (F) +ST_ConvexHull (F) +ST_Crosses (F) +ST_Difference (F) +ST_Dimension (F) +ST_Disjoint (F) +ST_Distance (F) +ST_Distance_Sphere (F) +ST_EndPoint (F) +ST_Envelope (F) +ST_Equals (F) +ST_ExteriorRing (F) +ST_GeoHash (F) +ST_GeomCollFromText (F) +ST_GeomCollFromTxt (F) +ST_GeomCollFromWKB (F) +ST_GeometryCollectionFromText (F) +ST_GeometryCollectionFromWKB (F) +ST_GeometryFromText (F) +ST_GeometryN (F) +ST_GeometryType (F) +ST_GeomFromGeoJSON (F) +ST_GeomFromText (F) +ST_GeomFromWKB (F) +ST_InteriorRingN (F) +ST_Intersection (F) +ST_Intersects (F) +ST_IsClosed (F) +ST_IsEmpty (F) +ST_IsSimple (F) +ST_IsValid (F) +ST_LatFromGeoHash (F) +ST_Length (F) +ST_LineFromText (F) +ST_LineFromWKB (F) +ST_LineStringFromWKB (F) +ST_LongFromGeoHash (F) +ST_MakeEnvelope (F) +ST_MLineFromText (F) +ST_MLineFromWKB (F) +ST_MPointFromText (F) +ST_MPointFromWKB (F) +ST_MPolyFromText (F) +ST_MPolyFromWKB (F) +ST_MultiLineStringFromText (F) +ST_MultiLineStringFromWKB (F) +ST_MultiPointFromText (F) +ST_MultiPointFromWKB (F) +ST_MultiPolygonFromText (F) +ST_MultiPolygonFromWKB (F) +ST_NumGeometries (F) +ST_NumInteriorRings (F) +ST_NumPoints (F) +ST_Overlaps (F) +ST_PointFromGeoHash (F) +ST_PointFromText (F) +ST_PointFromWKB (F) +ST_PointN (F) +ST_PolyFromText (F) +ST_PolyFromWKB (F) +ST_PolygonFromText (F) +ST_PolygonFromWKB (F) +ST_Simplify (F) +ST_SRID (F) +ST_StartPoint (F) +ST_SymDifference (F) +ST_Touches (F) +ST_Union (F) +ST_Validate (F) +ST_Within (F) +ST_X (F) +ST_Y (F) +StartPoint (F) +STD (F) +STDDEV (F) +STDDEV_POP (F) +STDDEV_SAMP (F) +STR_TO_DATE (F) +STRCMP (F) +SUBDATE (F) +SUBSTR (F) +SUBSTRING (F) +SUBSTRING_INDEX (F) +SUBTIME (F) +SUM (F) +SYSDATE (F) +SYSTEM_USER (F) +TAN (F) +TIME (F) +TIME_FORMAT (F) +TIME_TO_SEC (F) +TIMEDIFF (F) +TIMESTAMP (F) +TIMESTAMPADD (F) +TIMESTAMPDIFF (F) +TO_BASE64 (F) +TO_DAYS (F) +TO_SECONDS (F) +Touches (F) +TRIM (F) +TRUNCATE (F) +UCASE (F) +UNCOMPRESS (F) +UNCOMPRESSED_LENGTH (F) +UNHEX (F) +UNIX_TIMESTAMP (F) +UpdateXML (F) +UPPER (F) +USER (F) +UTC_DATE (F) +UTC_TIME (F) +UTC_TIMESTAMP (F) +UUID (F) +UUID_v4 (F) +UUID_v7 (F) +UUID_SHORT (F) +VALIDATE_PASSWORD_STRENGTH (F) +VALUES (F) +VAR_POP (F) +VAR_SAMP (F) +VARIANCE (F) +VEC_DISTANCE (F) +VEC_DISTANCE_COSINE (F) +VEC_DISTANCE_EUCLIDEAN (F) +VEC_FromText (F) +VEC_ToText (F) +VERSION (F) +WAIT_FOR_EXECUTED_GTID_SET (F) +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS (F) +WEEK (F) +WEEKDAY (F) +WEEKOFYEAR (F) +WEIGHT_STRING (F) +Within (F) +X (F) +Y (F) +YEAR (F) +YEARWEEK (F) diff --git a/tools/contexts/_functionsMySql90200.txt b/tools/contexts/_functionsMySql90200.txt new file mode 100644 index 000000000..cc656237f --- /dev/null +++ b/tools/contexts/_functionsMySql90200.txt @@ -0,0 +1,424 @@ +ABS (F) +ACOS (F) +ADDDATE (F) +ADDTIME (F) +AES_DECRYPT (F) +AES_ENCRYPT (F) +ANY_VALUE (F) +Area (F) +AsBinary (F) +ASCII (F) +ASIN (F) +AsText (F) +AsWKB (F) +AsWKT (F) +ATAN (F) +ATAN2 (F) +AVG (F) +BENCHMARK (F) +BIN (F) +BINARY (F) +BIN_TO_UUID (F) +BIT_AND (F) +BIT_COUNT (F) +BIT_LENGTH (F) +BIT_OR (F) +BIT_XOR (F) +Buffer (F) +CAST (F) +CEIL (F) +CEILING (F) +Centroid (F) +CHAR (F) +CHAR_LENGTH (F) +CHARACTER_LENGTH (F) +CHARSET (F) +COALESCE (F) +COERCIBILITY (F) +COLLATION (F) +COMPRESS (F) +CONCAT (F) +CONCAT_WS (F) +CONNECTION_ID (F) +Contains (F) +CONV (F) +CONVERT (F) +CONVERT_TZ (F) +ConvexHull (F) +COS (F) +COT (F) +COUNT (F) +CRC32 (F) +Crosses (F) +CURDATE (F) +CURRENT_DATE (F) +CURRENT_TIME (F) +CURRENT_TIMESTAMP (F) +CURRENT_USER (F) +CURTIME (F) +DATABASE (F) +DATE (F) +DATE_ADD (F) +DATE_FORMAT (F) +DATE_SUB (F) +DATEDIFF (F) +DAY (F) +DAYNAME (F) +DAYOFMONTH (F) +DAYOFWEEK (F) +DAYOFYEAR (F) +DECODE (F) +DEFAULT (F) +DEGREES (F) +DES_DECRYPT (F) +DES_ENCRYPT (F) +Dimension (F) +Disjoint (F) +Distance (F) +ELT (F) +ENCODE (F) +ENCRYPT (F) +EndPoint (F) +Envelope (F) +Equals (F) +EXP (F) +EXPORT_SET (F) +ExteriorRing (F) +EXTRACT (F) +ExtractValue (F) +FIELD (F) +FIND_IN_SET (F) +FLOOR (F) +FORMAT (F) +FOUND_ROWS (F) +FROM_BASE64 (F) +FROM_DAYS (F) +FROM_UNIXTIME (F) +FROM_VECTOR (F) +GeomCollFromText (F) +GeomCollFromWKB (F) +GeometryCollection (F) +GeometryCollectionFromText (F) +GeometryCollectionFromWKB (F) +GeometryFromText (F) +GeometryN (F) +GeometryType (F) +GeomFromText (F) +GeomFromWKB (F) +GET_FORMAT (F) +GET_LOCK (F) +GLength (F) +GREATEST (F) +GROUP_CONCAT (F) +GTID_SUBSET (F) +GTID_SUBTRACT (F) +HEX (F) +HOUR (F) +IF (F) +IFNULL (F) +IN (F) +INET6_ATON (F) +INET6_NTOA (F) +INET_ATON (F) +INET_NTOA (F) +INSERT (F) +INSTR (F) +InteriorRingN (F) +Intersects (F) +INTERVAL (F) +IS_FREE_LOCK (F) +IS_IPV4 (F) +IS_IPV4_COMPAT (F) +IS_IPV4_MAPPED (F) +IS_IPV6 (F) +IS_USED_LOCK (F) +IS_UUID (F) +IsClosed (F) +IsEmpty (F) +ISNULL (F) +IsSimple (F) +JSON_ARRAY (F) +JSON_ARRAY_APPEND (F) +JSON_ARRAY_INSERT (F) +JSON_CONTAINS (F) +JSON_CONTAINS_PATH (F) +JSON_DEPTH (F) +JSON_EXTRACT (F) +JSON_INSERT (F) +JSON_KEYS (F) +JSON_LENGTH (F) +JSON_MERGE (F) +JSON_MERGE_PATCH (F) +JSON_MERGE_PRESERVE (F) +JSON_OBJECT (F) +JSON_PRETTY (F) +JSON_QUOTE (F) +JSON_REMOVE (F) +JSON_REPLACE (F) +JSON_SEARCH (F) +JSON_SET (F) +JSON_STORAGE_FREE (F) +JSON_STORAGE_SIZE (F) +JSON_TYPE (F) +JSON_UNQUOTE (F) +JSON_VALID (F) +LAST_INSERT_ID (F) +LCASE (F) +LEAST (F) +LEFT (F) +LENGTH (F) +LineFromText (F) +LineFromWKB (F) +LineString (F) +LineStringFromWKB (F) +LN (F) +LOAD_FILE (F) +LOCALTIME (F) +LOCALTIMESTAMP (F) +LOCATE (F) +LOG (F) +LOG10 (F) +LOG2 (F) +LOWER (F) +LPAD (F) +LTRIM (F) +MAKE_SET (F) +MAKEDATE (F) +MAKETIME (F) +MASTER_POS_WAIT (F) +MAX (F) +MBRContains (F) +MBRCoveredBy (F) +MBRCovers (F) +MBRDisjoint (F) +MBREqual (F) +MBREquals (F) +MBRIntersects (F) +MBROverlaps (F) +MBRTouches (F) +MBRWithin (F) +MD5 (F) +MICROSECOND (F) +MID (F) +MIN (F) +MINUTE (F) +MLineFromText (F) +MLineFromWKB (F) +MOD (F) +MONTH (F) +MONTHNAME (F) +MPointFromText (F) +MPointFromWKB (F) +MPolyFromText (F) +MPolyFromWKB (F) +MultiLineString (F) +MultiLineStringFromText (F) +MultiLineStringFromWKB (F) +MultiPoint (F) +MultiPointFromText (F) +MultiPointFromWKB (F) +MultiPolygon (F) +MultiPolygonFromText (F) +MultiPolygonFromWKB (F) +NAME_CONST (F) +NOT IN (F) +NOW (F) +NULLIF (F) +NumGeometries (F) +NumInteriorRings (F) +NumPoints (F) +OCT (F) +OCTET_LENGTH (F) +OLD_PASSWORD (F) +ORD (F) +Overlaps (F) +PASSWORD (F) +PERIOD_ADD (F) +PERIOD_DIFF (F) +PI (F) +Point (F) +PointFromText (F) +PointFromWKB (F) +PointN (F) +PolyFromText (F) +PolyFromWKB (F) +Polygon (F) +PolygonFromText (F) +PolygonFromWKB (F) +POSITION (F) +POW (F) +POWER (F) +QUARTER (F) +QUOTE (F) +RADIANS (F) +RAND (F) +RANDOM_BYTES (F) +RELEASE_ALL_LOCKS (F) +RELEASE_LOCK (F) +REPEAT (F) +REPLACE (F) +REVERSE (F) +RIGHT (F) +ROUND (F) +ROW_COUNT (F) +RPAD (F) +RTRIM (F) +SCHEMA (F) +SEC_TO_TIME (F) +SECOND (F) +SESSION_USER (F) +SHA (F) +SHA1 (F) +SHA2 (F) +SIGN (F) +SIN (F) +SLEEP (F) +SOUNDEX (F) +SPACE (F) +SQRT (F) +SRID (F) +ST_Area (F) +ST_AsBinary (F) +ST_AsGeoJSON (F) +ST_AsText (F) +ST_AsWKB (F) +ST_AsWKT (F) +ST_Buffer (F) +ST_Buffer_Strategy (F) +ST_Centroid (F) +ST_Contains (F) +ST_ConvexHull (F) +ST_Crosses (F) +ST_Difference (F) +ST_Dimension (F) +ST_Disjoint (F) +ST_Distance (F) +ST_Distance_Sphere (F) +ST_EndPoint (F) +ST_Envelope (F) +ST_Equals (F) +ST_ExteriorRing (F) +ST_GeoHash (F) +ST_GeomCollFromText (F) +ST_GeomCollFromTxt (F) +ST_GeomCollFromWKB (F) +ST_GeometryCollectionFromText (F) +ST_GeometryCollectionFromWKB (F) +ST_GeometryFromText (F) +ST_GeometryN (F) +ST_GeometryType (F) +ST_GeomFromGeoJSON (F) +ST_GeomFromText (F) +ST_GeomFromWKB (F) +ST_InteriorRingN (F) +ST_Intersection (F) +ST_Intersects (F) +ST_IsClosed (F) +ST_IsEmpty (F) +ST_IsSimple (F) +ST_IsValid (F) +ST_LatFromGeoHash (F) +ST_Length (F) +ST_LineFromText (F) +ST_LineFromWKB (F) +ST_LineStringFromWKB (F) +ST_LongFromGeoHash (F) +ST_MakeEnvelope (F) +ST_MLineFromText (F) +ST_MLineFromWKB (F) +ST_MPointFromText (F) +ST_MPointFromWKB (F) +ST_MPolyFromText (F) +ST_MPolyFromWKB (F) +ST_MultiLineStringFromText (F) +ST_MultiLineStringFromWKB (F) +ST_MultiPointFromText (F) +ST_MultiPointFromWKB (F) +ST_MultiPolygonFromText (F) +ST_MultiPolygonFromWKB (F) +ST_NumGeometries (F) +ST_NumInteriorRings (F) +ST_NumPoints (F) +ST_Overlaps (F) +ST_PointFromGeoHash (F) +ST_PointFromText (F) +ST_PointFromWKB (F) +ST_PointN (F) +ST_PolyFromText (F) +ST_PolyFromWKB (F) +ST_PolygonFromText (F) +ST_PolygonFromWKB (F) +ST_Simplify (F) +ST_SRID (F) +ST_StartPoint (F) +ST_SymDifference (F) +ST_Touches (F) +ST_Union (F) +ST_Validate (F) +ST_Within (F) +ST_X (F) +ST_Y (F) +StartPoint (F) +STD (F) +STDDEV (F) +STDDEV_POP (F) +STDDEV_SAMP (F) +STR_TO_DATE (F) +STRCMP (F) +STRING_TO_VECTOR (F) +SUBDATE (F) +SUBSTR (F) +SUBSTRING (F) +SUBSTRING_INDEX (F) +SUBTIME (F) +SUM (F) +SYSDATE (F) +SYSTEM_USER (F) +TAN (F) +TIME (F) +TIME_FORMAT (F) +TIME_TO_SEC (F) +TIMEDIFF (F) +TIMESTAMP (F) +TIMESTAMPADD (F) +TIMESTAMPDIFF (F) +TO_BASE64 (F) +TO_DAYS (F) +TO_SECONDS (F) +TO_VECTOR (F) +Touches (F) +TRIM (F) +TRUNCATE (F) +UCASE (F) +UNCOMPRESS (F) +UNCOMPRESSED_LENGTH (F) +UNHEX (F) +UNIX_TIMESTAMP (F) +UpdateXML (F) +UPPER (F) +USER (F) +UTC_DATE (F) +UTC_TIME (F) +UTC_TIMESTAMP (F) +UUID (F) +UUID_SHORT (F) +UUID_TO_BIN (F) +VALIDATE_PASSWORD_STRENGTH (F) +VALUES (F) +VAR_POP (F) +VAR_SAMP (F) +VARIANCE (F) +VECTOR_DIM (F) +VECTOR_TO_STRING (F) +VERSION (F) +WAIT_FOR_EXECUTED_GTID_SET (F) +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS (F) +WEEK (F) +WEEKDAY (F) +WEEKOFYEAR (F) +WEIGHT_STRING (F) +Within (F) +X (F) +Y (F) +YEAR (F) +YEARWEEK (F) diff --git a/tools/contexts/_functionsMySql90300.txt b/tools/contexts/_functionsMySql90300.txt new file mode 100644 index 000000000..cc656237f --- /dev/null +++ b/tools/contexts/_functionsMySql90300.txt @@ -0,0 +1,424 @@ +ABS (F) +ACOS (F) +ADDDATE (F) +ADDTIME (F) +AES_DECRYPT (F) +AES_ENCRYPT (F) +ANY_VALUE (F) +Area (F) +AsBinary (F) +ASCII (F) +ASIN (F) +AsText (F) +AsWKB (F) +AsWKT (F) +ATAN (F) +ATAN2 (F) +AVG (F) +BENCHMARK (F) +BIN (F) +BINARY (F) +BIN_TO_UUID (F) +BIT_AND (F) +BIT_COUNT (F) +BIT_LENGTH (F) +BIT_OR (F) +BIT_XOR (F) +Buffer (F) +CAST (F) +CEIL (F) +CEILING (F) +Centroid (F) +CHAR (F) +CHAR_LENGTH (F) +CHARACTER_LENGTH (F) +CHARSET (F) +COALESCE (F) +COERCIBILITY (F) +COLLATION (F) +COMPRESS (F) +CONCAT (F) +CONCAT_WS (F) +CONNECTION_ID (F) +Contains (F) +CONV (F) +CONVERT (F) +CONVERT_TZ (F) +ConvexHull (F) +COS (F) +COT (F) +COUNT (F) +CRC32 (F) +Crosses (F) +CURDATE (F) +CURRENT_DATE (F) +CURRENT_TIME (F) +CURRENT_TIMESTAMP (F) +CURRENT_USER (F) +CURTIME (F) +DATABASE (F) +DATE (F) +DATE_ADD (F) +DATE_FORMAT (F) +DATE_SUB (F) +DATEDIFF (F) +DAY (F) +DAYNAME (F) +DAYOFMONTH (F) +DAYOFWEEK (F) +DAYOFYEAR (F) +DECODE (F) +DEFAULT (F) +DEGREES (F) +DES_DECRYPT (F) +DES_ENCRYPT (F) +Dimension (F) +Disjoint (F) +Distance (F) +ELT (F) +ENCODE (F) +ENCRYPT (F) +EndPoint (F) +Envelope (F) +Equals (F) +EXP (F) +EXPORT_SET (F) +ExteriorRing (F) +EXTRACT (F) +ExtractValue (F) +FIELD (F) +FIND_IN_SET (F) +FLOOR (F) +FORMAT (F) +FOUND_ROWS (F) +FROM_BASE64 (F) +FROM_DAYS (F) +FROM_UNIXTIME (F) +FROM_VECTOR (F) +GeomCollFromText (F) +GeomCollFromWKB (F) +GeometryCollection (F) +GeometryCollectionFromText (F) +GeometryCollectionFromWKB (F) +GeometryFromText (F) +GeometryN (F) +GeometryType (F) +GeomFromText (F) +GeomFromWKB (F) +GET_FORMAT (F) +GET_LOCK (F) +GLength (F) +GREATEST (F) +GROUP_CONCAT (F) +GTID_SUBSET (F) +GTID_SUBTRACT (F) +HEX (F) +HOUR (F) +IF (F) +IFNULL (F) +IN (F) +INET6_ATON (F) +INET6_NTOA (F) +INET_ATON (F) +INET_NTOA (F) +INSERT (F) +INSTR (F) +InteriorRingN (F) +Intersects (F) +INTERVAL (F) +IS_FREE_LOCK (F) +IS_IPV4 (F) +IS_IPV4_COMPAT (F) +IS_IPV4_MAPPED (F) +IS_IPV6 (F) +IS_USED_LOCK (F) +IS_UUID (F) +IsClosed (F) +IsEmpty (F) +ISNULL (F) +IsSimple (F) +JSON_ARRAY (F) +JSON_ARRAY_APPEND (F) +JSON_ARRAY_INSERT (F) +JSON_CONTAINS (F) +JSON_CONTAINS_PATH (F) +JSON_DEPTH (F) +JSON_EXTRACT (F) +JSON_INSERT (F) +JSON_KEYS (F) +JSON_LENGTH (F) +JSON_MERGE (F) +JSON_MERGE_PATCH (F) +JSON_MERGE_PRESERVE (F) +JSON_OBJECT (F) +JSON_PRETTY (F) +JSON_QUOTE (F) +JSON_REMOVE (F) +JSON_REPLACE (F) +JSON_SEARCH (F) +JSON_SET (F) +JSON_STORAGE_FREE (F) +JSON_STORAGE_SIZE (F) +JSON_TYPE (F) +JSON_UNQUOTE (F) +JSON_VALID (F) +LAST_INSERT_ID (F) +LCASE (F) +LEAST (F) +LEFT (F) +LENGTH (F) +LineFromText (F) +LineFromWKB (F) +LineString (F) +LineStringFromWKB (F) +LN (F) +LOAD_FILE (F) +LOCALTIME (F) +LOCALTIMESTAMP (F) +LOCATE (F) +LOG (F) +LOG10 (F) +LOG2 (F) +LOWER (F) +LPAD (F) +LTRIM (F) +MAKE_SET (F) +MAKEDATE (F) +MAKETIME (F) +MASTER_POS_WAIT (F) +MAX (F) +MBRContains (F) +MBRCoveredBy (F) +MBRCovers (F) +MBRDisjoint (F) +MBREqual (F) +MBREquals (F) +MBRIntersects (F) +MBROverlaps (F) +MBRTouches (F) +MBRWithin (F) +MD5 (F) +MICROSECOND (F) +MID (F) +MIN (F) +MINUTE (F) +MLineFromText (F) +MLineFromWKB (F) +MOD (F) +MONTH (F) +MONTHNAME (F) +MPointFromText (F) +MPointFromWKB (F) +MPolyFromText (F) +MPolyFromWKB (F) +MultiLineString (F) +MultiLineStringFromText (F) +MultiLineStringFromWKB (F) +MultiPoint (F) +MultiPointFromText (F) +MultiPointFromWKB (F) +MultiPolygon (F) +MultiPolygonFromText (F) +MultiPolygonFromWKB (F) +NAME_CONST (F) +NOT IN (F) +NOW (F) +NULLIF (F) +NumGeometries (F) +NumInteriorRings (F) +NumPoints (F) +OCT (F) +OCTET_LENGTH (F) +OLD_PASSWORD (F) +ORD (F) +Overlaps (F) +PASSWORD (F) +PERIOD_ADD (F) +PERIOD_DIFF (F) +PI (F) +Point (F) +PointFromText (F) +PointFromWKB (F) +PointN (F) +PolyFromText (F) +PolyFromWKB (F) +Polygon (F) +PolygonFromText (F) +PolygonFromWKB (F) +POSITION (F) +POW (F) +POWER (F) +QUARTER (F) +QUOTE (F) +RADIANS (F) +RAND (F) +RANDOM_BYTES (F) +RELEASE_ALL_LOCKS (F) +RELEASE_LOCK (F) +REPEAT (F) +REPLACE (F) +REVERSE (F) +RIGHT (F) +ROUND (F) +ROW_COUNT (F) +RPAD (F) +RTRIM (F) +SCHEMA (F) +SEC_TO_TIME (F) +SECOND (F) +SESSION_USER (F) +SHA (F) +SHA1 (F) +SHA2 (F) +SIGN (F) +SIN (F) +SLEEP (F) +SOUNDEX (F) +SPACE (F) +SQRT (F) +SRID (F) +ST_Area (F) +ST_AsBinary (F) +ST_AsGeoJSON (F) +ST_AsText (F) +ST_AsWKB (F) +ST_AsWKT (F) +ST_Buffer (F) +ST_Buffer_Strategy (F) +ST_Centroid (F) +ST_Contains (F) +ST_ConvexHull (F) +ST_Crosses (F) +ST_Difference (F) +ST_Dimension (F) +ST_Disjoint (F) +ST_Distance (F) +ST_Distance_Sphere (F) +ST_EndPoint (F) +ST_Envelope (F) +ST_Equals (F) +ST_ExteriorRing (F) +ST_GeoHash (F) +ST_GeomCollFromText (F) +ST_GeomCollFromTxt (F) +ST_GeomCollFromWKB (F) +ST_GeometryCollectionFromText (F) +ST_GeometryCollectionFromWKB (F) +ST_GeometryFromText (F) +ST_GeometryN (F) +ST_GeometryType (F) +ST_GeomFromGeoJSON (F) +ST_GeomFromText (F) +ST_GeomFromWKB (F) +ST_InteriorRingN (F) +ST_Intersection (F) +ST_Intersects (F) +ST_IsClosed (F) +ST_IsEmpty (F) +ST_IsSimple (F) +ST_IsValid (F) +ST_LatFromGeoHash (F) +ST_Length (F) +ST_LineFromText (F) +ST_LineFromWKB (F) +ST_LineStringFromWKB (F) +ST_LongFromGeoHash (F) +ST_MakeEnvelope (F) +ST_MLineFromText (F) +ST_MLineFromWKB (F) +ST_MPointFromText (F) +ST_MPointFromWKB (F) +ST_MPolyFromText (F) +ST_MPolyFromWKB (F) +ST_MultiLineStringFromText (F) +ST_MultiLineStringFromWKB (F) +ST_MultiPointFromText (F) +ST_MultiPointFromWKB (F) +ST_MultiPolygonFromText (F) +ST_MultiPolygonFromWKB (F) +ST_NumGeometries (F) +ST_NumInteriorRings (F) +ST_NumPoints (F) +ST_Overlaps (F) +ST_PointFromGeoHash (F) +ST_PointFromText (F) +ST_PointFromWKB (F) +ST_PointN (F) +ST_PolyFromText (F) +ST_PolyFromWKB (F) +ST_PolygonFromText (F) +ST_PolygonFromWKB (F) +ST_Simplify (F) +ST_SRID (F) +ST_StartPoint (F) +ST_SymDifference (F) +ST_Touches (F) +ST_Union (F) +ST_Validate (F) +ST_Within (F) +ST_X (F) +ST_Y (F) +StartPoint (F) +STD (F) +STDDEV (F) +STDDEV_POP (F) +STDDEV_SAMP (F) +STR_TO_DATE (F) +STRCMP (F) +STRING_TO_VECTOR (F) +SUBDATE (F) +SUBSTR (F) +SUBSTRING (F) +SUBSTRING_INDEX (F) +SUBTIME (F) +SUM (F) +SYSDATE (F) +SYSTEM_USER (F) +TAN (F) +TIME (F) +TIME_FORMAT (F) +TIME_TO_SEC (F) +TIMEDIFF (F) +TIMESTAMP (F) +TIMESTAMPADD (F) +TIMESTAMPDIFF (F) +TO_BASE64 (F) +TO_DAYS (F) +TO_SECONDS (F) +TO_VECTOR (F) +Touches (F) +TRIM (F) +TRUNCATE (F) +UCASE (F) +UNCOMPRESS (F) +UNCOMPRESSED_LENGTH (F) +UNHEX (F) +UNIX_TIMESTAMP (F) +UpdateXML (F) +UPPER (F) +USER (F) +UTC_DATE (F) +UTC_TIME (F) +UTC_TIMESTAMP (F) +UUID (F) +UUID_SHORT (F) +UUID_TO_BIN (F) +VALIDATE_PASSWORD_STRENGTH (F) +VALUES (F) +VAR_POP (F) +VAR_SAMP (F) +VARIANCE (F) +VECTOR_DIM (F) +VECTOR_TO_STRING (F) +VERSION (F) +WAIT_FOR_EXECUTED_GTID_SET (F) +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS (F) +WEEK (F) +WEEKDAY (F) +WEEKOFYEAR (F) +WEIGHT_STRING (F) +Within (F) +X (F) +Y (F) +YEAR (F) +YEARWEEK (F)