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
`protected ClickHouseDeserializer<ClickHouseValue>` `deserializer`
`protected ClickHouseSqlStatement[]` `parsedStmts`
`protected ClickHouseSerializer<ClickHouseValue>` `serializer`

### 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
`protected` `ClickHouseStatementImpl​(ClickHouseConnectionImpl connection, ClickHouseRequest<?> request, int resultSetType, int resultSetConcurrency, int resultSetHoldability)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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()`
`int` `getFetchDirection()`
`int` `getFetchSize()`
`ResultSet` `getGeneratedKeys()`
`long` `getLargeMaxRows()`
`long` `getLargeUpdateCount()`
`protected ClickHouseSqlStatement` `getLastStatement()`
`int` `getMaxFieldSize()`
`int` `getMaxRows()`
`boolean` `getMoreResults()`
`boolean` `getMoreResults​(int current)`
`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)`
`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` `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.client.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 Detail

#### parsedStmts

    protected ClickHouseSqlStatement[] parsedStmts

#### deserializer

    protected ClickHouseDeserializer<ClickHouseValue> deserializer

#### serializer

    protected ClickHouseSerializer<ClickHouseValue> serializer

### Constructor Detail

#### ClickHouseStatementImpl

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

Throws:
  `SQLException`

### Method Detail

#### ensureOpen

    protected void ensureOpen()
                       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`

#### 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`

#### 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`