Package io.trino.plugin.redshift
Class RedshiftClient
java.lang.Object
io.trino.plugin.jdbc.BaseJdbcClient
io.trino.plugin.redshift.RedshiftClient
- All Implemented Interfaces:
JdbcClient
-
Nested Class Summary
Nested classes/interfaces inherited from class io.trino.plugin.jdbc.BaseJdbcClient
BaseJdbcClient.TopNFunction -
Field Summary
Fields inherited from class io.trino.plugin.jdbc.BaseJdbcClient
connectionFactory, identifierQuote, jdbcTypesMappedToVarchar, queryBuilder, queryModifier -
Constructor Summary
ConstructorsConstructorDescriptionRedshiftClient(BaseJdbcConfig config, ConnectionFactory connectionFactory, JdbcStatisticsConfig statisticsConfig, QueryBuilder queryBuilder, IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier, RedshiftConfig redshiftConfig) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddColumn(ConnectorSession session, Connection connection, RemoteTableName table, ColumnMetadata column) createTableSqls(RemoteTableName remoteTableName, List<String> columns, ConnectorTableMetadata tableMetadata) delete(ConnectorSession session, JdbcTableHandle handle) protected voiddropSchema(ConnectorSession session, Connection connection, String remoteSchemaName, boolean cascade) getConnection(ConnectorSession session, JdbcSplit split, JdbcTableHandle tableHandle) getPreparedStatement(Connection connection, String sql, Optional<Integer> columnCount) getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain<ColumnHandle> tupleDomain) implementAggregation(ConnectorSession session, AggregateFunction aggregate, Map<String, ColumnHandle> assignments) implementJoin(ConnectorSession session, JoinType joinType, PreparedQuery leftSource, PreparedQuery rightSource, List<JdbcJoinCondition> joinConditions, Map<JdbcColumnHandle, String> rightAssignments, Map<JdbcColumnHandle, String> leftAssignments, JoinStatistics statistics) booleanisLimitGuaranteed(ConnectorSession session) protected booleanisSupportedJoinCondition(ConnectorSession session, JdbcJoinCondition joinCondition) booleanisTopNGuaranteed(ConnectorSession session) protected Optional<BiFunction<String,Long, String>> protected voidrenameTable(ConnectorSession session, Connection connection, String catalogName, String remoteSchemaName, String remoteTableName, String newRemoteSchemaName, String newRemoteTableName) voidsetColumnComment(ConnectorSession session, JdbcTableHandle handle, JdbcColumnHandle column, Optional<String> comment) voidsetColumnType(ConnectorSession session, JdbcTableHandle handle, JdbcColumnHandle column, Type type) voidsetTableComment(ConnectorSession session, JdbcTableHandle handle, Optional<String> comment) booleansupportsTopN(ConnectorSession session, JdbcTableHandle handle, List<JdbcSortItem> sortOrder) toColumnMapping(ConnectorSession session, Connection connection, JdbcTypeHandle type) protected Optional<BaseJdbcClient.TopNFunction>toWriteMapping(ConnectorSession session, Type type) update(ConnectorSession session, JdbcTableHandle handle) protected voidverifyColumnName(DatabaseMetaData databaseMetadata, String columnName) protected voidverifySchemaName(DatabaseMetaData databaseMetadata, String schemaName) protected voidverifyTableName(DatabaseMetaData databaseMetadata, String tableName) Methods inherited from class io.trino.plugin.jdbc.BaseJdbcClient
addColumn, applyQueryTransformations, beginCreateTable, beginInsertTable, beginInsertTable, buildInsertSql, buildProcedure, buildSql, commitCreateTable, copyTableSchema, createSchema, createSchema, createTable, createTable, createTable, createTable, createTableSql, dropColumn, dropSchema, dropTable, dropTable, escapeObjectNameForMetadataQuery, escapeObjectNameForMetadataQuery, execute, execute, filterSchema, finishInsertTable, getAdditionalPredicate, getCaseSensitivityForColumns, getColumnDefinitionSql, getColumns, getColumns, getColumns, getConnection, getConnection, getForcedMappingToVarchar, getIdentifierMapping, getInteger, getMaxWriteParallelism, getProcedureHandle, getRemoteIdentifiers, getSchemaNames, getSplits, getSplits, getTableHandle, getTableHandle, getTableNames, getTableProperties, getTables, getTableSchemaName, getTableTypes, listSchemas, mapToUnboundedVarchar, postProcessInsertTableNameClause, prepareQuery, prepareQuery, preventTextualTypeAggregationPushdown, quoted, quoted, quoted, renameColumn, renameColumn, renameSchema, renameSchema, renameTable, renameTable, rollbackCreateTable, supportsLimit, supportsRetries, toColumnMappings, truncateTable, varcharLiteralMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.trino.plugin.jdbc.JdbcClient
abortReadConnection, convertPredicate, getSupportedType, getSystemTable, getTableComment, getTableScanRedirection, getTableStatistics, schemaExists, setTableProperties, supportsAggregationPushdown
-
Constructor Details
-
RedshiftClient
@Inject public RedshiftClient(BaseJdbcConfig config, ConnectionFactory connectionFactory, JdbcStatisticsConfig statisticsConfig, QueryBuilder queryBuilder, IdentifierMapping identifierMapping, RemoteQueryModifier queryModifier, RedshiftConfig redshiftConfig)
-
-
Method Details
-
getConnection
public Connection getConnection(ConnectorSession session, JdbcSplit split, JdbcTableHandle tableHandle) throws SQLException - Specified by:
getConnectionin interfaceJdbcClient- Overrides:
getConnectionin classBaseJdbcClient- Throws:
SQLException
-
dropSchema
protected void dropSchema(ConnectorSession session, Connection connection, String remoteSchemaName, boolean cascade) throws SQLException - Overrides:
dropSchemain classBaseJdbcClient- Throws:
SQLException
-
createTableSqls
protected List<String> createTableSqls(RemoteTableName remoteTableName, List<String> columns, ConnectorTableMetadata tableMetadata) - Overrides:
createTableSqlsin classBaseJdbcClient
-
setTableComment
public void setTableComment(ConnectorSession session, JdbcTableHandle handle, Optional<String> comment) -
implementAggregation
public Optional<JdbcExpression> implementAggregation(ConnectorSession session, AggregateFunction aggregate, Map<String, ColumnHandle> assignments) -
getTableStatistics
public TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain<ColumnHandle> tupleDomain) - Specified by:
getTableStatisticsin interfaceJdbcClient- Overrides:
getTableStatisticsin classBaseJdbcClient
-
supportsTopN
public boolean supportsTopN(ConnectorSession session, JdbcTableHandle handle, List<JdbcSortItem> sortOrder) - Specified by:
supportsTopNin interfaceJdbcClient- Overrides:
supportsTopNin classBaseJdbcClient
-
topNFunction
- Overrides:
topNFunctionin classBaseJdbcClient
-
isTopNGuaranteed
- Specified by:
isTopNGuaranteedin interfaceJdbcClient- Overrides:
isTopNGuaranteedin classBaseJdbcClient
-
isSupportedJoinCondition
protected boolean isSupportedJoinCondition(ConnectorSession session, JdbcJoinCondition joinCondition) - Overrides:
isSupportedJoinConditionin classBaseJdbcClient
-
implementJoin
public Optional<PreparedQuery> implementJoin(ConnectorSession session, JoinType joinType, PreparedQuery leftSource, PreparedQuery rightSource, List<JdbcJoinCondition> joinConditions, Map<JdbcColumnHandle, String> rightAssignments, Map<JdbcColumnHandle, String> leftAssignments, JoinStatistics statistics) - Specified by:
implementJoinin interfaceJdbcClient- Overrides:
implementJoinin classBaseJdbcClient
-
renameTable
protected void renameTable(ConnectorSession session, Connection connection, String catalogName, String remoteSchemaName, String remoteTableName, String newRemoteSchemaName, String newRemoteTableName) throws SQLException - Overrides:
renameTablein classBaseJdbcClient- Throws:
SQLException
-
getPreparedStatement
public PreparedStatement getPreparedStatement(Connection connection, String sql, Optional<Integer> columnCount) throws SQLException - Specified by:
getPreparedStatementin interfaceJdbcClient- Overrides:
getPreparedStatementin classBaseJdbcClient- Throws:
SQLException
-
delete
- Specified by:
deletein interfaceJdbcClient- Overrides:
deletein classBaseJdbcClient
-
update
- Specified by:
updatein interfaceJdbcClient- Overrides:
updatein classBaseJdbcClient
-
addColumn
protected void addColumn(ConnectorSession session, Connection connection, RemoteTableName table, ColumnMetadata column) throws SQLException - Overrides:
addColumnin classBaseJdbcClient- Throws:
SQLException
-
verifySchemaName
protected void verifySchemaName(DatabaseMetaData databaseMetadata, String schemaName) throws SQLException - Overrides:
verifySchemaNamein classBaseJdbcClient- Throws:
SQLException
-
verifyTableName
protected void verifyTableName(DatabaseMetaData databaseMetadata, String tableName) throws SQLException - Overrides:
verifyTableNamein classBaseJdbcClient- Throws:
SQLException
-
verifyColumnName
protected void verifyColumnName(DatabaseMetaData databaseMetadata, String columnName) throws SQLException - Overrides:
verifyColumnNamein classBaseJdbcClient- Throws:
SQLException
-
toColumnMapping
public Optional<ColumnMapping> toColumnMapping(ConnectorSession session, Connection connection, JdbcTypeHandle type) -
toWriteMapping
-
limitFunction
- Overrides:
limitFunctionin classBaseJdbcClient
-
isLimitGuaranteed
- Specified by:
isLimitGuaranteedin interfaceJdbcClient- Overrides:
isLimitGuaranteedin classBaseJdbcClient
-
setColumnComment
public void setColumnComment(ConnectorSession session, JdbcTableHandle handle, JdbcColumnHandle column, Optional<String> comment) -
setColumnType
public void setColumnType(ConnectorSession session, JdbcTableHandle handle, JdbcColumnHandle column, Type type) - Specified by:
setColumnTypein interfaceJdbcClient- Overrides:
setColumnTypein classBaseJdbcClient
-