Class CalciteConnectionWrapper

java.lang.Object
org.apache.beam.sdk.extensions.sql.impl.CalciteConnectionWrapper
All Implemented Interfaces:
AutoCloseable, Connection, Wrapper, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.jdbc.CalciteConnection, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.linq4j.QueryProvider
Direct Known Subclasses:
JdbcConnection

public abstract class CalciteConnectionWrapper extends Object implements org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.jdbc.CalciteConnection
Abstract wrapper for CalciteConnection to simplify extension.

Calcite JDBC model lacks convenient Connection class to extend that would also be supported by its factories without significant copy-pasting.

The purpose of this class is to hide the delegation logic from the children classes (JdbcConnection) to make them cleaner and easier to read. It has no functional significance.

This class only delegates to the underlying CalciteConnection, all added or modified functionality should go into into subclasses.

Ultimately a patch to Calcite can be made to simplify this logic.