Package com.ocient.jdbc

# Class XGStatement

java.lang.Object
com.ocient.jdbc.XGStatement

All Implemented Interfaces:
  `AutoCloseable`, `Statement`, `Wrapper`

Direct Known Subclasses:
  `XGPreparedStatement`

    public class XGStatement
    extends Object
    implements Statement

## Nested Class Summary

Nested Classes
Modifier and Type | Class | Description
--- | --- | ---
`protected static interface` | `XGStatement.ExceptionalRunnable` | Same as `Runnable` but can throw an exception

## Field Summary

Fields
Modifier and Type | Field | Description
--- | --- | ---
`protected boolean` | `closed` |
`protected XGConnection` | `conn` |
`protected boolean` | `force` |
`static Logger` | `LOGGER` |
`protected boolean` | `oneShotForce` |
`protected ArrayList<Object>` | `parms` |
`protected boolean` | `poolable` |
`protected XGResultSet` | `result` |
`protected long` | `timeoutMillis` |

### 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
Constructor | Description
--- | ---
`XGStatement​(XGConnection conn, boolean shouldRequestVersion)` |
`XGStatement​(XGConnection conn, boolean force, boolean oneShotForce)` |
`XGStatement​(XGConnection conn, int type, int concur, boolean force, boolean oneShotForce)` |
`XGStatement​(XGConnection conn, int type, int concur, int hold, boolean force, boolean oneShotForce)` |

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`void` | `addBatch​(String sql)` |
`void` | `cancel()` | Kill the currently running query
`void` | `cancelQuery​(String uuid)` |
`String` | `checkData​(String table)` |
`void` | `clearBatch()` |
`void` | `clearWarnings()` |
`void` | `close()` |
`void` | `closeOnCompletion()` |
`protected void` | `dissociateQuery()` | Dissociate the current query with this statement
`boolean` | `execute​(String sql)` |
`boolean` | `execute​(String sql, int autoGeneratedKeys)` |
`boolean` | `execute​(String sql, int[] columnIndexes)` |
`boolean` | `execute​(String sql, String[] columnNames)` |
`int[]` | `executeBatch()` |
`ResultSet` | `executeInlinePlan​(String plan)` |
`ResultSet` | `executePlan​(String plan)` |
`ResultSet` | `executeQuery​(String sql)` |
`int` | `executeUpdate​(String sql)` |
`int` | `executeUpdate​(String sql, int autoGeneratedKeys)` |
`int` | `executeUpdate​(String sql, int[] columnIndexes)` |
`int` | `executeUpdate​(String sql, String[] columnNames)` |
`String` | `explain​(String sql, ClientWireProtocol.ExplainFormat format)` |
`String` | `explainPipeline​(String table)` |
`String` | `explainPlan​(String plan, ClientWireProtocol.ExplainFormat format)` |
`String` | `exportTable​(String table)` |
`String` | `exportTranslation​(String table)` |
`String` | `exportView​(String table)` |
`int` | `fetchSystemMetadataInt​(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call)` |
`ResultSet` | `fetchSystemMetadataResultSet​(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call, String schema, String table, String col, boolean test)` |
`String` | `fetchSystemMetadataString​(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call)` |
`Connection` | `getConnection()` |
`int` | `getFetchDirection()` |
`int` | `getFetchSize()` |
`ResultSet` | `getGeneratedKeys()` |
`int` | `getMaxFieldSize()` |
`int` | `getMaxRows()` |
`boolean` | `getMoreResults()` |
`boolean` | `getMoreResults​(int current)` |
`Optional<String>` | `getQueryId()` |
`int` | `getQueryTimeout()` |
`protected long` | `getQueryTimeoutMillis()` |
`ResultSet` | `getResultSet()` |
`int` | `getResultSetConcurrency()` |
`int` | `getResultSetHoldability()` |
`int` | `getResultSetType()` |
`int` | `getUpdateCount()` |
`SQLWarning` | `getWarnings()` |
`boolean` | `isClosed()` |
`boolean` | `isCloseOnCompletion()` |
`boolean` | `isPoolable()` |
`boolean` | `isWrapperFor​(Class<?> iface)` |
`void` | `killQuery​(String uuid)` |
`ArrayList<String>` | `listPlan()` |
`static XGStatement` | `newXGStatement​(XGConnection conn, boolean shouldRequestVersion)` |
`static XGStatement` | `newXGStatement​(XGConnection conn, boolean force, boolean oneShotForce)` |
`static XGStatement` | `newXGStatement​(XGConnection conn, int type, int concur, boolean force, boolean oneShotForce)` |
`static XGStatement` | `newXGStatement​(XGConnection conn, int type, int concur, int hold, boolean force, boolean oneShotForce)` |
`void` | `passUpCancel​(boolean clearCancelFlag)` |
`protected void` | `reset()` |
`void` | `returnStatementToCache()` |
`void` | `setCursorName​(String name)` |
`void` | `setEscapeProcessing​(boolean enable)` |
`void` | `setFetchDirection​(int direction)` |
`void` | `setFetchSize​(int rows)` |
`static void` | `setKMLFile​(String cmd)` |
`void` | `setMaxFieldSize​(int max)` |
`void` | `setMaxRows​(int max)` |
`void` | `setPoolable​(boolean poolable)` |
`void` | `setQueryCancelled​(boolean b)` |
`void` | `setQueryTimeout​(int seconds)` |
`void` | `setRunningQueryThread​(Thread t)` |
`protected void` | `startTask​(XGStatement.ExceptionalRunnable task, Optional<String> optQueryId, long timeoutMillis)` | Executes a potentially exceptional task, canceling the backing query its it takes longer than the timeout specified by `getQueryTimeout()`.
`<T> T` | `unwrap​(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.Statement

`enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getLargeMaxRows, getLargeUpdateCount, isSimpleIdentifier, setLargeMaxRows`

## Field Details

### LOGGER

public static final Logger LOGGER

### poolable

protected boolean poolable

### closed

protected boolean closed

### conn

protected XGConnection conn

### result

protected XGResultSet result

### parms

protected ArrayList<Object> parms

### force

protected boolean force

### timeoutMillis

protected volatile long timeoutMillis

### oneShotForce

protected boolean oneShotForce

## Constructor Details

### XGStatement

public XGStatement​(XGConnection conn, boolean shouldRequestVersion) throws SQLException

Throws:
  `SQLException`

### XGStatement

public XGStatement​(XGConnection conn, boolean force, boolean oneShotForce) throws SQLException

Throws:
  `SQLException`

### XGStatement

public XGStatement​(XGConnection conn, int type, int concur, boolean force, boolean oneShotForce) throws SQLException

Throws:
  `SQLException`

### XGStatement

public XGStatement​(XGConnection conn, int type, int concur, int hold, boolean force, boolean oneShotForce) throws SQLException

Throws:
  `SQLException`

## Method Details

### setKMLFile

public static void setKMLFile​(String cmd)

### returnStatementToCache

public void returnStatementToCache()

### newXGStatement

public static XGStatement newXGStatement​(XGConnection conn, boolean shouldRequestVersion) throws SQLException

Throws:
  `SQLException`

### newXGStatement

public static XGStatement newXGStatement​(XGConnection conn, boolean force, boolean oneShotForce) throws SQLException

Throws:
  `SQLException`

### newXGStatement

public static XGStatement newXGStatement​(XGConnection conn, int type, int concur, boolean force, boolean oneShotForce) throws SQLException

Throws:
  `SQLException`

### newXGStatement

public static XGStatement newXGStatement​(XGConnection conn, int type, int concur, int hold, boolean force, boolean oneShotForce) throws SQLException

Throws:
  `SQLException`

### addBatch

public void addBatch​(String sql) throws SQLException

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

### cancel

public void cancel() throws SQLException
Kill the currently running query

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

### cancelQuery

public void cancelQuery​(String uuid) throws SQLException

Throws:
  `SQLException`

### clearBatch

public void clearBatch() throws SQLException

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

### clearWarnings

public void clearWarnings() throws SQLException

Specified by:
  `clearWarnings` 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`

