/**
   * Used exclusively by Cache to save the row to disk. New implementation in 1.7.2 writes out only
   * the Node data if the table row data has not changed. This situation accounts for the majority
   * of invocations as for each row deleted or inserted, the Nodes for several other rows will
   * change.
   *
   * @param output data source
   * @throws IOException
   * @throws HsqlException
   */
  public void write(RowOutputInterface out) {

    try {
      writeNodes(out);

      if (hasDataChanged) {
        out.writeData(oData, tTable);
        out.writeEnd();

        hasDataChanged = false;
      }
    } catch (IOException e) {
    }
  }