Package com.clickhouse.jdbc.internal

# Class ClickHouseStatementImpl

java.lang.Object
com.clickhouse.jdbc.JdbcWrapper
com.clickhouse.jdbc.internal.ClickHouseStatementImpl

All Implemented Interfaces:
  `ClickHouseConfigChangeListener<ClickHouseRequest<?>>`, `ClickHouseStatement`, `AutoCloseable`, `Statement`, `Wrapper`

Direct Known Subclasses:
  `AbstractPreparedStatement`

public class ClickHouseStatementImpl extends JdbcWrapper implements ClickHouseConfigChangeListener<ClickHouseRequest<?>>, ClickHouseStatement

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final JdbcTypeMapping`
`mapper`
`protected ClickHouseSqlStatement[]`
`parsedStmts`

### Fields inherited from interface java.sql.Statement

`CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`ClickHouseStatementImpl(ClickHouseConnectionImpl connection, ClickHouseRequest<?> request, int resultSetType, int resultSetConcurrency, int resultSetHoldability)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addBatch(String sql)`
`void`
`cancel()`
`void`
`clearBatch()`
`void`
`clearWarnings()`
`void`
`close()`
`void`
`closeOnCompletion()`
`protected void`
`ensureOpen()`
`boolean`
`execute(String sql)`
`boolean`
`execute(String sql, int autoGeneratedKeys)`
`boolean`
`execute(String sql, int[] columnIndexes)`
`boolean`
`execute(String sql, String[] columnNames)`
`int[]`
`executeBatch()`
`protected int`
`executeInsert(String sql, InputStream input)`
`long[]`
`executeLargeBatch()`
`long`
`executeLargeUpdate(String sql)`
`ResultSet`
`executeQuery(String sql)`
`protected ClickHouseResponse`
`executeStatement(ClickHouseSqlStatement stmt, Map<ClickHouseOption,Serializable> options, List<ClickHouseExternalTable> tables, Map<String,String> settings)`
`protected ClickHouseResponse`
`executeStatement(String stmt, Map<ClickHouseOption,Serializable> options, List<ClickHouseExternalTable> tables, Map<String,String> settings)`
`int`
`executeUpdate(String sql)`
`int`
`executeUpdate(String sql, int autoGeneratedKeys)`
`int`
`executeUpdate(String sql, int[] columnIndexes)`
`int`
`executeUpdate(String sql, String[] columnNames)`
`ClickHouseConfig`
`getConfig()`
`ClickHouseConnection`
`getConnection()`
`protected ClickHouseDataProcessor`
`getDataProcessor(ClickHouseInputStream input, Map<String,Serializable> settings, ClickHouseColumn[] columns)`
`protected ClickHouseDataProcessor`
`getDataProcessor(ClickHouseOutputStream output, Map<String,Serializable> settings, ClickHouseColumn[] columns)`
`int`
`getFetchDirection()`
`int`
`getFetchSize()`
`protected ClickHouseFile`
`getFile(ClickHouseFile f, ClickHouseSqlStatement stmt)`
`ResultSet`
`getGeneratedKeys()`
`long`
`getLargeMaxRows()`
`long`
`getLargeUpdateCount()`
`protected ClickHouseSqlStatement`
`getLastStatement()`
`int`
`getMaxFieldSize()`
`int`
`getMaxRows()`
`OutputStream`
`getMirroredOutput()`
Gets mirrored output stream.
`boolean`
`getMoreResults()`
`boolean`
`getMoreResults(int current)`
`int`
`getNullAsDefault()`
`int`
`getQueryTimeout()`
`ClickHouseRequest<?>`
`getRequest()`
`ResultSet`
`getResultSet()`
`int`
`getResultSetConcurrency()`
`int`
`getResultSetHoldability()`
`int`
`getResultSetType()`
`int`
`getUpdateCount()`
`SQLWarning`
`getWarnings()`
`boolean`
`isClosed()`
`boolean`
`isCloseOnCompletion()`
`boolean`
`isPoolable()`
`boolean`
`isWrapperFor(Class<?> iface)`
`protected ClickHouseResultSet`
`newEmptyResultSet()`
`void`
`optionChanged(ClickHouseRequest<?> source, ClickHouseOption option, Serializable oldValue, Serializable newValue)`
`protected ClickHouseSqlStatement`
`parseSqlStatements(String sql)`
`protected ClickHouseResponse`
`processSqlStatement(ClickHouseSqlStatement stmt)`
`protected void`
`resetDataProcessor()`
`void`
`setCursorName(String name)`
`void`
`setEscapeProcessing(boolean enable)`
`void`
`setFetchDirection(int direction)`
`void`
`setFetchSize(int rows)`
`void`
`setLargeMaxRows(long max)`
`protected void`
`setLastStatement(ClickHouseSqlStatement stmt)`
`void`
`setMaxFieldSize(int max)`
`void`
`setMaxRows(int max)`
`void`
`setMirroredOutput(OutputStream out)`
Sets mirrored output stream, which will be later used for dumping all `ResultSet` generated by this statement, via `ClickHouseInputStream.setCopyToTarget(OutputStream)`.
`void`
`setNullAsDefault(int level)`
`void`
`setPoolable(boolean poolable)`
`void`
`setQueryTimeout(int seconds)`
`void`
`settingChanged(ClickHouseRequest<?> source, String setting, Serializable oldValue, Serializable newValue)`
`<T> T`
`unwrap(Class<T> iface)`
`protected ResultSet`
`updateResult(ClickHouseSqlStatement stmt, ClickHouseResponse response)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface com.clickhouse.config.ClickHouseConfigChangeListener

`propertyChanged`

### Methods inherited from interface com.clickhouse.jdbc.ClickHouseStatement

`write`

### Methods inherited from interface java.sql.Statement

`enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, isSimpleIdentifier`

## Field Details

### mapper

protected final JdbcTypeMapping mapper

### parsedStmts

protected ClickHouseSqlStatement[] parsedStmts

## Constructor Details

### ClickHouseStatementImpl

protected ClickHouseStatementImpl(ClickHouseConnectionImpl connection, ClickHouseRequest<?> request, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException

Throws:
  `SQLException`

## Method Details

### ensureOpen

protected void ensureOpen() throws SQLException

Throws:
  `SQLException`

### getFile

protected ClickHouseFile getFile(ClickHouseFile f, ClickHouseSqlStatement stmt)

### processSqlStatement

protected ClickHouseResponse processSqlStatement(ClickHouseSqlStatement stmt) throws SQLException

Throws:
  `SQLException`

### executeStatement

protected ClickHouseResponse executeStatement(String stmt, Map<ClickHouseOption,Serializable> options, List<ClickHouseExternalTable> tables, Map<String,String> settings) throws SQLException

Throws:
  `SQLException`

### executeStatement

protected ClickHouseResponse executeStatement(ClickHouseSqlStatement stmt, Map<ClickHouseOption,Serializable> options, List<ClickHouseExternalTable> tables, Map<String,String> settings) throws SQLException

Throws:
  `SQLException`

### executeInsert

protected int executeInsert(String sql, InputStream input) throws SQLException

Throws:
  `SQLException`

### getDataProcessor

protected ClickHouseDataProcessor getDataProcessor(ClickHouseInputStream input, Map<String,Serializable> settings, ClickHouseColumn[] columns) throws SQLException

Throws:
  `SQLException`

### getDataProcessor

protected ClickHouseDataProcessor getDataProcessor(ClickHouseOutputStream output, Map<String,Serializable> settings, ClickHouseColumn[] columns) throws SQLException

Throws:
  `SQLException`

### resetDataProcessor

protected void resetDataProcessor()

### getLastStatement

protected ClickHouseSqlStatement getLastStatement()

### setLastStatement

protected void setLastStatement(ClickHouseSqlStatement stmt)

### parseSqlStatements

protected ClickHouseSqlStatement parseSqlStatements(String sql)

### newEmptyResultSet

protected ClickHouseResultSet newEmptyResultSet() throws SQLException

Throws:
  `SQLException`

### updateResult

protected ResultSet updateResult(ClickHouseSqlStatement stmt, ClickHouseResponse response) throws SQLException

Throws:
  `SQLException`

### optionChanged

public void optionChanged(ClickHouseRequest<?> source, ClickHouseOption option, Serializable oldValue, Serializable newValue)

Specified by:
  `optionChanged` in interface `ClickHouseConfigChangeListener<ClickHouseRequest<?>>`

### settingChanged

public void settingChanged(ClickHouseRequest<?> source, String setting, Serializable oldValue, Serializable newValue)

Specified by:
  `settingChanged` in interface `ClickHouseConfigChangeListener<ClickHouseRequest<?>>`

### execute

public boolean execute(String sql) throws SQLException

Specified by:
  `execute` in interface `Statement`
Throws:
  `SQLException`

### executeQuery

public ResultSet executeQuery(String sql) throws SQLException

Specified by:
  `executeQuery` in interface `Statement`
Throws:
  `SQLException`

### executeLargeUpdate

public long executeLargeUpdate(String sql) throws SQLException

Specified by:
  `executeLargeUpdate` in interface `Statement`
Throws:
  `SQLException`

### executeUpdate

public int executeUpdate(String sql) throws SQLException

Specified by:
  `executeUpdate` in interface `Statement`
Throws:
  `SQLException`

### close

public void close() throws SQLException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Statement`
Throws:
  `SQLException`

