Package org.apache.calcite.avatica

# Interface Handler

All Known Implementing Classes:
  `HandlerImpl`

public interface Handler
Called at various points in the JDBC lifecycle.

Most drivers will use `HandlerImpl`, which provides no-op implementations of all methods. You only need to override methods if you need to achieve special effects.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`Handler.ResultSink`
Handler for temporary tables.

## Method Summary

Modifier and Type
Method
Description
`void`
`onConnectionClose(AvaticaConnection connection)`
Called by container when a connection is being closed.
`void`
`onConnectionInit(AvaticaConnection connection)`
Called by container when a connection is being created.
`void`
`onStatementClose(AvaticaStatement statement)`
Called by container when a statement is being closed.
`void`
`onStatementExecute(AvaticaStatement statement, Handler.ResultSink resultSink)`
Called by container when a statement is being executed.

## Method Details

### onConnectionInit

void onConnectionInit(AvaticaConnection connection) throws SQLException
Called by container when a connection is being created.

If the implementation of this method throws, the connection will not be created.

Parameters:
  `connection` - Connection
Throws:
  `SQLException` - on error

### onConnectionClose

void onConnectionClose(AvaticaConnection connection)
Called by container when a connection is being closed.

If the implementation of this method throws, the call to `Connection.close()` that triggered this method will throw an exception, but the connection will still be marked closed.

Parameters:
  `connection` - Connection

### onStatementExecute

void onStatementExecute(AvaticaStatement statement, Handler.ResultSink resultSink)
Called by container when a statement is being executed.

If the session would like the statement results stored in a temporary table, `resultSink` is not null. The provider must call its `Handler.ResultSink.toBeCompleted()` method at some point during execution (not necessarily before the call to this method returns).

Parameters:
  `statement` - Statement
  `resultSink` - Place to put result of query. Null if container does not want results stored to a temporary table
Throws:
  `RuntimeException` - on error

### onStatementClose

void onStatementClose(AvaticaStatement statement)
Called by container when a statement is being closed.

This method is called after marking the statement closed, and after closing any open `ResultSet` objects.

If the implementation of this method throws, the call to `Statement.close()` that triggered this method will throw an exception, but the statement will still be marked closed.

Parameters:
  `statement` - Statement
Throws:
  `RuntimeException` - on error