com.amazon.redshift.core

## Interface Query

All Known Implementing Classes:
  BatchedQuery

    public interface Query

Abstraction of a generic Query, hiding the details of any protocol-version-specific data needed to execute the query efficiently.

Query objects should be explicitly closed when no longer needed; if resources are allocated on the server for this query, their cleanup is triggered by closing the Query.

Author:
  Oliver Jowett (oliver@opencloud.com)

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `close()` Close this query and free any server-side resources associated with it.
`ParameterList` `createParameterList()` Create a ParameterList suitable for storing parameters associated with this Query.
`int` `getBatchSize()` Get the number of times this Query has been batched.
`String` `getNativeSql()` Returns SQL in native for database format.
`Map<String,Integer>` `getResultSetColumnNameIndexMap()` Get a map that a result set can use to find the index associated to a name.
`SqlCommand` `getSqlCommand()` Returns properties of the query (sql keyword, and some other parsing info).
`Query[]` `getSubqueries()` Return a list of the Query objects that make up this query.
`boolean` `isEmpty()`
`boolean` `isStatementDescribed()`
`String` `toString(ParameterList parameters)` Stringize this query to a human-readable form, substituting particular parameter values for parameter placeholders.

### Method Detail

#### createParameterList

    ParameterList createParameterList()

Create a ParameterList suitable for storing parameters associated with this Query.

If this query has no parameters, a ParameterList will be returned, but it may be a shared immutable object. If this query does have parameters, the returned ParameterList is a new list, unshared by other callers.

Returns:
  a suitable ParameterList instance for this query

#### toString

    String toString(ParameterList parameters)

Stringize this query to a human-readable form, substituting particular parameter values for parameter placeholders.

Parameters:
  `parameters` - a ParameterList returned by this Query's `createParameterList()` method, or `null` to leave the parameter placeholders unsubstituted.
Returns:
  a human-readable representation of this query

#### getNativeSql

    String getNativeSql()

Returns SQL in native for database format.

Returns:
  SQL in native for database format

#### getSqlCommand

    SqlCommand getSqlCommand()

Returns properties of the query (sql keyword, and some other parsing info).

Returns:
  returns properties of the query (sql keyword, and some other parsing info) or null if not applicable

#### close

    void close()

Close this query and free any server-side resources associated with it. The resources may not be immediately deallocated, but closing a Query may make the deallocation more prompt.

A closed Query should not be executed.

#### isStatementDescribed

    boolean isStatementDescribed()

#### isEmpty

    boolean isEmpty()

#### getBatchSize

    int getBatchSize()

Get the number of times this Query has been batched.

Returns:
  number of times `addBatch()` has been called.

#### getResultSetColumnNameIndexMap

    Map<String,Integer> getResultSetColumnNameIndexMap()

Get a map that a result set can use to find the index associated to a name.

Returns:
  null if the query implementation does not support this method.

#### getSubqueries

    Query[] getSubqueries()

Return a list of the Query objects that make up this query. If this object is already a SimpleQuery, returns null (avoids an extra array construction in the common case).

Returns:
  an array of single-statement queries, or `null` if this object is already a single-statement query.