### getMaxFieldSize

public int getMaxFieldSize() throws SQLException

Specified by:
  `getMaxFieldSize` in interface `Statement`
Throws:
  `SQLException`

### setMaxFieldSize

public void setMaxFieldSize(int max) throws SQLException

Specified by:
  `setMaxFieldSize` in interface `Statement`
Throws:
  `SQLException`

### getLargeMaxRows

public long getLargeMaxRows() throws SQLException

Specified by:
  `getLargeMaxRows` in interface `Statement`
Throws:
  `SQLException`

### getMaxRows

public int getMaxRows() throws SQLException

Specified by:
  `getMaxRows` in interface `Statement`
Throws:
  `SQLException`

### setLargeMaxRows

public void setLargeMaxRows(long max) throws SQLException

Specified by:
  `setLargeMaxRows` in interface `Statement`
Throws:
  `SQLException`

### setMaxRows

public void setMaxRows(int max) throws SQLException

Specified by:
  `setMaxRows` in interface `Statement`
Throws:
  `SQLException`

### setEscapeProcessing

public void setEscapeProcessing(boolean enable) throws SQLException

Specified by:
  `setEscapeProcessing` in interface `Statement`
Throws:
  `SQLException`

### getQueryTimeout

public int getQueryTimeout() throws SQLException