### closeOnCompletion

public void closeOnCompletion() throws SQLException

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

### dissociateQuery

protected void dissociateQuery()
Dissociate the current query with this statement

### execute

public boolean execute​(String sql) throws SQLException

Specified by:
  `execute` 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`

### executeBatch

public int[] executeBatch() throws SQLException

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

### executeInlinePlan

public ResultSet executeInlinePlan​(String plan) throws SQLException

Throws:
  `SQLException`

### executePlan

public ResultSet executePlan​(String plan) throws SQLException

Throws:
  `SQLException`

### executeQuery

public ResultSet executeQuery​(String sql) throws SQLException

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

### executeUpdate

public int executeUpdate​(String sql) throws SQLException

Specified by:
  `executeUpdate` 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`

### explain

public String explain​(String sql, ClientWireProtocol.ExplainFormat format) throws SQLException

Throws:
  `SQLException`

### explainPlan

public String explainPlan​(String plan, ClientWireProtocol.ExplainFormat format) throws SQLException

Throws:
  `SQLException`

### exportView

public String exportView​(String table) throws SQLException

Throws:
  `SQLException`

### exportTable

public String exportTable​(String table) throws SQLException

Throws:
  `SQLException`

### exportTranslation

public String exportTranslation​(String table) throws SQLException

