- Fixed tokenization when using zero compare value
- try to fix matching types when using operator
IS
- Rename
COMBINEtoARRAY_COMBINE - Added new function
ARRAY_MERGEfor merging two arrays - Automatically recognize date from selected string and cast it to
\DateTimeImmutable - When
\DateTimeImmutablecasting to the string, it will be formatted tocformat (Y-m-d\TH:i:sP) - Added new function
DATE_FORMATfor formatting\DateTimeImmutableto string
- Fixed issue with parsing
EXCLUDEclause - Improved accessor
[]->keynow supports associative arrays by wrapping them into a single-item list, allowing uniform iteration behavior. - Replace some string by constant at sql parser
- Added new function
COMBINEfor combining two arrays
- Package was renamed from UniQueL to FiQueLa to better reflect what the library does
- Namespace
UQLmoved toFQL - Rewritten most of the code
- Rewritten documentation
- Increased number of test and asserts from 62/304 to 171/596
- Added new
FQL\Stream\JsonStreamclass allows parsing JSON data as a stream - Added new
FQL\Stream\NDJsonclass allows parsing NDJSON data as a stream
- Added support for
DISTINCTclause - Added support for
EXCLUDEclause usable atSELECTstatement - Added support for creating own functions for Fluent API.
- Added support for grouping data by
GROUP BYclause DISTINCTandGROUP BYare not compatible with each other- Refactored
FQL\Functionsnamespace folder structure - Supports new aggregate functions:
COUNT,SUM,AVG,MIN,MAXandGROUP_CONCAT - Added new functions:
FROM_BASE64,TO_BASE64,RANDOM_STRING,RANDOM_BYTESandMATCH() AGAINST() LIKEoperator supports the same wildcards as MySQL- Refactored using conditions in
WHEREandHAVINGclauses
- Refactored tests namespace to psr-4 standard
- Added benchmarking tests for queries
- Extends exception base for better exception handling
- Extended documentation
- Refactored fetching the results
- Interface
FQL\Query\Queryremoved fetching methods and replaced byexecute()method instead. - Method
execute()returnsFQL\Result\ResultProviderobject that implements missing fetching methods. execute()decide which results are used (FQL\Result\StreamorFQL\Result\InMemory) or you can specify it manually.FQL\Results\ResultProviderknows use these functionsCOUNT,SUM,AVG,MIN, andMAX
- Helpers are refactored as traits
FQL\Helpers\ArrayHelpermoved toFQL\Traits\Helpers\NestedArrayAccessorFQL\Helpers\StringHelpermoved toFQL\Traits\Helpers\StringOperations
- Extends SQL parser to support new functionalities
- Support select functions like
COUNT,SUM,AVG,MIN,MAXandCOALESCEand others are usable inSELECTclause - Support
EXCLUDEclause - Support
MATCH() AGAINST()function for full-text search - Support
DISTINCTclause - Support
GROUP BYclause with more fields at once - Support
HAVINGclause - Support
OFFSETclause - Newly support
ORDER BYmore fields at once FQL\Sql\Sqlparser knows set the base path for using FileQuery syntax
FQL\Helpers\Debuggermoved toFQL\Query\Debugger- Method
end()renamed tosplit() - Method
finish()renamed toend() - Added SQL syntax highlighting, just use
FQL\Query\Debugger::highlightSQL($sql)method - Edits single line output
- Finally fixed issue with grouping
WHEREorHAVINGconditions - Fixed issue when splitting time in
Query\Debugger
Note: The changelog begins with version 2.0.0. Older changes are not included in this document.