Specified by:
  `getQueryTimeout` in interface `Statement`
Throws:
  `SQLException`

### setQueryTimeout

public void setQueryTimeout(int seconds) throws SQLException

Specified by:
  `setQueryTimeout` in interface `Statement`
Throws:
  `SQLException`

### cancel

public void cancel() throws SQLException

Specified by:
  `cancel` in interface `Statement`
Throws:
  `SQLException`

### getWarnings

public SQLWarning getWarnings() throws SQLException

Specified by:
  `getWarnings` in interface `Statement`
Throws:
  `SQLException`

### clearWarnings

public void clearWarnings() throws SQLException

Specified by:
  `clearWarnings` in interface `Statement`
Throws:
  `SQLException`

### setCursorName

public void setCursorName(String name) throws SQLException

Specified by:
  `setCursorName` in interface `Statement`
Throws:
  `SQLException`

### getResultSet

public ResultSet getResultSet() throws SQLException

Specified by:
  `getResultSet` in interface `Statement`
Throws:
  `SQLException`

### getLargeUpdateCount

public long getLargeUpdateCount() throws SQLException

Specified by:
  `getLargeUpdateCount` in interface `Statement`
Throws:
  `SQLException`

### getUpdateCount

public int getUpdateCount() throws SQLException

Specified by:
  `getUpdateCount` in interface `Statement`
Throws:
  `SQLException`

### getMoreResults

public boolean getMoreResults() throws SQLException

Specified by:
  `getMoreResults` in interface `Statement`
Throws:
  `SQLException`

### setFetchDirection

public void setFetchDirection(int direction) throws SQLException

Specified by:
  `setFetchDirection` in interface `Statement`
Throws:
  `SQLException`

### getFetchDirection

public int getFetchDirection() throws SQLException

Specified by:
  `getFetchDirection` in interface `Statement`
Throws:
  `SQLException`

### setFetchSize

public void setFetchSize(int rows) throws SQLException

Specified by:
  `setFetchSize` in interface `Statement`
Throws:
  `SQLException`

### getFetchSize

public int getFetchSize() throws SQLException

Specified by:
  `getFetchSize` in interface `Statement`
Throws:
  `SQLException`

### getResultSetConcurrency

public int getResultSetConcurrency() throws SQLException

Specified by:
  `getResultSetConcurrency` in interface `Statement`
Throws:
  `SQLException`

### getResultSetType

public int getResultSetType() throws SQLException

Specified by:
  `getResultSetType` in interface `Statement`
Throws:
  `SQLException`

### addBatch

public void addBatch(String sql) throws SQLException

Specified by:
  `addBatch` in interface `Statement`
Throws:
  `SQLException`

### clearBatch

public void clearBatch() throws SQLException

Specified by:
  `clearBatch` in interface `Statement`
Throws:
  `SQLException`

### executeBatch

public int[] executeBatch() throws SQLException

