ResultSetRow
Date: 2018-05-01

com.mysql.jdbc

## Class ResultSetRow

- java.lang.Object
- - com.mysql.jdbc.ResultSetRow

- Direct Known Subclasses:
    BufferRow, ByteArrayRow

      public abstract class ResultSetRow
      extends java.lang.Object

  Classes that implement this interface represent one row of data from the MySQL server that might be stored in different ways depending on whether the result set was streaming (so they wrap a reusable packet), or whether the result set was cached or via a server-side cursor (so they represent a byte[][]). Notice that no bounds checking is expected for implementors of this interface, it happens in ResultSetImpl.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ExceptionInterceptor` | `exceptionInterceptor`
    `protected Field[]` | `metadata` The metadata of the fields of this result set.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ResultSetRow(ExceptionInterceptor exceptionInterceptor)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `closeOpenStreams()` Called during navigation to next row to close all open streams.
    `abstract java.io.InputStream` | `getBinaryInputStream(int columnIndex)` Returns data at the given index as an InputStream with no character conversion.
    `abstract int` | `getBytesSize()`
    `abstract byte[]` | `getColumnValue(int index)` Returns the value at the given column (index starts at 0) "raw" (i.e.
    `protected java.sql.Date` | `getDateFast(int columnIndex, byte[] dateAsBytes, int offset, int length, MySQLConnection conn, ResultSetImpl rs, java.util.Calendar targetCalendar)`
    `abstract java.sql.Date` | `getDateFast(int columnIndex, MySQLConnection conn, ResultSetImpl rs, java.util.Calendar targetCalendar)`
    `abstract int` | `getInt(int columnIndex)` Returns the value at the given column (index starts at 0) as an int
    `abstract long` | `getLong(int columnIndex)` Returns the value at the given column (index starts at 0) as a long
    `protected java.sql.Date` | `getNativeDate(int columnIndex, byte[] bits, int offset, int length, MySQLConnection conn, ResultSetImpl rs, java.util.Calendar cal)`
    `abstract java.sql.Date` | `getNativeDate(int columnIndex, MySQLConnection conn, ResultSetImpl rs, java.util.Calendar cal)`
    `protected java.lang.Object` | `getNativeDateTimeValue(int columnIndex, byte[] bits, int offset, int length, java.util.Calendar targetCalendar, int jdbcType, int mysqlType, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `abstract java.lang.Object` | `getNativeDateTimeValue(int columnIndex, java.util.Calendar targetCalendar, int jdbcType, int mysqlType, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `protected double` | `getNativeDouble(byte[] bits, int offset)`
    `abstract double` | `getNativeDouble(int columnIndex)`
    `protected float` | `getNativeFloat(byte[] bits, int offset)`
    `abstract float` | `getNativeFloat(int columnIndex)`
    `protected int` | `getNativeInt(byte[] bits, int offset)`
    `abstract int` | `getNativeInt(int columnIndex)`
    `protected long` | `getNativeLong(byte[] bits, int offset)`
    `abstract long` | `getNativeLong(int columnIndex)`
    `protected short` | `getNativeShort(byte[] bits, int offset)`
    `abstract short` | `getNativeShort(int columnIndex)`
    `protected java.sql.Time` | `getNativeTime(int columnIndex, byte[] bits, int offset, int length, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `abstract java.sql.Time` | `getNativeTime(int columnIndex, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `protected java.sql.Timestamp` | `getNativeTimestamp(byte[] bits, int offset, int length, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `abstract java.sql.Timestamp` | `getNativeTimestamp(int columnIndex, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `abstract java.io.Reader` | `getReader(int columnIndex)`
    `abstract java.lang.String` | `getString(int index, java.lang.String encoding, MySQLConnection conn)` Returns the value at the given column (index starts at 0) as a java.lang.String with the requested encoding, using the given MySQLConnection to find character converters.
    `protected java.lang.String` | `getString(java.lang.String encoding, MySQLConnection conn, byte[] value, int offset, int length)` Convenience method for turning a byte[] into a string with the given encoding.
    `protected java.sql.Time` | `getTimeFast(int columnIndex, byte[] timeAsBytes, int offset, int fullLength, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `abstract java.sql.Time` | `getTimeFast(int columnIndex, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `protected java.sql.Timestamp` | `getTimestampFast(int columnIndex, byte[] timestampAsBytes, int offset, int length, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `abstract java.sql.Timestamp` | `getTimestampFast(int columnIndex, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward, MySQLConnection conn, ResultSetImpl rs)`
    `abstract boolean` | `isFloatingPointNumber(int index)` Could the column value at the given index (which starts at 0) be interpreted as a floating-point number (has +/-/E/e in it)?
    `abstract boolean` | `isNull(int index)` Is the column value at the given index (which starts at 0) NULL?
    `abstract long` | `length(int index)` Returns the length of the column at the given index (which starts at 0).
    `abstract void` | `setColumnValue(int index, byte[] value)` Sets the given column value (only works currently with ByteArrayRowHolder).
    `ResultSetRow` | `setMetadata(Field[] f)`

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

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

- - ### Field Detail

    - #### exceptionInterceptor

          protected ExceptionInterceptor exceptionInterceptor

    - #### metadata

          protected Field[] metadata

      The metadata of the fields of this result set.

  - ### Constructor Detail

    - #### ResultSetRow

          protected ResultSetRow(ExceptionInterceptor exceptionInterceptor)

  - ### Method Detail

    - #### closeOpenStreams

          public abstract void closeOpenStreams()

      Called during navigation to next row to close all open streams.

    - #### getBinaryInputStream

          public abstract java.io.InputStream getBinaryInputStream(int columnIndex)
                                                            throws java.sql.SQLException

      Returns data at the given index as an InputStream with no character conversion.
      Parameters:
        `columnIndex` - of the column value (starting at 0) to return.
      Returns:
        the value at the given index as an InputStream or null if null.
      Throws:
        `java.sql.SQLException` - if an error occurs while retrieving the value.

    - #### getColumnValue

          public abstract byte[] getColumnValue(int index)
                                         throws java.sql.SQLException

      Returns the value at the given column (index starts at 0) "raw" (i.e. as-returned by the server).
      Parameters:
        `index` - of the column value (starting at 0) to return.
      Returns:
        the value for the given column (including NULL if it is)
      Throws:
        `java.sql.SQLException` - if an error occurs while retrieving the value.

    - #### getDateFast

          protected final java.sql.Date getDateFast(int columnIndex,
                                  byte[] dateAsBytes,
                                  int offset,
                                  int length,
                                  MySQLConnection conn,
                                  ResultSetImpl rs,
                                  java.util.Calendar targetCalendar)
                                             throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getDateFast

          public abstract java.sql.Date getDateFast(int columnIndex,
                                  MySQLConnection conn,
                                  ResultSetImpl rs,
                                  java.util.Calendar targetCalendar)
                                             throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getInt

          public abstract int getInt(int columnIndex)
                              throws java.sql.SQLException

      Returns the value at the given column (index starts at 0) as an int. *
      Parameters:
        `index` - of the column value (starting at 0) to return.
      Returns:
        the value for the given column (returns 0 if NULL, use isNull() to determine if the value was actually NULL)
      Throws:
        `java.sql.SQLException` - if an error occurs while retrieving the value.

    - #### getLong

          public abstract long getLong(int columnIndex)
                                throws java.sql.SQLException

      Returns the value at the given column (index starts at 0) as a long. *
      Parameters:
        `index` - of the column value (starting at 0) to return.
      Returns:
        the value for the given column (returns 0 if NULL, use isNull() to determine if the value was actually NULL)
      Throws:
        `java.sql.SQLException` - if an error occurs while retrieving the value.

    - #### getNativeDate

          protected java.sql.Date getNativeDate(int columnIndex,
                                    byte[] bits,
                                    int offset,
                                    int length,
                                    MySQLConnection conn,
                                    ResultSetImpl rs,
                                    java.util.Calendar cal)
                                         throws java.sql.SQLException

      Parameters:
        `columnIndex` -
        `bits` -
        `offset` -
        `length` -
        `conn` -
        `rs` -
        `cal` -
      Throws:
        `java.sql.SQLException`

    - #### getNativeDate

          public abstract java.sql.Date getNativeDate(int columnIndex,
                                    MySQLConnection conn,
                                    ResultSetImpl rs,
                                    java.util.Calendar cal)
                                               throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeDateTimeValue

          protected java.lang.Object getNativeDateTimeValue(int columnIndex,
                                                byte[] bits,
                                                int offset,
                                                int length,
                                                java.util.Calendar targetCalendar,
                                                int jdbcType,
                                                int mysqlType,
                                                java.util.TimeZone tz,
                                                boolean rollForward,
                                                MySQLConnection conn,
                                                ResultSetImpl rs)
                                                     throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeDateTimeValue

          public abstract java.lang.Object getNativeDateTimeValue(int columnIndex,
                                                java.util.Calendar targetCalendar,
                                                int jdbcType,
                                                int mysqlType,
                                                java.util.TimeZone tz,
                                                boolean rollForward,
                                                MySQLConnection conn,
                                                ResultSetImpl rs)
                                                           throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeDouble

          protected double getNativeDouble(byte[] bits,
                               int offset)

    - #### getNativeDouble

          public abstract double getNativeDouble(int columnIndex)
                                          throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeFloat

          protected float getNativeFloat(byte[] bits,
                             int offset)

    - #### getNativeFloat

          public abstract float getNativeFloat(int columnIndex)
                                        throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeInt

          protected int getNativeInt(byte[] bits,
                         int offset)

    - #### getNativeInt

          public abstract int getNativeInt(int columnIndex)
                                    throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeLong

          protected long getNativeLong(byte[] bits,
                           int offset)

    - #### getNativeLong

          public abstract long getNativeLong(int columnIndex)
                                      throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeShort

          protected short getNativeShort(byte[] bits,
                             int offset)

    - #### getNativeShort

          public abstract short getNativeShort(int columnIndex)
                                        throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeTime

          protected java.sql.Time getNativeTime(int columnIndex,
                                    byte[] bits,
                                    int offset,
                                    int length,
                                    java.util.Calendar targetCalendar,
                                    java.util.TimeZone tz,
                                    boolean rollForward,
                                    MySQLConnection conn,
                                    ResultSetImpl rs)
                                         throws java.sql.SQLException

      Parameters:
        `columnIndex` -
        `bits` -
        `offset` -
        `length` -
        `targetCalendar` -
        `tz` -
        `rollForward` -
        `conn` -
        `rs` -
      Throws:
        `java.sql.SQLException`

    - #### getNativeTime

          public abstract java.sql.Time getNativeTime(int columnIndex,
                                    java.util.Calendar targetCalendar,
                                    java.util.TimeZone tz,
                                    boolean rollForward,
                                    MySQLConnection conn,
                                    ResultSetImpl rs)
                                               throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeTimestamp

          protected java.sql.Timestamp getNativeTimestamp(byte[] bits,
                                              int offset,
                                              int length,
                                              java.util.Calendar targetCalendar,
                                              java.util.TimeZone tz,
                                              boolean rollForward,
                                              MySQLConnection conn,
                                              ResultSetImpl rs)
                                                   throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getNativeTimestamp

          public abstract java.sql.Timestamp getNativeTimestamp(int columnIndex,
                                              java.util.Calendar targetCalendar,
                                              java.util.TimeZone tz,
                                              boolean rollForward,
                                              MySQLConnection conn,
                                              ResultSetImpl rs)
                                                         throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getReader

          public abstract java.io.Reader getReader(int columnIndex)
                                            throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getString

          public abstract java.lang.String getString(int index,
                                   java.lang.String encoding,
                                   MySQLConnection conn)
                                              throws java.sql.SQLException

      Returns the value at the given column (index starts at 0) as a java.lang.String with the requested encoding, using the given MySQLConnection to find character converters.
      Parameters:
        `index` - of the column value (starting at 0) to return.
        `encoding` - the Java name for the character encoding
        `conn` - the connection that created this result set row
      Returns:
        the value for the given column (including NULL if it is) as a String
      Throws:
        `java.sql.SQLException` - if an error occurs while retrieving the value.

    - #### getString

          protected java.lang.String getString(java.lang.String encoding,
                                   MySQLConnection conn,
                                   byte[] value,
                                   int offset,
                                   int length)
                                        throws java.sql.SQLException

      Convenience method for turning a byte[] into a string with the given encoding.
      Parameters:
        `encoding` - the Java encoding name for the byte[] -> char conversion
        `conn` - the MySQLConnection that created the result set
        `value` - the String value as a series of bytes, encoded using "encoding"
        `offset` - where to start the decoding
        `length` - how many bytes to decode
      Returns:
        the String as decoded from bytes with the given encoding
      Throws:
        `java.sql.SQLException` - if an error occurs

    - #### getTimeFast

          protected java.sql.Time getTimeFast(int columnIndex,
                                  byte[] timeAsBytes,
                                  int offset,
                                  int fullLength,
                                  java.util.Calendar targetCalendar,
                                  java.util.TimeZone tz,
                                  boolean rollForward,
                                  MySQLConnection conn,
                                  ResultSetImpl rs)
                                       throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getTimeFast

          public abstract java.sql.Time getTimeFast(int columnIndex,
                                  java.util.Calendar targetCalendar,
                                  java.util.TimeZone tz,
                                  boolean rollForward,
                                  MySQLConnection conn,
                                  ResultSetImpl rs)
                                             throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getTimestampFast

          protected java.sql.Timestamp getTimestampFast(int columnIndex,
                                            byte[] timestampAsBytes,
                                            int offset,
                                            int length,
                                            java.util.Calendar targetCalendar,
                                            java.util.TimeZone tz,
                                            boolean rollForward,
                                            MySQLConnection conn,
                                            ResultSetImpl rs)
                                                 throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getTimestampFast

          public abstract java.sql.Timestamp getTimestampFast(int columnIndex,
                                            java.util.Calendar targetCalendar,
                                            java.util.TimeZone tz,
                                            boolean rollForward,
                                            MySQLConnection conn,
                                            ResultSetImpl rs)
                                                       throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### isFloatingPointNumber

          public abstract boolean isFloatingPointNumber(int index)
                                                 throws java.sql.SQLException

      Could the column value at the given index (which starts at 0) be interpreted as a floating-point number (has +/-/E/e in it)?
      Parameters:
        `index` - of the column value (starting at 0) to check.
      Returns:
        true if the column value at the given index looks like it might be a floating-point number, false if not.
      Throws:
        `java.sql.SQLException` - if an error occurs

    - #### isNull

          public abstract boolean isNull(int index)
                                  throws java.sql.SQLException

      Is the column value at the given index (which starts at 0) NULL?
      Parameters:
        `index` - of the column value (starting at 0) to check.
      Returns:
        true if the column value is NULL, false if not.
      Throws:
        `java.sql.SQLException` - if an error occurs

    - #### length

          public abstract long length(int index)
                               throws java.sql.SQLException

      Returns the length of the column at the given index (which starts at 0).
      Parameters:
        `index` - of the column value (starting at 0) for which to return the length.
      Returns:
        the length of the requested column, 0 if null (clients of this interface should use isNull() beforehand to determine status of NULL values in the column).
      Throws:
        `java.sql.SQLException`

    - #### setColumnValue

          public abstract void setColumnValue(int index,
                            byte[] value)
                                       throws java.sql.SQLException

      Sets the given column value (only works currently with ByteArrayRowHolder).
      Parameters:
        `index` - index of the column value (starting at 0) to set.
        `value` - the (raw) value to set
      Throws:
        `java.sql.SQLException` - if an error occurs, or the concrete RowHolder doesn't support this operation.

    - #### setMetadata

          public ResultSetRow setMetadata(Field[] f)
                                   throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getBytesSize

          public abstract int getBytesSize()