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

## Field Summary

Fields
Modifier and Type
Field
Description
`protected AtomicBoolean`
`closed`
`protected XGConnection`
`conn`
`protected final ArrayList<SQLException>`
`errors`
`protected boolean`
`force`
`protected boolean`
`forceNextRedirect`
`static final Logger`
`LOGGER`
`protected boolean`
`oneShotForce`
`protected ArrayList<Object>`
`parms`
`protected boolean`
`poolable`
`protected XGResultSet`
`result`
`protected AtomicReference<SQLException>`
`resultSetInterruptReason`
`protected long`
`timeoutMillis`
`protected long`
`timeTakenToCreateMillis`
`protected final ArrayList<SQLWarning>`
`warnings`

### 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)`
`XGStatement(XGConnection conn, int type, int concur)`
`XGStatement(XGConnection conn, int type, int concur, int hold)`
`XGStatement(XGConnection conn, XGConnectionFactory connFactory)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addBatch(String sql)`
`void`
`cancel()`
Kill the currently running query
`void`
`cancel(SQLException reason)`
Kill the currently running query
`CompletionStage<Boolean>`
`cancelAsync(Optional<SQLException> reason)`
Interrupts result set processing and sends a KILL_QUERY opcode to the server.
`void`
`cancelQuery(String uuid)`
`String`
`checkData(String table)`
`void`
`clearBatch()`
`void`
`clearErrors()`
`void`
`clearWarnings()`
`void`
`close()`
`CompletionStage<CompletableFutures.SQLResult<Boolean>>`
`closeAsync()`
`void`
`closeOnCompletion()`
`CompletionStage<CompletableFutures.SQLResult<Boolean>>`
`closeResultSet()`
`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`
`exportCreatePipeline(String createPipeline)`
`String`
`exportMlModel(String mlmodel)`
`String`
`exportPipeline(String pipeline)`
`String`
`exportTable(String table)`
`String`
`exportTranslation(String table)`
`String`
`exportView(String table)`
`CompletionStage<CompletableFutures.SQLResult<Integer>>`
`fetchSystemMetadataInt(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call)`
`CompletionStage<CompletableFutures.SQLResult<ResultSet>>`
`fetchSystemMetadataResultSet(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call, String schema, String table, String col, boolean test, XGResultSet.Option... options)`
`CompletionStage<CompletableFutures.SQLResult<String>>`
`fetchSystemMetadataString(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call)`
`protected final void`
`finalize()`
`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()`
`String`
`getSql()`
`int`
`getUpdateCount()`
`SQLWarning`
`getWarnings()`
`boolean`
`isClosed()`
`boolean`
`isCloseOnCompletion()`
`boolean`
`isPoolable()`
`boolean`
`isWrapperFor(Class<?> iface)`
`void`
`killQuery(String uuid)`
`ArrayList<String>`
`listPlan()`
`protected void`
`logQueryNoResults()`
`protected void`
`logQueryWithResults(XGResultSet result)`
`<T> CompletableFuture<T>`
`monitorTask(CompletableFuture<T> task)`
Monitors a task asspciated with the active query.
`static XGStatement`
`newXGStatement(XGConnection conn)`
Deprecated.
`static XGStatement`
`newXGStatement(XGConnection conn, boolean force, boolean oneShotForce)`
Deprecated.
`static XGStatement`
`newXGStatement(XGConnection conn, int type, int concur, boolean force, boolean oneShotForce)`
Deprecated.
`static XGStatement`
`newXGStatement(XGConnection conn, int type, int concur, int hold, boolean force, boolean oneShotForce)`
Deprecated.
`void`
`passUpCancel(boolean clearCancelFlag)`
`CompletionStage<CompletableFutures.SQLResult<Void>>`
`redirect(String host, int port)`
Force a redirect to the provided endpoint.
`protected CompletionStage<CompletableFutures.SQLResult<Void>>`
`reset()`
`void`
`setCursorName(String name)`
`void`
`setEscapeProcessing(boolean enable)`
`void`
`setFetchDirection(int direction)`
`void`
`setFetchSize(int rows)`
`void`
`setForceNextRedirect()`
`static void`
`setKMLFile(String cmd)`
`void`
`setMaxFieldSize(int max)`
`void`
`setMaxRows(int max)`
`void`
`setPoolable(boolean poolable)`
`void`
`setQueryTimeout(int seconds)`
`String`
`toString()`
`void`
`transformNextResultSet(RowTransformerFactory rowTransformerFactory)`
`<T> T`
`unwrap(Class<T> iface)`

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

