Releases: exasol/virtual-schema-common-java
Release list
18.0.3 Fix locale-dependent request serialization
This release consistently uses Locale.ROOT for converting strings to upper/lower case. This avoids locale dependent bugs.
Bugfixes
- #335: Fixed incomplete
Locale.ROOThardening in request parsing and rendering. Locale-sensitive casing is now avoided when parsing table metadata andIS JSONconstraints, and when rendering pushdown JSON for node types, data types, character sets, and join types.
18.0.2 Improve code quality
This release includes many small bugfixes and code improvements. Some methods are now deprecated and will be removed in a future release.
The release also makes interfaces VirtualSchemaAdapter and AdapterFactory AutoCloseable. This allows adapters to cleanup resources after processing a request. The interfaces provide a default implementation of close(), so that users of the interface don't need to change.
Deprecations
Capabilities.subtractCapabilities()is now deprecated for removal and delegates to the new pureCapabilities.subtract()implementation. Code that relied on the previous side effect of mutating the receiver must be adapted (#305).- Constructor
ColumnMetadata.Builder()is now deprecated for removal. UseColumnMetadata.builder()to create a new instance (#306). - Constructor
Capabilities.Builder()is now deprecated for removal. UseCapabilities.builder()to create a new instance (#305). - Constructor
SqlStatementSelect.Builder()is now deprecated for removal. UseSqlStatementSelect.builder()to create a new instance (#306). - Methods
SqlLimit.setLimit(int)andSqlLimit.setOffset(int)are deprecated for removal. - Constructor
VersionCollector()is now deprecated for removal. UseVersionCollector(final String path)to create a new instance (#312) - Methods
SqlFunctionAggregateListagg.Behavior.setTruncationType(TruncationType)andSqlFunctionAggregateListagg.Behavior.setTruncationFiller(SqlLiteralString)are deprecated for removal.
Features
- #333: Make
VirtualSchemaAdapterandAdapterFactoryAutoCloseable
Bugfixes
- #305: Fixed
Capabilities.subtractCapabilities()so it no longer mutates the receiver. Added the pureCapabilities.subtract()method. - #306: Fixed
TablesMetadataParserso omittedisIdentityvalues default tofalsewhile omittedisNullablevalues still default totrue. - #311: Fixed metadata parsing and conversion diagnostics for missing JSON fields and nullable notes/comments, and made
SqlFunctionScalarCasttolerate a null argument consistently with related SQL AST nodes. - #310: Fixed
SqlStatementSelect.Builder.build()so empty and partial builders no longer fail with a rawNullPointerException. - #309: Fixed the
SqlNodeVisitorAPI documentation and parameter names forSqlPredicateIsNotNullandSqlPredicateIsNull. - #317: Applied small allocation cleanups in request parsing, logging timestamp formatting, and schema metadata JSON conversion.
- #308: Fixed
SqlLimitsolimitandoffsetstay non-negative for the full object lifetime by making the node immutable and aligning the validation message with the accepted zero values. - #307: Fixed
PushdownSqlRenderersoHASHTYPEdata types includebytesizein rendered pushdown SQL JSON. - #315: Improved
PushdownSqlParserlookup and traversal performance by caching involved table metadata, defensively copying the metadata list, and replacingStack-based traversals withArrayDeque. - #313: Fixed mutable DTO and SQL AST collection handling by adding defensive copies, unmodifiable getters, null-to-empty normalization, and constructor-time
SqlOrderByvalidation. - #312: Fixed logging utility resource and handler lifecycle issues by closing version metadata streams, falling back when the thread context class loader is missing, defaulting absent version properties to
UNKNOWN, closing replaced root log handlers, and resetting closed remote socket handlers before reuse. - #316: Fixed
LoggingConfigurationso invalidLOG_LEVELvalues now fail with a structured error message that names the invalid value and lists the available log levels. - #318: Fixed several small naming, Javadoc, message, and parsing robustness issues, including locale-independent SQL parser uppercasing and trimmed telemetry property parsing.
- Fixed
ColumnMetadata.toString()sodefaultValuequotes stay balanced even when no comment is set. - #314: Fixed
SqlFunctionAggregateListagg.Behaviorso LISTAGG overflow behavior is null-safe, value-based, and constructed immutably by the parser.
Dependency Updates
Compile Dependency Updates
- Updated
com.exasol:udf-api-java:1.0.8to1.0.9
Test Dependency Updates
- Updated
org.itsallcode:junit5-system-extensions:1.2.2to1.2.3 - Updated
org.junit.jupiter:junit-jupiter-params:5.14.3to5.14.4
Plugin Dependency Updates
- Updated
com.exasol:project-keeper-maven-plugin:5.5.2to5.6.2
18.0.1 Update telemetry endpoint
This release updates the telemetry-java library to use the correct telemetry endpoint.
Bugfixes
- #303: Upgrade telemetry-java to use correct telemetry endpoint
Dependency Updates
Compile Dependency Updates
- Updated
com.exasol:telemetry-java:0.2.0to0.2.1
Plugin Dependency Updates
- Updated
com.exasol:error-code-crawler-maven-plugin:2.0.6to2.0.7 - Updated
com.exasol:project-keeper-maven-plugin:5.4.6to5.5.2 - Updated
io.github.git-commit-id:git-commit-id-maven-plugin:9.0.2to10.0.0 - Updated
org.apache.maven.plugins:maven-resources-plugin:3.4.0to3.5.0 - Updated
org.apache.maven.plugins:maven-surefire-plugin:3.5.4to3.5.5
18.0.0 Anonymous feature tracking
This release adds anonymous feature tracking using the telemetry-java library. When you integrate this new version into another product, please observe the required user documentation.
AdapterCallExecutor was updated to track usage of the following features:
createVirtualSchemadropVirtualSchemarefreshVirtualSchemasetProperties
The release also adds support for scalar functions REGEXP_COUNT and DAYOFWEEK.
Breaking Changes
- Class
ErrorMessagesand its static methodaskForBugReport()are deprecated now. Replace it withErrorMessageBuilder.ticketMitigation()from error-reporting-java. - Interface
AdapterFactorywas updated and implementors need to adapt the following:- Method
createAdapter()now receives an argument of typeAdapterContext, giving you access to theTelemetryClient. You can use it to send adapter specific feature tracking. - New method
getAdapterProjectShortTag()must return the adapter's project short tag as defined inerror_code_config.yml, e.g.VSMYSQLorVSS3.
- Method
Features
- #300: Add anonymous feature tracking
- #290: Add support for scalar function
REGEXP_COUNT - #299: Add support for scalar function
DAYOFWEEK
Dependency Updates
Compile Dependency Updates
- Updated
com.exasol:error-reporting-java:1.0.1to1.0.2 - Added
com.exasol:telemetry-java:0.2.0 - Updated
com.exasol:udf-api-java:1.0.5to1.0.8
Test Dependency Updates
- Updated
nl.jqno.equalsverifier:equalsverifier:3.16.1to3.19.4 - Updated
org.hamcrest:hamcrest:2.2to3.0 - Updated
org.itsallcode:junit5-system-extensions:1.2.0to1.2.2 - Added
org.junit.jupiter:junit-jupiter-params:5.14.3 - Removed
org.junit.jupiter:junit-jupiter:5.10.2 - Updated
org.mockito:mockito-junit-jupiter:5.11.0to5.23.0 - Updated
org.skyscreamer:jsonassert:1.5.1to1.5.3
Plugin Dependency Updates
- Updated
com.exasol:error-code-crawler-maven-plugin:2.0.5to2.0.6 - Updated
com.exasol:project-keeper-maven-plugin:5.4.3to5.4.6 - Updated
org.apache.maven.plugins:maven-compiler-plugin:3.14.1to3.15.0 - Updated
org.apache.maven.plugins:maven-resources-plugin:3.3.1to3.4.0 - Updated
org.apache.maven.plugins:maven-source-plugin:3.2.1to3.4.0 - Updated
org.codehaus.mojo:versions-maven-plugin:2.19.1to2.21.0 - Updated
org.sonarsource.scanner.maven:sonar-maven-plugin:5.2.0.4988to5.5.0.6356 - Updated
org.sonatype.central:central-publishing-maven-plugin:0.9.0to0.10.0
17.1.2 Fix for wrong COUNT and HAVING handling in empty group by.
17.1.1 Fixing the main branch, updating PK
This is a technical release needed to fix the main branch consistency.
Features
- #293: The main branch is broken
Dependency Updates
Plugin Dependency Updates
- Updated
com.exasol:error-code-crawler-maven-plugin:2.0.2to2.0.5 - Updated
com.exasol:project-keeper-maven-plugin:4.3.0to5.4.3 - Added
com.exasol:quality-summarizer-maven-plugin:0.2.1 - Added
io.github.git-commit-id:git-commit-id-maven-plugin:9.0.2 - Removed
io.github.zlika:reproducible-build-maven-plugin:0.16 - Added
org.apache.maven.plugins:maven-artifact-plugin:3.6.1 - Updated
org.apache.maven.plugins:maven-clean-plugin:3.2.0to3.5.0 - Updated
org.apache.maven.plugins:maven-compiler-plugin:3.13.0to3.14.1 - Updated
org.apache.maven.plugins:maven-deploy-plugin:3.1.1to3.1.4 - Updated
org.apache.maven.plugins:maven-enforcer-plugin:3.4.1to3.6.2 - Updated
org.apache.maven.plugins:maven-gpg-plugin:3.2.2to3.2.8 - Updated
org.apache.maven.plugins:maven-install-plugin:3.1.2to3.1.4 - Updated
org.apache.maven.plugins:maven-javadoc-plugin:3.6.3to3.12.0 - Updated
org.apache.maven.plugins:maven-site-plugin:3.12.1to3.21.0 - Updated
org.apache.maven.plugins:maven-surefire-plugin:3.2.5to3.5.4 - Updated
org.apache.maven.plugins:maven-toolchains-plugin:3.1.0to3.2.0 - Updated
org.codehaus.mojo:flatten-maven-plugin:1.6.0to1.7.3 - Updated
org.codehaus.mojo:versions-maven-plugin:2.16.2to2.19.1 - Updated
org.jacoco:jacoco-maven-plugin:0.8.12to0.8.14 - Updated
org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922to5.2.0.4988 - Added
org.sonatype.central:central-publishing-maven-plugin:0.9.0 - Removed
org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13
17.1.0 Add `WIDTH_BUCKET`
This release adds support for scalar function WIDTH_BUCKET and capability FN_WIDTH_BUCKET by adding the following enum values:
ScalarFunctionCapability.WIDTH_BUCKETScalarFunction.WIDTH_BUCKET
The release also adds support for TIMESTAMP precision.
Breaking Changes: This release removes the following deprecated fields/methods from class com.exasol.adapter.AdapterProperties:
- Constant
EXCEPTION_HANDLING_PROPERTY - Method
getExceptionHandling() - Method
hasExceptionHandling()
Breaking Changes
- #269: Removed deprecated exception handling fields/methods from
AdapterProperties
Features
- #279: Added support for
TIMESTAMPprecision fieldfractionalSecondsPrecisionwith default 3. - #278: Added support for scalar function
WIDTH_BUCKET
Dependency Updates
Compile Dependency Updates
- Updated
com.exasol:udf-api-java:1.0.3to1.0.5
Test Dependency Updates
- Updated
nl.jqno.equalsverifier:equalsverifier:3.15.3to3.16.1 - Updated
org.junit.jupiter:junit-jupiter:5.10.1to5.10.2 - Updated
org.mockito:mockito-junit-jupiter:5.7.0to5.11.0
Plugin Dependency Updates
- Updated
com.exasol:error-code-crawler-maven-plugin:1.3.1to2.0.2 - Updated
com.exasol:project-keeper-maven-plugin:2.9.16to4.3.0 - Updated
org.apache.maven.plugins:maven-compiler-plugin:3.11.0to3.13.0 - Updated
org.apache.maven.plugins:maven-gpg-plugin:3.1.0to3.2.2 - Updated
org.apache.maven.plugins:maven-javadoc-plugin:3.6.2to3.6.3 - Updated
org.apache.maven.plugins:maven-surefire-plugin:3.2.2to3.2.5 - Added
org.apache.maven.plugins:maven-toolchains-plugin:3.1.0 - Updated
org.codehaus.mojo:flatten-maven-plugin:1.5.0to1.6.0 - Updated
org.codehaus.mojo:versions-maven-plugin:2.16.1to2.16.2 - Updated
org.jacoco:jacoco-maven-plugin:0.8.11to0.8.12 - Updated
org.sonarsource.scanner.maven:sonar-maven-plugin:3.10.0.2594to3.11.0.3922
17.0.1: Improve logging
Summary
This release logs responses for adapter calls at level FINER to simplify debugging and makes LoggingConfiguration serializable to allow configuring other components that require serializing.
The release also marks exception handling properties as deprecated in preparation of #269.
Features
- #276: Improved logging
Dependency Updates
Compile Dependency Updates
- Updated
com.exasol:udf-api-java:1.0.2to1.0.3 - Updated
jakarta.json:jakarta.json-api:2.1.2to2.1.3
Test Dependency Updates
- Updated
nl.jqno.equalsverifier:equalsverifier:3.14.3to3.15.3 - Updated
org.junit.jupiter:junit-jupiter:5.9.3to5.10.1 - Updated
org.mockito:mockito-junit-jupiter:5.4.0to5.7.0
Plugin Dependency Updates
- Updated
com.exasol:error-code-crawler-maven-plugin:1.2.3to1.3.1 - Updated
com.exasol:project-keeper-maven-plugin:2.9.7to2.9.16 - Updated
org.apache.maven.plugins:maven-enforcer-plugin:3.3.0to3.4.1 - Updated
org.apache.maven.plugins:maven-gpg-plugin:3.0.1to3.1.0 - Updated
org.apache.maven.plugins:maven-javadoc-plugin:3.5.0to3.6.2 - Updated
org.apache.maven.plugins:maven-surefire-plugin:3.0.0to3.2.2 - Updated
org.basepom.maven:duplicate-finder-maven-plugin:1.5.1to2.0.1 - Updated
org.codehaus.mojo:flatten-maven-plugin:1.4.1to1.5.0 - Updated
org.codehaus.mojo:versions-maven-plugin:2.15.0to2.16.1 - Updated
org.jacoco:jacoco-maven-plugin:0.8.9to0.8.11 - Updated
org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184to3.10.0.2594
17.0.0: Removed Adapter Properties
Summary
This release updates dependencies and removes some adapter properties for different reasons.
As removing the adapter properties is considered a breaking change in the public API of VSCOMJAVA this release comes with an updated major version.
Removed adapter properties
BINARY_COLUMN_HANDLINGIS_LOCAL
BINARY_COLUMN_HANDLING
Removed constants and access methods in class AdapterProperties:
String BINARY_COLUMN_HANDLINGBinaryColumnHandling hasBinaryColumnHandling()BinaryColumnHandling getBinaryColumnHandling()class com.exasol.adapter.BinaryColumnHandling
Rationale:
- This property was never implemented by any virtual schema up to now.
- As the property also was never used by any virtual schema in GitHub org
exasolthe removal is expected to go without any consequences.
IS_LOCAL
Removed constants and access methods in class AdapterProperties:
String IS_LOCAL_PROPERTYboolean hasIsLocal()boolean isLocalSource()
Rationale:
- This property is specific only for Exasol virtual schema.
- Hence its implementation has been moved with ticket VSEXA #85.
Rationale:
- Potentially remove
- See also ticket #269.
Features
- #268: Removed adapter properties
BINARY_COLUMN_HANDLINGandIS_LOCAL
Dependency Updates
Compile Dependency Updates
- Updated
com.exasol:error-reporting-java:1.0.0to1.0.1 - Updated
com.exasol:udf-api-java:1.0.1to1.0.2 - Updated
jakarta.json:jakarta.json-api:2.1.1to2.1.2
Test Dependency Updates
- Updated
nl.jqno.equalsverifier:equalsverifier:3.12to3.14.3 - Updated
org.junit.jupiter:junit-jupiter:5.9.1to5.9.3 - Updated
org.mockito:mockito-junit-jupiter:4.9.0to5.4.0
Plugin Dependency Updates
- Updated
com.exasol:error-code-crawler-maven-plugin:1.2.1to1.2.3 - Updated
com.exasol:project-keeper-maven-plugin:2.9.1to2.9.7 - Updated
org.apache.maven.plugins:maven-compiler-plugin:3.10.1to3.11.0 - Updated
org.apache.maven.plugins:maven-deploy-plugin:3.0.0to3.1.1 - Updated
org.apache.maven.plugins:maven-enforcer-plugin:3.1.0to3.3.0 - Updated
org.apache.maven.plugins:maven-javadoc-plugin:3.4.1to3.5.0 - Updated
org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M7to3.0.0 - Added
org.basepom.maven:duplicate-finder-maven-plugin:1.5.1 - Updated
org.codehaus.mojo:flatten-maven-plugin:1.3.0to1.4.1 - Updated
org.codehaus.mojo:versions-maven-plugin:2.13.0to2.15.0 - Updated
org.jacoco:jacoco-maven-plugin:0.8.8to0.8.9
16.2.0: Dependency Upgrade
Summary
Discontinuation of Exasol's artifactory maven.exasol.com caused some problems. In particular maven coordinates of com.exasol:exasol-script-api:6.1.7 have changed to com:exasol:udf-api-java:1.0.1.
Bugfixes
- #270: Updated dependencies
Dependency Updates
Compile Dependency Updates
- Updated
com.exasol:error-reporting-java:0.4.1to1.0.0 - Removed
com.exasol:exasol-script-api:6.1.7 - Added
com.exasol:udf-api-java:1.0.1 - Updated
jakarta.json:jakarta.json-api:2.1.0to2.1.1
Test Dependency Updates
- Updated
nl.jqno.equalsverifier:equalsverifier:3.10to3.12 - Updated
org.junit.jupiter:junit-jupiter:5.8.2to5.9.1 - Updated
org.mockito:mockito-junit-jupiter:4.6.1to4.9.0
Plugin Dependency Updates
- Updated
com.exasol:error-code-crawler-maven-plugin:1.1.2to1.2.1 - Updated
com.exasol:project-keeper-maven-plugin:2.7.0to2.9.1 - Updated
io.github.zlika:reproducible-build-maven-plugin:0.15to0.16 - Updated
org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1to3.0.0 - Updated
org.apache.maven.plugins:maven-javadoc-plugin:3.4.0to3.4.1 - Updated
org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5to3.0.0-M7 - Updated
org.codehaus.mojo:flatten-maven-plugin:1.2.7to1.3.0 - Updated
org.codehaus.mojo:versions-maven-plugin:2.10.0to2.13.0