Specified by:
  `executeBatch` in interface `Statement`
Throws:
  `SQLException`

### executeLargeBatch

public long[] executeLargeBatch() throws SQLException

Specified by:
  `executeLargeBatch` in interface `Statement`
Throws:
  `SQLException`

### getMoreResults

public boolean getMoreResults(int current) throws SQLException

Specified by:
  `getMoreResults` in interface `Statement`
Throws:
  `SQLException`

### getGeneratedKeys

public ResultSet getGeneratedKeys() throws SQLException

Specified by:
  `getGeneratedKeys` in interface `Statement`
Throws:
  `SQLException`

### executeUpdate

public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException

Specified by:
  `executeUpdate` in interface `Statement`
Throws:
  `SQLException`

### executeUpdate

public int executeUpdate(String sql, int[] columnIndexes) throws SQLException

Specified by:
  `executeUpdate` in interface `Statement`
Throws:
  `SQLException`

### executeUpdate

public int executeUpdate(String sql, String[] columnNames) throws SQLException

Specified by:
  `executeUpdate` in interface `Statement`
Throws:
  `SQLException`

### execute

public boolean execute(String sql, int autoGeneratedKeys) throws SQLException

Specified by:
  `execute` in interface `Statement`
Throws:
  `SQLException`

### execute

public boolean execute(String sql, int[] columnIndexes) throws SQLException

Specified by:
  `execute` in interface `Statement`
Throws:
  `SQLException`

### execute

public boolean execute(String sql, String[] columnNames) throws SQLException

Specified by:
  `execute` in interface `Statement`
Throws:
  `SQLException`

### getResultSetHoldability

public int getResultSetHoldability() throws SQLException

Specified by:
  `getResultSetHoldability` in interface `Statement`
Throws:
  `SQLException`

### isClosed

public boolean isClosed() throws SQLException

Specified by:
  `isClosed` in interface `Statement`
Throws:
  `SQLException`

### setPoolable

public void setPoolable(boolean poolable) throws SQLException

Specified by:
  `setPoolable` in interface `Statement`
Throws:
  `SQLException`

### isPoolable

public boolean isPoolable() throws SQLException

Specified by:
  `isPoolable` in interface `Statement`
Throws:
  `SQLException`

### closeOnCompletion

public void closeOnCompletion() throws SQLException

Specified by:
  `closeOnCompletion` in interface `Statement`
Throws:
  `SQLException`

### isCloseOnCompletion

public boolean isCloseOnCompletion() throws SQLException

Specified by:
  `isCloseOnCompletion` in interface `Statement`
Throws:
  `SQLException`

### getConnection

public ClickHouseConnection getConnection() throws SQLException

Specified by:
  `getConnection` in interface `ClickHouseStatement`
Specified by:
  `getConnection` in interface `Statement`
Throws:
  `SQLException`

### getConfig

public ClickHouseConfig getConfig()

Specified by:
  `getConfig` in interface `ClickHouseStatement`

### getMirroredOutput

public OutputStream getMirroredOutput()
Description copied from interface: `ClickHouseStatement`
Gets mirrored output stream.

Specified by:
  `getMirroredOutput` in interface `ClickHouseStatement`
Returns:
  mirrored output stream, could be null

### setMirroredOutput

public void setMirroredOutput(OutputStream out)
Description copied from interface: `ClickHouseStatement`
Sets mirrored output stream, which will be later used for dumping all `ResultSet` generated by this statement, via `ClickHouseInputStream.setCopyToTarget(OutputStream)`.

Specified by:
  `setMirroredOutput` in interface `ClickHouseStatement`
Parameters:
  `out` - mirrored output stream, could be null

### getNullAsDefault

public int getNullAsDefault()

Specified by:
  `getNullAsDefault` in interface `ClickHouseStatement`

### setNullAsDefault

public void setNullAsDefault(int level)

Specified by:
  `setNullAsDefault` in interface `ClickHouseStatement`

### getRequest

public ClickHouseRequest<?> getRequest()

Specified by:
  `getRequest` in interface `ClickHouseStatement`

### isWrapperFor

public boolean isWrapperFor(Class<?> iface) throws SQLException

Specified by:
  `isWrapperFor` in interface `Wrapper`
Overrides:
  `isWrapperFor` in class `JdbcWrapper`
Throws:
  `SQLException`

### unwrap

public <T> T unwrap(Class<T> iface) throws SQLException

Specified by:
  `unwrap` in interface `Wrapper`
Overrides:
  `unwrap` in class `JdbcWrapper`
Throws:
  `SQLException`