Common Module of Exasol Virtual Schemas Adapters 18.0.2, released 2026-06-02
June 2, 2026 ยท View on GitHub
Code name: Improve code quality
Summary
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