Releases: exasol/virtual-schema-common-lua
Release 5.0.0: Support specifying source for `IMPORT` statement
This release updates ImportQueryBuilder and ImportAppender to allow a custom source for the generated IMPORT FROM statement, e.g. JDBC, EXA and ORA, see the documentation for details.
The release also updates SelectAppender:_append_table() to support catalogs in addition to schemas.
The release also allows specifying a custom quote character for identifiers instead of the default ". This is a breaking change, see below for details.
The release also formats all sources and adds type annotations using LuaLS.
Breaking Change
Class AbstractQueryAppender now requires an AppenderConfig as second argument to the constructor method :new(). If the configuration is missing, the constructor will fail with error message AbstractQueryAppender requires an appender configuration. The following constructors are affected:
QueryRenderer:new()AggregateFunctionAppender:new()ExpressionAppender:new()ImportAppender:new()ScalarFunctionAppender:new()SelectAppender:new()
The configuration allows customizing the identifier quote character. If the default value " is OK, you can use the predefined configuration AbstractQueryAppender.DEFAULT_APPENDER_CONFIG.
Features
4.0.1: Fix Issue With Integer Constants in `GROUP BY`
This release fixes an issue with queries using DISTINCT with integer constants. The Exasol SQL processor turns DISTINCT <integer> into GROUP BY <integer> before push-down as an optimization. The adapter must not feed this back as Exasol interprets integers in GROUP BY clauses as column numbers which could lead to invalid results or the following error:
42000:Wrong column number. Too small value 0 as select list column reference in GROUP BY (smallest possible value is 1)
To fix this, Exasol VS now replaces integer constants in GROUP BY clauses with a constant string.
Please that you can still safely use GROUP BY <column-number> in your original query, since Exasol internally converts this to GROUP BY "<column-name>", so that the virtual schema adapter can tell both situations apart.
Bugfixes
- #84: Fixed issue with integer constants in
GROUP BY
4.0.0: Namespace changed to 'exasol.vscl.'
Release 4.0.0 changes the namespace from exasolvs to exasol.vscl. to improve clarity, avoid collisions with namespaces of other Exasol Lua projects and make checking installations in the local Luarocks cache easier. Unfortunately this is a breaking change, hence the new major version.
Refactoring
- #77: Changed namespace from 'exasolvs' to 'exasol.vscl'.
3.1.0: Validators and API documentation
Release 3.1.0 brings validators that originally were created for the Exasol Virtual Schema (Lua), but are in-fact useful for all Virtual Schemas.
For consistency, we moved all tests for classes in exasolvs from spec/ to spec/exasolvs. This has no impact on the generated library.
Additionally, we now generate the API documentation with LDoc.
Refactoring
- #77: Moved validators from EVSL to VSCL
Documentation
- #75: CI build now generates API documentation with LDoc
3.0.0: Improved IMPORT
Release 3.0.0 reworked the way imports are handled. Instead of having a wrapper after rendering, we now wrap the push-down statement structure in an import structure and then render it. This is both more convenient and avoids code duplication.
We removed the ImportBuilder and introduced a new ImportQueryBuilder which is used at an earlier stage in the rewriting process.
This is a breaking change, hence the new major version. Please check the developer guide for more information.
Bugfixes
- #73: Improved building of
IMPORTstatements
2.4.1: Fixed Rockspec and improved Import Builder
Summary
Release 2.4.1 of virtual-schema-common-lua fixes a missing entry in the .rockspec that prevented the ImportBuilder from being included in the package.
Bugfixes
- #69: Added missing entry to
.rockspec
2.4.0: Boolean Properties, IS JSON, LISTAGG
virtual-schema-common-lua 2.4.0, released 2023-02-01
Code name: Boolean Properties, IS JSON, LISTAGG
Summary
Release 2.4.0 of virtual-schema-common-lua added the methods isTrue and isFalse for checking Virtual Schema properties.
We also added support for the IS [NOT] JSON predicate and the LISTAGG aggregate function.
Known limitation:
The core database does not push the OVER clause that makes the main difference between an analytical function and a regular aggregate function to the Virtual Schema adapter. This means VS push-down supports basic aggregate functions, but no analytical functions.
Features
- #19: Added
LISTAGGaggregate function rendering - #60: Added
IS [NOT] JSONpredicate rendering - #63: Added support for boolean Virtual Schema properties
Bugfixes
- #67: Fixed
LISTAGGoverflow clause
2.3.0: GROUP BY
virtual-schema-common-lua 2.3.0, released 2022-10-17
Code name: GROUP BY
Summary
Release 2.3.0 of virtual-schema-common-lua can now produce IMPORT statements.
It also adds GROUP BY support.
Known limitation:
The core database does not push the OVER clause that makes the main difference between an analytical function and a regular aggregate function to the Virtual Schema adapter. This means VS push-down supports basic aggregate functions, but no analytical functions.
Also, LISTAGG (#19) is not yet supported.
Features
2.2.0: Aggregate functions
Summary
Release 2.2.0 of virtual-schema-common-lua adds SQL rendering for aggregate functions.
We also removed the standard dependency check, since it only targets Java dependencies and this project is a pure Lua project.
Known limitation:
The core database does not push the OVER clause that make the main difference between an analytical function and a regular aggregate function to the Virtual Schema adapter. This means VS push-down supports basic aggregate functions, but no analytical functions.
Also LISTAGG (#19) is not yet supported.
Features
- #17: Added rendering for aggregate functions
GROUPINGandAPPROXIMATE COUNT DISTINCT - #18: Added rendering aggregate functions that can have an
OVERclause. VS does not support pushingOVERthough. - #47: Removed dependency check CI build
- #50: Added rendering for
GROUP_CONCAT - #53: Added test for aggregate function in
WHEREclause - #54: Enabled all
COUNTvariants and added more predicates
2.1.0: Merging properties
Summary
Release 2.1.0 of virtual-schema-common-lua adds a parameter to the "set properties" request that contains the new properties and a method merge in the class AdapterProperties that allows merging classes.
Features
- #44: Merging properties