`clone, equals, getClass, hashCode, notify, notifyAll, 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 AtomicBoolean closed

### conn

protected volatile XGConnection conn

### result

protected volatile XGResultSet result

### parms

protected ArrayList<Object> parms

### timeTakenToCreateMillis

protected long timeTakenToCreateMillis

### warnings

protected final ArrayList<SQLWarning> warnings

### errors

protected final ArrayList<SQLException> errors

### resultSetInterruptReason

protected AtomicReference<SQLException> resultSetInterruptReason

### force

protected boolean force

### forceNextRedirect

protected boolean forceNextRedirect

### timeoutMillis

protected volatile long timeoutMillis

### oneShotForce

protected boolean oneShotForce

## Constructor Details

### XGStatement

public XGStatement(XGConnection conn)

### XGStatement

public XGStatement(XGConnection conn, XGConnectionFactory connFactory)

### XGStatement

public XGStatement(XGConnection conn, int type, int concur) throws SQLException

Throws:
  `SQLException`

### XGStatement

public XGStatement(XGConnection conn, int type, int concur, int hold) throws SQLException

Throws:
  `SQLException`

## Method Details

### setKMLFile

public static void setKMLFile(String cmd)

### finalize

protected final void finalize() throws Throwable

Overrides:
  `finalize` in class `Object`
Throws:
  `Throwable`

### newXGStatement

@Deprecated public static XGStatement newXGStatement(XGConnection conn) throws SQLException
Deprecated.
This method is deprecated. Please fork the connection using `XGConnection.forkConnection(Hint, boolean)` and use the public `XGStatement(XGConnection)` constructor.

Parameters:
  `conn` - the connection to fork
  `oneShotForce` -
Returns:
Throws:
  `SQLException`

### newXGStatement

@Deprecated public static XGStatement newXGStatement(XGConnection conn, boolean force, boolean oneShotForce) throws SQLException
Deprecated.
This method is deprecated. Please fork the connection using `XGConnection.forkConnection(Hint, boolean)` and use the public `XGStatement(XGConnection)` constructor.

Parameters:
  `conn` - the connection to fork
  `force` - whether or not to disable redirect
  `oneShotForce` -
Returns:
Throws:
  `SQLException`

### newXGStatement

@Deprecated public static XGStatement newXGStatement(XGConnection conn, int type, int concur, boolean force, boolean oneShotForce) throws SQLException
Deprecated.
This method is deprecated. Please fork the connection using `XGConnection.forkConnection(Hint, boolean)` and use the public `XGStatement(XGConnection)` constructor.

Parameters:
  `conn` - the connection to fork
  `type` -
  `concur` -
  `force` -
  `oneShotForce` -
Returns:
Throws:
  `SQLException`

### newXGStatement

@Deprecated public static XGStatement newXGStatement(XGConnection conn, int type, int concur, int hold, boolean force, boolean oneShotForce) throws SQLException
Deprecated.
This method is deprecated. Please fork the connection using `XGConnection.forkConnection(Hint, boolean)` and use the public `XGStatement(XGConnection)` constructor.

Parameters:
  `conn` - the connection to fork
  `type` -
  `concur` -
  `hold` -
  `force` -
  `oneShotForce` -
Returns:
Throws:
  `SQLException`

### transformNextResultSet

public void transformNextResultSet(RowTransformerFactory rowTransformerFactory)

### addBatch

public void addBatch(String sql) throws SQLException

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

### redirect

public CompletionStage<CompletableFutures.SQLResult<Void>> redirect(String host, int port)
Force a redirect to the provided endpoint.

### cancel

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

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

### cancel

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

Throws:
  `SQLException`

### cancelAsync

public CompletionStage<Boolean> cancelAsync(Optional<SQLException> reason)
Interrupts result set processing and sends a KILL_QUERY opcode to the server.

Returns:
  a future that completes with a boolean indicating whether an interrupt was performed or a 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`

### clearErrors

public void clearErrors() throws SQLException

Throws:
  `SQLException`

### close

public void close() throws SQLException

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

### closeAsync

public CompletionStage<CompletableFutures.SQLResult<Boolean>> closeAsync()

### closeResultSet

public CompletionStage<CompletableFutures.SQLResult<Boolean>> closeResultSet()

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

### logQueryNoResults

protected void logQueryNoResults()

### logQueryWithResults

protected void logQueryWithResults(XGResultSet result)

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

### exportPipeline

public String exportPipeline(String pipeline) throws SQLException

Throws:
  `SQLException`

### exportCreatePipeline

public String exportCreatePipeline(String createPipeline) 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`

### exportMlModel

public String exportMlModel(String mlmodel) 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 CompletionStage<CompletableFutures.SQLResult<Integer>> fetchSystemMetadataInt(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call)

### fetchSystemMetadataResultSet

public CompletionStage<CompletableFutures.SQLResult<ResultSet>> fetchSystemMetadataResultSet(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call, String schema, String table, String col, boolean test, XGResultSet.Option... options)

### fetchSystemMetadataString

public CompletionStage<CompletableFutures.SQLResult<String>> fetchSystemMetadataString(ClientWireProtocol.FetchSystemMetadata.SystemMetadataCall call)

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

### getSql

public String getSql()

### 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 CompletionStage<CompletableFutures.SQLResult<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`

### setQueryTimeout

public void setQueryTimeout(int seconds) throws SQLException

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

### setForceNextRedirect

public void setForceNextRedirect()

### monitorTask

public <T> CompletableFuture<T> monitorTask(CompletableFuture<T> task)
Monitors a task asspciated with the active query. If the task does not complete within the specified timeout threshold, the query, and all of its dependent tasks, will be cancelled.

Parameters:
  `task` - the task to execute
Returns:
  a new `CompletableFuture` that cancels the timer upon completion or the same `CompletableFuture` if no timer was created.

### unwrap

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

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

### toString

public String toString()

Overrides:
  `toString` in class `Object`