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
IMPORT
statements
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
LISTAGG
aggregate function rendering - #60: Added
IS [NOT] JSON
predicate rendering - #63: Added support for boolean Virtual Schema properties
Bugfixes
- #67: Fixed
LISTAGG
overflow 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
GROUPING
andAPPROXIMATE COUNT DISTINCT
- #18: Added rendering aggregate functions that can have an
OVER
clause. VS does not support pushingOVER
though. - #47: Removed dependency check CI build
- #50: Added rendering for
GROUP_CONCAT
- #53: Added test for aggregate function in
WHERE
clause - #54: Enabled all
COUNT
variants 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