com.amazon.redshift.core

## Class NativeQuery

- java.lang.Object
- - com.amazon.redshift.core.NativeQuery

    public class NativeQuery
    extends Object

Represents a query that is ready for execution by backend. The main difference from JDBC is ? are replaced with $1, $2, etc.

### Field Summary

Fields
`int[]` `bindPositions`
`SqlCommand` `command`
`boolean` `multiStatement`
`String` `nativeSql`
`int[]` `redshiftParamMarkers`

### Constructor Summary

Constructors
Constructor and Description
`NativeQuery(String nativeSql, int[] bindPositions, boolean multiStatement, SqlCommand dml)`
`NativeQuery(String nativeSql, int[] bindPositions, boolean multiStatement, SqlCommand dml, int[] redshiftParamMarkers)`
`NativeQuery(String nativeSql, SqlCommand dml)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static StringBuilder` `appendBindName(StringBuilder sb, int index)`
`static String` `bindName(int index)` Returns $1, $2, etc names of bind variables used by backend.
`static int` `calculateBindLength(int bindCount)` Calculate the text length required for the given number of bind variables including dollars.
`SqlCommand` `getCommand()`
`String` `toString(ParameterList parameters)` Stringize this query to a human-readable form, substituting particular parameter values for parameter placeholders.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### nativeSql

    public final String nativeSql

#### bindPositions

    public final int[] bindPositions

#### command

    public final SqlCommand command

#### multiStatement

    public final boolean multiStatement

#### redshiftParamMarkers

    public final int[] redshiftParamMarkers

### Constructor Detail

#### NativeQuery

    public NativeQuery(String nativeSql,
                       SqlCommand dml)

#### NativeQuery

    public NativeQuery(String nativeSql,
                       int[] bindPositions,
                       boolean multiStatement,
                       SqlCommand dml)

#### NativeQuery

    public NativeQuery(String nativeSql,
                       int[] bindPositions,
                       boolean multiStatement,
                       SqlCommand dml,
                       int[] redshiftParamMarkers)

### Method Detail

#### toString

    public 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 `Query.createParameterList()` method, or `null` to leave the parameter placeholders unsubstituted.
Returns:
  a human-readable representation of this query

#### bindName

    public static String bindName(int index)

Returns $1, $2, etc names of bind variables used by backend.

Parameters:
  `index` - index of a bind variable
Returns:
  bind variable name

#### appendBindName

    public static StringBuilder appendBindName(StringBuilder sb,
                                               int index)

#### calculateBindLength

    public static int calculateBindLength(int bindCount)

Calculate the text length required for the given number of bind variables including dollars. Do this to avoid repeated calls to AbstractStringBuilder.expandCapacity(...) and Arrays.copyOf

Parameters:
  `bindCount` - total number of parameters in a query
Returns:
  int total character length for $xyz kind of binds

#### getCommand

    public SqlCommand getCommand()