/*
* Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.result;
import org.h2.engine.SessionInterface;
import org.h2.value.TypeInfo;
import org.h2.value.Value;
The result interface is used by the LocalResult and ResultRemote class.
A result may contain rows, or just an update count.
/**
* The result interface is used by the LocalResult and ResultRemote class.
* A result may contain rows, or just an update count.
*/
public interface ResultInterface extends AutoCloseable {
Go to the beginning of the result, that means
before the first row.
/**
* Go to the beginning of the result, that means
* before the first row.
*/
void reset();
Get the current row.
Returns: the row
/**
* Get the current row.
*
* @return the row
*/
Value[] currentRow();
Go to the next row.
Returns: true if a row exists
/**
* Go to the next row.
*
* @return true if a row exists
*/
boolean next();
Get the current row id, starting with 0.
-1 is returned when next() was not called yet.
Returns: the row id
/**
* Get the current row id, starting with 0.
* -1 is returned when next() was not called yet.
*
* @return the row id
*/
int getRowId();
Check if the current position is after last row.
Returns: true if after last
/**
* Check if the current position is after last row.
*
* @return true if after last
*/
boolean isAfterLast();
Get the number of visible columns.
More columns may exist internally for sorting or grouping.
Returns: the number of columns
/**
* Get the number of visible columns.
* More columns may exist internally for sorting or grouping.
*
* @return the number of columns
*/
int getVisibleColumnCount();
Get the number of rows in this object.
Returns: the number of rows
/**
* Get the number of rows in this object.
*
* @return the number of rows
*/
int getRowCount();
Check if this result has more rows to fetch.
Returns: true if it has
/**
* Check if this result has more rows to fetch.
*
* @return true if it has
*/
boolean hasNext();
Check if this result set should be closed, for example because it is
buffered using a temporary file.
Returns: true if close should be called.
/**
* Check if this result set should be closed, for example because it is
* buffered using a temporary file.
*
* @return true if close should be called.
*/
boolean needToClose();
Close the result and delete any temporary files
/**
* Close the result and delete any temporary files
*/
@Override
void close();
Get the column alias name for the column.
Params: - i – the column number (starting with 0)
Returns: the alias name
/**
* Get the column alias name for the column.
*
* @param i the column number (starting with 0)
* @return the alias name
*/
String getAlias(int i);
Get the schema name for the column, if one exists.
Params: - i – the column number (starting with 0)
Returns: the schema name or null
/**
* Get the schema name for the column, if one exists.
*
* @param i the column number (starting with 0)
* @return the schema name or null
*/
String getSchemaName(int i);
Get the table name for the column, if one exists.
Params: - i – the column number (starting with 0)
Returns: the table name or null
/**
* Get the table name for the column, if one exists.
*
* @param i the column number (starting with 0)
* @return the table name or null
*/
String getTableName(int i);
Get the column name.
Params: - i – the column number (starting with 0)
Returns: the column name
/**
* Get the column name.
*
* @param i the column number (starting with 0)
* @return the column name
*/
String getColumnName(int i);
Get the column data type.
Params: - i – the column number (starting with 0)
Returns: the column data type
/**
* Get the column data type.
*
* @param i the column number (starting with 0)
* @return the column data type
*/
TypeInfo getColumnType(int i);
Check if this is an auto-increment column.
Params: - i – the column number (starting with 0)
Returns: true for auto-increment columns
/**
* Check if this is an auto-increment column.
*
* @param i the column number (starting with 0)
* @return true for auto-increment columns
*/
boolean isAutoIncrement(int i);
Check if this column is nullable.
Params: - i – the column number (starting with 0)
Returns: Column.NULLABLE_*
/**
* Check if this column is nullable.
*
* @param i the column number (starting with 0)
* @return Column.NULLABLE_*
*/
int getNullable(int i);
Set the fetch size for this result set.
Params: - fetchSize – the new fetch size
/**
* Set the fetch size for this result set.
*
* @param fetchSize the new fetch size
*/
void setFetchSize(int fetchSize);
Get the current fetch size for this result set.
Returns: the fetch size
/**
* Get the current fetch size for this result set.
*
* @return the fetch size
*/
int getFetchSize();
Check if this a lazy execution result.
Returns: true if it is a lazy result
/**
* Check if this a lazy execution result.
*
* @return true if it is a lazy result
*/
boolean isLazy();
Check if this result set is closed.
Returns: true if it is
/**
* Check if this result set is closed.
*
* @return true if it is
*/
boolean isClosed();
Create a shallow copy of the result set. The data and a temporary table
(if there is any) is not copied.
Params: - targetSession – the session of the copy
Returns: the copy if possible, or null if copying is not possible
/**
* Create a shallow copy of the result set. The data and a temporary table
* (if there is any) is not copied.
*
* @param targetSession the session of the copy
* @return the copy if possible, or null if copying is not possible
*/
ResultInterface createShallowCopy(SessionInterface targetSession);
}