public Object[] getSingleRowData() {

    Object[] data = (Object[]) initialiseNavigator().getNext();

    data = (Object[]) ArrayUtil.resizeArrayIfDifferent(data, metaData.getColumnCount());

    return data;
  }
  /**
   * Creates a new instance of JDBCParameterMetaData.
   *
   * <p>
   *
   * @param metaData A ResultMetaData object describing the statement parameters
   * @throws SQLException never - reserved for future use
   */
  JDBCParameterMetaData(JDBCConnection conn, ResultMetaData metaData) throws SQLException {

    rmd = metaData;
    parameterCount = rmd.getColumnCount();

    if (conn.clientProperties != null) {
      translateTTIType =
          conn.clientProperties.isPropertyTrue(HsqlDatabaseProperties.jdbc_translate_tti_types);
    }
  }
  // reading and writing
  public void write(RowOutputInterface out, ResultMetaData meta) throws IOException {

    beforeFirst();
    out.writeLong(id);
    out.writeInt(size);
    out.writeInt(0); // offset
    out.writeInt(size);

    while (hasNext()) {
      Object[] data = getNext();

      out.writeData(meta.getColumnCount(), meta.columnTypes, data, null, null);
    }

    beforeFirst();
  }
 /**
  * Creates a new instance of JDBCParameterMetaData.
  *
  * <p>
  *
  * @param metaData A ResultMetaData object describing the statement parameters
  * @throws SQLException never - reserved for future use
  */
 JDBCParameterMetaData(ResultMetaData metaData) throws SQLException {
   rmd = metaData;
   parameterCount = rmd.getColumnCount();
 }
  private static void writeSimple(RowOutputInterface out, ResultMetaData meta, Object[] data)
      throws IOException {

    out.writeInt(1);
    out.writeData(meta.getColumnCount(), meta.columnTypes, data, null, null);
  }