Throws:
  `SQLException`

### explainPipeline

public String explainPipeline​(String table) throws SQLException

Throws:
  `SQLException`

### checkData

public String checkData​(String table) throws SQLException

Throws:
  `SQLException`

### fetchSystemMetadataInt

public int fetchSystemMetadataInt​(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call) throws SQLException

Throws:
  `SQLException`

### fetchSystemMetadataResultSet

public ResultSet fetchSystemMetadataResultSet​(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call, String schema, String table, String col, boolean test) throws SQLException

Throws:
  `SQLException`

### fetchSystemMetadataString

public String fetchSystemMetadataString​(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call) throws SQLException

Throws:
  `SQLException`

### getConnection

public Connection getConnection() throws SQLException

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

### getFetchDirection

public int getFetchDirection() throws SQLException

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

### getFetchSize

public int getFetchSize() throws SQLException

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

### getGeneratedKeys

public ResultSet getGeneratedKeys() throws SQLException

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

### getMaxFieldSize

public int getMaxFieldSize() throws SQLException

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

### getMaxRows

public int getMaxRows() throws SQLException

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

### getMoreResults

public boolean getMoreResults() throws SQLException

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

### getMoreResults

public boolean getMoreResults​(int current) throws SQLException

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

### getQueryId

public Optional<String> getQueryId()

### getQueryTimeout

public int getQueryTimeout() throws SQLException

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

### getQueryTimeoutMillis

protected long getQueryTimeoutMillis()

### getResultSet

public ResultSet getResultSet() throws SQLException

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

### getResultSetConcurrency

public int getResultSetConcurrency() throws SQLException

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

### getResultSetHoldability

public int getResultSetHoldability() throws SQLException

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

### getResultSetType

public int getResultSetType() throws SQLException

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

### getUpdateCount

public int getUpdateCount() throws SQLException

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

### getWarnings

public SQLWarning getWarnings() throws SQLException

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

### isClosed

public boolean isClosed() throws SQLException

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

### isCloseOnCompletion

public boolean isCloseOnCompletion() throws SQLException

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

### isPoolable

public boolean isPoolable() throws SQLException

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

### isWrapperFor

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

Specified by:
  `isWrapperFor` in interface `Wrapper`
Throws:
  `SQLException`

### killQuery

public void killQuery​(String uuid) throws SQLException

Throws:
  `SQLException`

### listPlan

public ArrayList<String> listPlan() throws SQLException

Throws:
  `SQLException`

### passUpCancel

public void passUpCancel​(boolean clearCancelFlag) throws SQLException

Throws:
  `SQLException`

### reset

protected void reset()

### setCursorName

public void setCursorName​(String name) throws SQLException

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

### setEscapeProcessing

public void setEscapeProcessing​(boolean enable) throws SQLException

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

### setFetchDirection

public void setFetchDirection​(int direction) throws SQLException

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

### setFetchSize

public void setFetchSize​(int rows) throws SQLException

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

### setMaxFieldSize

public void setMaxFieldSize​(int max) throws SQLException

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

### setMaxRows

public void setMaxRows​(int max) throws SQLException

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

### setPoolable

public void setPoolable​(boolean poolable) throws SQLException

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

### setQueryCancelled

public void setQueryCancelled​(boolean b)

### setQueryTimeout

public void setQueryTimeout​(int seconds) throws SQLException

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

### setRunningQueryThread

public void setRunningQueryThread​(Thread t)

### startTask

protected void startTask​(XGStatement.ExceptionalRunnable task, Optional<String> optQueryId, long timeoutMillis) throws Exception
Executes a potentially exceptional task, canceling the backing query its it takes longer than the timeout specified by `getQueryTimeout()`.

Parameters:
  `task` - the task to execute
  `optQueryId` - the query associated with this task. Empty of none exists
  `timeoutMillis` - the number of milliseconds to wait before firing off a kill query command to the sql node
Throws:
  `SQLTimeoutException` - if the timeout is reached before the call completes
  `Exception`

### unwrap

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

Specified by:
  `unwrap` in interface `Wrapper`
Throws:
  `SQLException`