Package org.h2.result

# Class SearchRow

java.lang.Object
org.h2.value.VersionedValue<Value>
org.h2.value.Value
org.h2.result.SearchRow

All Implemented Interfaces:
  `HasSQL`, `Typed`

Direct Known Subclasses:
  `Row`, `SimpleRowValue`

public abstract class SearchRow extends Value
The base class for rows stored in a table, and for partial rows stored in the index.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected long`
`key`
The row key.
`static long`
`MATCH_ALL_ROW_KEY`
If the key is this value, then the key is considered equal to all other keys, when comparing.
`static final int`
`MEMORY_CALCULATE`
The constant that means "memory usage is unknown and needs to be calculated first".
`static final int`
`ROWID_INDEX`
Index of a virtual "_ROWID_" column within a row or a table

### Fields inherited from class org.h2.value.Value

`ARRAY, ASSIGN_TO, BIGINT, BINARY, BLOB, BOOLEAN, CAST_TO, CHAR, CLOB, CONVERT_TO, DATE, DECFLOAT, DOUBLE, EMPTY_VALUES, ENUM, GEOMETRY, INTEGER, INTERVAL_DAY, INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR, INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND, INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND, INTERVAL_MONTH, INTERVAL_SECOND, INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, JAVA_OBJECT, JSON, MAX_LONG_DECIMAL, MIN_LONG_DECIMAL, NULL, NUMERIC, REAL, ROW, SMALLINT, TIME, TIME_TZ, TIMESTAMP, TIMESTAMP_TZ, TINYINT, TYPE_COUNT, UNKNOWN, UUID, VARBINARY, VARCHAR, VARCHAR_IGNORECASE`

### Fields inherited from interface org.h2.util.HasSQL

`ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS`

## Constructor Summary

Constructors
Constructor
Description
`SearchRow()`

## Method Summary

Modifier and Type
Method
Description
`int`
`compareTypeSafe(Value v, CompareMode mode, CastDataProvider provider)`
Compare this value against another value given that the values are of the same data type.
`abstract void`
`copyFrom(SearchRow source)`
Copy all relevant values from the source to this row.
`boolean`
`equals(Object other)`
Check if the two values have the same hash code.
`abstract int`
`getColumnCount()`
Get the column count.
`long`
`getKey()`
Get the unique key of the row.
`abstract int`
`getMemory()`
Get the estimated memory used for this row, in bytes.
`StringBuilder`
`getSQL(StringBuilder builder, int sqlFlags)`
Appends the SQL statement of this object to the specified builder.
`String`
`getString()`
Get the value as a string.
`TypeInfo`
`getType()`
Returns the data type.
`abstract Value`
`getValue(int index)`
Get the value for the column
`int`
`getValueType()`
Get the value type.
`int`
`hashCode()`
`boolean`
`isNull(int index)`
Determine if specified column contains NULL
`void`
`setKey(long key)`
Set the unique key of the row.
`abstract void`
`setValue(int index, Value v)`
Set the value for given column

### Methods inherited from class org.h2.value.Value

`add, castTo, charLength, clearCache, compareTo, compareWithNull, containsNull, convertForAssignTo, convertTo, convertTo, convertTo, convertTo, convertTo, convertToAnyArray, convertToAnyJson, convertToAnyRow, convertToBigint, convertToBoolean, convertToChar, convertToDate, convertToDouble, convertToEnum, convertToGeometry, convertToInt, convertToInt, convertToJavaObject, convertToJson, convertToReal, convertToSmallint, convertToTinyint, convertToUuid, divide, getBigDecimal, getBoolean, getByte, getBytes, getBytesNoCopy, getDouble, getFloat, getHigherOrder, getInputStream, getInputStream, getInt, getLong, getReader, getReader, getShort, getSignum, getTypeName, getUnsupportedExceptionForOperation, getValueWithFirstNull, isFalse, isTrue, modulus, multiply, negate, octetLength, subtract, toString`

### Methods inherited from class org.h2.value.VersionedValue

`getCommittedValue, getCurrentValue, getOperationId, isCommitted`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.h2.util.HasSQL

`getSQL, getTraceSQL`

## Field Details

### ROWID_INDEX

public static final int ROWID_INDEX
Index of a virtual "_ROWID_" column within a row or a table

See Also:
  - Constant Field Values

### MATCH_ALL_ROW_KEY

public static long MATCH_ALL_ROW_KEY
If the key is this value, then the key is considered equal to all other keys, when comparing.

### MEMORY_CALCULATE

public static final int MEMORY_CALCULATE
The constant that means "memory usage is unknown and needs to be calculated first".

See Also:
  - Constant Field Values

### key

protected long key
The row key.

## Constructor Details

### SearchRow

public SearchRow()

## Method Details

### getColumnCount

public abstract int getColumnCount()
Get the column count.

Returns:
  the column count

### isNull

public boolean isNull(int index)
Determine if specified column contains NULL

Parameters:
  `index` - column index
Returns:
  true if NULL

### getValue

public abstract Value getValue(int index)
Get the value for the column

Parameters:
  `index` - the column number (starting with 0)
Returns:
  the value

### setValue

public abstract void setValue(int index, Value v)
Set the value for given column

Parameters:
  `index` - the column number (starting with 0)
  `v` - the new value

### setKey

public void setKey(long key)
Set the unique key of the row.

Parameters:
  `key` - the key

### getKey

public long getKey()
Get the unique key of the row.

Returns:
  the key

### getMemory

public abstract int getMemory()
Get the estimated memory used for this row, in bytes.

Overrides:
  `getMemory` in class `Value`
Returns:
  the memory

### copyFrom

public abstract void copyFrom(SearchRow source)
Copy all relevant values from the source to this row.

Parameters:
  `source` - source of column values

### getType

public TypeInfo getType()
Description copied from interface: `Typed`
Returns the data type.

Specified by:
  `getType` in interface `Typed`
Specified by:
  `getType` in class `Value`
Returns:
  the data type

### getValueType

public int getValueType()
Description copied from class: `Value`
Get the value type.

Specified by:
  `getValueType` in class `Value`
Returns:
  the value type

### getSQL

public StringBuilder getSQL(StringBuilder builder, int sqlFlags)
Description copied from interface: `HasSQL`
Appends the SQL statement of this object to the specified builder.

Parameters:
  `builder` - string builder
  `sqlFlags` - formatting flags
Returns:
  the specified string builder

### getString

public String getString()
Description copied from class: `Value`
Get the value as a string.

Specified by:
  `getString` in class `Value`
Returns:
  the string

### hashCode

public int hashCode()

Specified by:
  `hashCode` in class `Value`

### equals

public boolean equals(Object other)
Description copied from class: `Value`
Check if the two values have the same hash code. No data conversion is made; this method returns false if the other object is not of the same class. For some values, compareTo may return 0 even if equals return false. Example: ValueDecimal 0.0 and 0.00.

Specified by:
  `equals` in class `Value`
Parameters:
  `other` - the other value
Returns:
  true if they are equal

### compareTypeSafe

public int compareTypeSafe(Value v, CompareMode mode, CastDataProvider provider)
Description copied from class: `Value`
Compare this value against another value given that the values are of the same data type.

Specified by:
  `compareTypeSafe` in class `Value`
Parameters:
  `v` - the other value
  `mode` - the compare mode
  `provider` - the cast information provider
Returns:
  0 if both values are equal, -1 if the other value is smaller, and 1 otherwise