* Update sqlparser to fit php8.

This commit is contained in:
songchenxuan
2024-03-20 09:10:47 +08:00
committed by liyang
parent 380f1d530b
commit f297325727
663 changed files with 140347 additions and 16174 deletions
+156 -1
View File
@@ -1,5 +1,159 @@
# Change Log
## [5.9.x] - YYYY-MM-DD
- Fix keywords not being recognized as table alias (#496)
- Add `bin/sql-parser` executable file (#517)
- Fix bind parameter in LIMIT OFFSET (#498)
- Fix using ? as a parameter (#515)
## [5.8.2] - 2023-09-19
- Fix a regression with the ALTER operation (#511)
## [5.8.1] - 2023-09-15
- Fix `:=` was not recognized as an operator just like `=` (#306)
- Fix `ALTER TABLE … MODIFY … ENUM('<reserved_keyword>')` is being wrongly parsed (#234)
- Fix `ALTER TABLE … MODIFY … ENUM('<reserved_keyword>')` is being wrongly parsed (#478)
- Fix MariaDB window function with alias gives bad linting errors (#283)
- Fix unrecognized keyword `COLLATE` in `WHERE` clauses (#491)
- Fix invalid hexadecimal prefix 0X (#508)
## [5.8.0] - 2023-06-05
- Fix `ALTER EVENT RENAME TO` to use expression instead of var (#419)
- Fix incorrect order of operations to parse table/db called `` (#422)
- Fix ALTER EVENT statement with DEFINER=user modifier fails to be parsed (#418)
- Fix GROUP BY modifier WITH ROLLUP is treated as a syntax error and prevents export of SQL query results
- Fix `TokensList::getPrevious` was not able to reach very first token (#428)
- Fix `TransactionStatement::build()` "Call to a member function build() on null" when the transaction has no end
- Fix MySQL-specific commands parsing (#226)
- Fix `ALTER TABLE … RENAME COLUMN … TO …` is not understood by the parser/linter (#430)
- Fix `PARTITION` syntax errors (#377)
- Fix `ALTER USER` when used with `IDENTIFIED WITH/VIA/BY` option (#431)
- Fix `COALESCE PARTITION` in `ALTER TABLE`, rather than `COALESCE` (#323)
- Support `ALGORITHM` and `LOCK` options in `ALTER TABLE` statements (#319)
- Fix way end of functions, procedures and triggers' bodies is identified (#438)
- Fix `enclosed by` is not recognized by the parser when `fields` is in lower case (#236)
- Support `KEY` on `CreateDefinition` (#330)
- Fix `CALL` statements parsing (#372)
- Implement support for `LEFT JOIN`, `JOIN`, `INNER JOIN` on `UpdateStatement` (#260)
- Implement support for `TABLE` and `REPLACE` statements on `DESCRIBE` statements
- Fix `DESCRIBE` to allow a schema.table syntax (#445)
- Fix parsing insert queries with functions trims commas (#450)
## [5.7.0] - 2023-01-25
* Performance improvement to use less the `nextToken()` function (#397)
* Lexer - Solving ambiguity on function keywords (#385)
* Implement `ALTER EVENT` (#404)
* Add `ALTER EVENT` keywords (#404)
* Drop PHP 7.1 support
* Fix the alter operation table options `RENAME INDEX x TO y` (#405)
* Fix `CreateStatement` function's options (#406)
* Fix a PHP notice on Linter using `ANALYZE` (#413)
## [5.6.0] - 2023-01-02
* Add missing return types annotations
* Improve the WITH statements parser (#363)
* Add support for passing `Context::SQL_MODE*` constants to `Context::setMode` method
* Fix additional body tokens issue with `CREATE VIEW` statements (#371)
* Exclude from composer vendor bundle /tests and /phpunit.xml.dist
* 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)
* Fixed differentiating between `ANALYZE` and `EXPLAIN` statements (#386)
* Added "NOT" to the select options (#374)
* Implement the `EXPLAIN` Parser (#389)
* Context: Updated contexts to contain `multipoint` and `multipolygon` data types (#393)
* Support more keywords on `Expression` component (#399)
* Fix PHP 8.3 failing tests (#400)
## [5.5.0] - 2021-12-08
* Add WITH support (#165, #331)
* Fixed BufferedQuery when it has an odd number of backslashes in the end (#340)
* Fixed the issue that ignored the body tokens when creating views with union (#343)
* Fixed parser errors on "ALTER TABLE" statements to add columns with SET type (#168)
* Fixed PHP 8.1 fatal errors on classes that "implements ArrayAccess"
* Add new contexts for MariaDB 10.4, 10.5, 10.6 (#328)
* Fixed parser errors for "ALTER USER" with options (#342)
* Fixed handling of the procedures and functions's options where part of the body (#339)
* Fix PHP notice "Undefined index: name in src/Components/Key.php#206" for table keys using expressions (#347)
* Added support for MySQL 8.0 table structure KEY expressions (#347)
* Added support for KEY order (ASC/DESC) (#296)
* Added missing KEY options for MySQL and MariaDB (#348)
* Added support for ENFORCED and NOT ENFORCED on table create queries (#341)
* Performance improvement to use less the "ord()" function (#352)
* Added support for OVER() with an alias (AS) (#197)
## [5.4.2] - 2021-02-05
* Added check for quoted symbol to avoid parser error in case of keyword (#317)
* Allow PHP 8
## [5.4.1] - 2020-10-15
* Fix array_key_exists warning when parsing a "DEFAULT FALSE" token (#299)
## [5.4.0] - 2020-10-08
* EXISTS is also a function. (#297)
* Fix lexer to not allow numbers with letters (#300)
* Add support for INVISIBLE keyword (#292)
* Fix the "$" might be a character used in a name (#301)
* Fix use stream_select instead of non-blocking STDIN (#309)
* Add select validation to a create view statement (#310)
## [5.3.1] - 2020-03-20
* Revert some changes with the understanding of ANSI_QUOTES mode and identifiers
* Suggest motranslator 5.0 in README
## [5.3.0] - 2020-03-20
* Stop instanciating an object to check its class name. (#290)
* Replace sscanf by equivalent native PHP functions because sscanf can be disabled for security reasons. (#270)
* Allow phpunit 9
* Allow phpmyadmin/motranslator 5.0
* Fix for php error when "INSERT INTO x SET a = 1" is "INSERT INTO x SET = 1" (#295)
* Fixed lexer fails to detect "*" as a wildcard (#288)
* Fixed ANSI_QUOTES support (#284)
* Fixed parser mistakes with comments (#156)
## [5.2.0] - 2020-01-07
* Fix ALTER TABLE ... PRIMARY/UNIQUE KEY results in error (#267)
* Prevent overwrite of offset in Limit clause by parenthesis (#275)
* Allow SCHEMA to be used in CREATE Database statement (#231)
* Add missing options in SET statement (#255)
* Add support for DROP USER statement (#259)
* Fix php error "undefined index" when replacing a non existing clause (#249)
## [5.1.0] - 2019-11-12
* Fix for PHP deprecations messages about implode for php 7.4+ (#258)
* Parse CHECK keyword on table definition (#264)
* Parse truncate statement (#221)
* Fix wrong parsing of partitions (#265)
## [5.0.0] - 2019-05-09
* Drop support for PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.0 and HHVM
* Enable strict mode on PHP files
* Fix redundant whitespaces in build() outputs (#228)
* Fix incorrect error on DEFAULT keyword in ALTER operation (#229)
* Fix incorrect outputs from Query::getClause (#233)
* Add support for reading an SQL file from stdin
* Fix for missing tokenize-query in Composer's vendor/bin/ directory
* Fix for PHP warnings with an incomplete CASE expression (#241)
* Fix for error message with multiple CALL statements (#223)
* Recognize the question mark character as a parameter (#242)
## [4.7.4] - YYYY-MM-DD
## [4.7.3] - 2021-12-08
- Fixed BufferedQuery when it has an odd number of backslashes in the end (#340)
@@ -25,7 +179,6 @@
## [4.7.0] - 2020-10-08
* EXISTS is also a function. (#297)
* Remove some useless dev-dependencies
* Fix lexer to not allow numbers with letters (#300)
* Add support for INVISIBLE keyword (#292)
* Fix the "$" might be a character used in a name (#301)
@@ -65,6 +218,8 @@
## [4.3.2] - 2019-06-03
Backport fixes from 5.0.0 to QA branch:
* Fix redundant whitespaces in build() outputs (#228)
* Fix incorrect error on DEFAULT keyword in ALTER operation (#229)
* Fix incorrect outputs from Query::getClause (#233)