
io.prestosql.plugin.jdbc.ForwardingJdbcClient Maven / Gradle / Ivy
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.prestosql.plugin.jdbc;
import io.prestosql.spi.connector.AggregateFunction;
import io.prestosql.spi.connector.ColumnHandle;
import io.prestosql.spi.connector.ColumnMetadata;
import io.prestosql.spi.connector.ConnectorSession;
import io.prestosql.spi.connector.ConnectorSplitSource;
import io.prestosql.spi.connector.ConnectorTableMetadata;
import io.prestosql.spi.connector.SchemaTableName;
import io.prestosql.spi.connector.SystemTable;
import io.prestosql.spi.connector.TableScanRedirectApplicationResult;
import io.prestosql.spi.predicate.TupleDomain;
import io.prestosql.spi.statistics.TableStatistics;
import io.prestosql.spi.type.Type;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Supplier;
import static java.util.Objects.requireNonNull;
public abstract class ForwardingJdbcClient
implements JdbcClient
{
public static JdbcClient of(Supplier jdbcClientSupplier)
{
requireNonNull(jdbcClientSupplier, "jdbcClientSupplier is null");
return new ForwardingJdbcClient()
{
@Override
public JdbcClient delegate()
{
return requireNonNull(jdbcClientSupplier.get(), "jdbcClientSupplier.get() is null");
}
};
}
protected abstract JdbcClient delegate();
@Override
public boolean schemaExists(ConnectorSession session, String schema)
{
return delegate().schemaExists(session, schema);
}
@Override
public Set getSchemaNames(ConnectorSession session)
{
return delegate().getSchemaNames(session);
}
@Override
public List getTableNames(ConnectorSession session, Optional schema)
{
return delegate().getTableNames(session, schema);
}
@Override
public Optional getTableHandle(ConnectorSession session, SchemaTableName schemaTableName)
{
return delegate().getTableHandle(session, schemaTableName);
}
@Override
public List getColumns(ConnectorSession session, JdbcTableHandle tableHandle)
{
return delegate().getColumns(session, tableHandle);
}
@Override
public Optional toPrestoType(ConnectorSession session, Connection connection, JdbcTypeHandle typeHandle)
{
return delegate().toPrestoType(session, connection, typeHandle);
}
@Override
public List getColumnMappings(ConnectorSession session, List typeHandles)
{
return delegate().getColumnMappings(session, typeHandles);
}
@Override
public WriteMapping toWriteMapping(ConnectorSession session, Type type)
{
return delegate().toWriteMapping(session, type);
}
@Override
public boolean supportsGroupingSets()
{
return delegate().supportsGroupingSets();
}
@Override
public Optional implementAggregation(ConnectorSession session, AggregateFunction aggregate, Map assignments)
{
return delegate().implementAggregation(session, aggregate, assignments);
}
@Override
public ConnectorSplitSource getSplits(ConnectorSession session, JdbcTableHandle layoutHandle)
{
return delegate().getSplits(session, layoutHandle);
}
@Override
public Connection getConnection(ConnectorSession session, JdbcSplit split)
throws SQLException
{
return delegate().getConnection(session, split);
}
@Override
public void abortReadConnection(Connection connection)
throws SQLException
{
delegate().abortReadConnection(connection);
}
@Override
public PreparedStatement buildSql(ConnectorSession session, Connection connection, JdbcSplit split, JdbcTableHandle tableHandle, List columnHandles)
throws SQLException
{
return delegate().buildSql(session, connection, split, tableHandle, columnHandles);
}
@Override
public JdbcOutputTableHandle beginCreateTable(ConnectorSession session, ConnectorTableMetadata tableMetadata)
{
return delegate().beginCreateTable(session, tableMetadata);
}
@Override
public void commitCreateTable(ConnectorSession session, JdbcOutputTableHandle handle)
{
delegate().commitCreateTable(session, handle);
}
@Override
public JdbcOutputTableHandle beginInsertTable(ConnectorSession session, JdbcTableHandle tableHandle, List columns)
{
return delegate().beginInsertTable(session, tableHandle, columns);
}
@Override
public void finishInsertTable(ConnectorSession session, JdbcOutputTableHandle handle)
{
delegate().finishInsertTable(session, handle);
}
@Override
public void dropTable(ConnectorSession session, JdbcTableHandle jdbcTableHandle)
{
delegate().dropTable(session, jdbcTableHandle);
}
@Override
public void rollbackCreateTable(ConnectorSession session, JdbcOutputTableHandle handle)
{
delegate().rollbackCreateTable(session, handle);
}
@Override
public String buildInsertSql(JdbcOutputTableHandle handle, List columnWriters)
{
return delegate().buildInsertSql(handle, columnWriters);
}
@Override
public Connection getConnection(ConnectorSession session, JdbcOutputTableHandle handle)
throws SQLException
{
return delegate().getConnection(session, handle);
}
@Override
public PreparedStatement getPreparedStatement(Connection connection, String sql)
throws SQLException
{
return delegate().getPreparedStatement(connection, sql);
}
@Override
public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain tupleDomain)
{
return delegate().getTableStatistics(session, handle, tupleDomain);
}
@Override
public boolean supportsLimit()
{
return delegate().supportsLimit();
}
@Override
public boolean isLimitGuaranteed(ConnectorSession session)
{
return delegate().isLimitGuaranteed(session);
}
@Override
public void setColumnComment(ConnectorSession session, JdbcTableHandle handle, JdbcColumnHandle column, Optional comment)
{
delegate().setColumnComment(session, handle, column, comment);
}
@Override
public void addColumn(ConnectorSession session, JdbcTableHandle handle, ColumnMetadata column)
{
delegate().addColumn(session, handle, column);
}
@Override
public void dropColumn(ConnectorSession session, JdbcTableHandle handle, JdbcColumnHandle column)
{
delegate().dropColumn(session, handle, column);
}
@Override
public void renameColumn(ConnectorSession session, JdbcTableHandle handle, JdbcColumnHandle jdbcColumn, String newColumnName)
{
delegate().renameColumn(session, handle, jdbcColumn, newColumnName);
}
@Override
public void renameTable(ConnectorSession session, JdbcTableHandle handle, SchemaTableName newTableName)
{
delegate().renameTable(session, handle, newTableName);
}
@Override
public void createTable(ConnectorSession session, ConnectorTableMetadata tableMetadata)
{
delegate().createTable(session, tableMetadata);
}
@Override
public void createSchema(ConnectorSession session, String schemaName)
{
delegate().createSchema(session, schemaName);
}
@Override
public void dropSchema(ConnectorSession session, String schemaName)
{
delegate().dropSchema(session, schemaName);
}
@Override
public Optional getSystemTable(ConnectorSession session, SchemaTableName tableName)
{
return delegate().getSystemTable(session, tableName);
}
@Override
public String quoted(String name)
{
return delegate().quoted(name);
}
@Override
public String quoted(RemoteTableName remoteTableName)
{
return delegate().quoted(remoteTableName);
}
@Override
public Map getTableProperties(ConnectorSession session, JdbcTableHandle tableHandle)
{
return delegate().getTableProperties(session, tableHandle);
}
@Override
public Optional getTableScanRedirection(ConnectorSession session, JdbcTableHandle tableHandle)
{
return delegate().getTableScanRedirection(session, tableHandle);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy