Class CalciteConnectionWrapper

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.QueryProvider
    Direct Known Subclasses:
    JdbcConnection

    public abstract class CalciteConnectionWrapper
    extends java.lang.Object
    implements org.apache.beam.vendor.calcite.v1_40_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.

    • Field Summary

      • Fields inherited from interface java.sql.Connection

        TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected CalciteConnectionWrapper​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection connection)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void abort​(java.util.concurrent.Executor executor)  
      void clearWarnings()  
      void close()  
      void commit()  
      org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.config.CalciteConnectionConfig config()  
      protected org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection connection()  
      java.sql.Array createArrayOf​(java.lang.String typeName, java.lang.Object[] elements)  
      java.sql.Blob createBlob()  
      java.sql.Clob createClob()  
      java.sql.NClob createNClob()  
      org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalcitePrepare.Context createPrepareContext()  
      <T> org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Queryable<T> createQuery​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression, java.lang.Class<T> rowType)  
      <T> org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Queryable<T> createQuery​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression, java.lang.reflect.Type rowType)  
      java.sql.SQLXML createSQLXML()  
      java.sql.Statement createStatement()  
      java.sql.Statement createStatement​(int resultSetType, int resultSetConcurrency)  
      java.sql.Statement createStatement​(int resultSetType, int resultSetConcurrency, int resultSetHoldability)  
      java.sql.Struct createStruct​(java.lang.String typeName, java.lang.Object[] attributes)  
      <T> T execute​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression, java.lang.Class<T> type)  
      java.lang.Object execute​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression, java.lang.reflect.Type type)  
      <T> org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Enumerator<T> executeQuery​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Queryable<T> queryable)  
      boolean getAutoCommit()  
      java.lang.String getCatalog()  
      java.util.Properties getClientInfo()  
      java.lang.String getClientInfo​(java.lang.String name)  
      int getHoldability()  
      java.sql.DatabaseMetaData getMetaData()  
      int getNetworkTimeout()  
      java.util.Properties getProperties()  
      org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.schema.SchemaPlus getRootSchema()  
      @Nullable java.lang.String getSchema()  
      int getTransactionIsolation()  
      org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.adapter.java.JavaTypeFactory getTypeFactory()  
      java.util.Map<java.lang.String,​java.lang.Class<?>> getTypeMap()  
      java.sql.SQLWarning getWarnings()  
      boolean isClosed()  
      boolean isReadOnly()  
      boolean isValid​(int timeout)  
      boolean isWrapperFor​(java.lang.Class<?> iface)  
      java.lang.String nativeSQL​(java.lang.String sql)  
      java.sql.CallableStatement prepareCall​(java.lang.String sql)  
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int resultSetType, int resultSetConcurrency)  
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int autoGeneratedKeys)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int[] columnIndexes)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int resultSetType, int resultSetConcurrency)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, java.lang.String[] columnNames)  
      void releaseSavepoint​(java.sql.Savepoint savepoint)  
      void rollback()  
      void rollback​(java.sql.Savepoint savepoint)  
      void setAutoCommit​(boolean autoCommit)  
      void setCatalog​(java.lang.String catalog)  
      void setClientInfo​(java.lang.String name, java.lang.String value)  
      void setClientInfo​(java.util.Properties properties)  
      void setHoldability​(int holdability)  
      void setNetworkTimeout​(java.util.concurrent.Executor executor, int milliseconds)  
      void setReadOnly​(boolean readOnly)  
      java.sql.Savepoint setSavepoint()  
      java.sql.Savepoint setSavepoint​(java.lang.String name)  
      void setSchema​(java.lang.String schema)  
      void setTransactionIsolation​(int level)  
      void setTypeMap​(java.util.Map<java.lang.String,​java.lang.Class<?>> map)  
      <T> T unwrap​(java.lang.Class<T> iface)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.sql.Connection

        beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
    • Constructor Detail

      • CalciteConnectionWrapper

        protected CalciteConnectionWrapper​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection connection)
    • Method Detail

      • connection

        protected org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection connection()
      • getRootSchema

        public org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.schema.SchemaPlus getRootSchema()
        Specified by:
        getRootSchema in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection
      • getTypeFactory

        public org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.adapter.java.JavaTypeFactory getTypeFactory()
        Specified by:
        getTypeFactory in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection
      • getProperties

        public java.util.Properties getProperties()
        Specified by:
        getProperties in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection
      • createStatement

        public java.sql.Statement createStatement()
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • nativeSQL

        public java.lang.String nativeSQL​(java.lang.String sql)
                                   throws java.sql.SQLException
        Specified by:
        nativeSQL in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setAutoCommit

        public void setAutoCommit​(boolean autoCommit)
                           throws java.sql.SQLException
        Specified by:
        setAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getAutoCommit

        public boolean getAutoCommit()
                              throws java.sql.SQLException
        Specified by:
        getAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • commit

        public void commit()
                    throws java.sql.SQLException
        Specified by:
        commit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback()
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • close

        public void close()
                   throws java.sql.SQLException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isClosed

        public boolean isClosed()
                         throws java.sql.SQLException
        Specified by:
        isClosed in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getMetaData

        public java.sql.DatabaseMetaData getMetaData()
                                              throws java.sql.SQLException
        Specified by:
        getMetaData in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
                         throws java.sql.SQLException
        Specified by:
        setReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.sql.SQLException
        Specified by:
        isReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setCatalog

        public void setCatalog​(java.lang.String catalog)
                        throws java.sql.SQLException
        Specified by:
        setCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getCatalog

        public java.lang.String getCatalog()
                                    throws java.sql.SQLException
        Specified by:
        getCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTransactionIsolation

        public void setTransactionIsolation​(int level)
                                     throws java.sql.SQLException
        Specified by:
        setTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTransactionIsolation

        public int getTransactionIsolation()
                                    throws java.sql.SQLException
        Specified by:
        getTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getWarnings

        public java.sql.SQLWarning getWarnings()
                                        throws java.sql.SQLException
        Specified by:
        getWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • clearWarnings

        public void clearWarnings()
                           throws java.sql.SQLException
        Specified by:
        clearWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTypeMap

        public java.util.Map<java.lang.String,​java.lang.Class<?>> getTypeMap()
                                                                            throws java.sql.SQLException
        Specified by:
        getTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTypeMap

        public void setTypeMap​(java.util.Map<java.lang.String,​java.lang.Class<?>> map)
                        throws java.sql.SQLException
        Specified by:
        setTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setHoldability

        public void setHoldability​(int holdability)
                            throws java.sql.SQLException
        Specified by:
        setHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getHoldability

        public int getHoldability()
                           throws java.sql.SQLException
        Specified by:
        getHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint()
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint​(java.lang.String name)
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback​(java.sql.Savepoint savepoint)
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • releaseSavepoint

        public void releaseSavepoint​(java.sql.Savepoint savepoint)
                              throws java.sql.SQLException
        Specified by:
        releaseSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency,
                                                  int resultSetHoldability)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency,
                                                           int resultSetHoldability)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency,
                                                      int resultSetHoldability)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int autoGeneratedKeys)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int[] columnIndexes)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           java.lang.String[] columnNames)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createClob

        public java.sql.Clob createClob()
                                 throws java.sql.SQLException
        Specified by:
        createClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createBlob

        public java.sql.Blob createBlob()
                                 throws java.sql.SQLException
        Specified by:
        createBlob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createNClob

        public java.sql.NClob createNClob()
                                   throws java.sql.SQLException
        Specified by:
        createNClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createSQLXML

        public java.sql.SQLXML createSQLXML()
                                     throws java.sql.SQLException
        Specified by:
        createSQLXML in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isValid

        public boolean isValid​(int timeout)
                        throws java.sql.SQLException
        Specified by:
        isValid in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setClientInfo

        public void setClientInfo​(java.lang.String name,
                                  java.lang.String value)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setClientInfo

        public void setClientInfo​(java.util.Properties properties)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • getClientInfo

        public java.lang.String getClientInfo​(java.lang.String name)
                                       throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.util.Properties getClientInfo()
                                           throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createArrayOf

        public java.sql.Array createArrayOf​(java.lang.String typeName,
                                            java.lang.Object[] elements)
                                     throws java.sql.SQLException
        Specified by:
        createArrayOf in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStruct

        public java.sql.Struct createStruct​(java.lang.String typeName,
                                            java.lang.Object[] attributes)
                                     throws java.sql.SQLException
        Specified by:
        createStruct in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSchema

        public void setSchema​(java.lang.String schema)
                       throws java.sql.SQLException
        Specified by:
        setSchema in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection
        Specified by:
        setSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getSchema

        public @Nullable java.lang.String getSchema()
                                             throws java.sql.SQLException
        Specified by:
        getSchema in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection
        Specified by:
        getSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • abort

        public void abort​(java.util.concurrent.Executor executor)
                   throws java.sql.SQLException
        Specified by:
        abort in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setNetworkTimeout

        public void setNetworkTimeout​(java.util.concurrent.Executor executor,
                                      int milliseconds)
                               throws java.sql.SQLException
        Specified by:
        setNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getNetworkTimeout

        public int getNetworkTimeout()
                              throws java.sql.SQLException
        Specified by:
        getNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • config

        public org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.config.CalciteConnectionConfig config()
        Specified by:
        config in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection
      • createPrepareContext

        public org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalcitePrepare.Context createPrepareContext()
        Specified by:
        createPrepareContext in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.jdbc.CalciteConnection
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • createQuery

        public <T> org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Queryable<T> createQuery​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression,
                                                                                                             java.lang.Class<T> rowType)
        Specified by:
        createQuery in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.QueryProvider
      • createQuery

        public <T> org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Queryable<T> createQuery​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression,
                                                                                                             java.lang.reflect.Type rowType)
        Specified by:
        createQuery in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.QueryProvider
      • execute

        public <T> T execute​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression,
                             java.lang.Class<T> type)
        Specified by:
        execute in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.QueryProvider
      • execute

        public java.lang.Object execute​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.tree.Expression expression,
                                        java.lang.reflect.Type type)
        Specified by:
        execute in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.QueryProvider
      • executeQuery

        public <T> org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Enumerator<T> executeQuery​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Queryable<T> queryable)
        Specified by:
        executeQuery in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.QueryProvider