public class HeapRowLocation extends DataType implements RowLocation
It is implementad as a wrapper around a raw store record handle.
| Format ID | ACCESS_HEAP_ROW_LOCATION_V1_ID |
| Purpose | Object used to store the location of a row within a Heap table. One of these is stored in every row of a btree secondary index built on a heap base table. |
| Upgrade | The type of the btree determines the type of rowlocation stored. In current btree implementations only one type of rowlocation can be stored per tree, and it's type is stored in the format id array stored in the Conglomerate object. |
| Disk Layout | page number(CompressedNumber.writeLong()) record id(CompressedNumber.writeInt()) |
| Modifier and Type | Field and Description |
|---|---|
private static int |
BASE_MEMORY_USAGE |
private long |
pageno
The HeapRowLocation simply maintains a raw store record handle.
|
private int |
recid |
private static int |
RECORD_HANDLE_MEMORY_USAGE |
private RecordHandle |
rh |
UNKNOWN_LOGICAL_LENGTHORDER_OP_EQUALS, ORDER_OP_GREATEROREQUALS, ORDER_OP_GREATERTHAN, ORDER_OP_LESSOREQUALS, ORDER_OP_LESSTHAN| Modifier | Constructor and Description |
|---|---|
|
HeapRowLocation() |
private |
HeapRowLocation(HeapRowLocation other) |
(package private) |
HeapRowLocation(RecordHandle rh) |
| Modifier and Type | Method and Description |
|---|---|
DataValueDescriptor |
cloneValue(boolean forceMaterialization)
Clone this DataValueDescriptor.
|
int |
compare(DataValueDescriptor other)
Compare this Orderable with a given Orderable for the purpose of
index positioning.
|
boolean |
compare(int op,
DataValueDescriptor other,
boolean orderedNulls,
boolean unknownRV)
Compare this Orderable with a given Orderable for the purpose of
qualification and sorting.
|
boolean |
equals(java.lang.Object ref)
Implement value equality.
|
int |
estimateMemoryUsage()
Estimate the memory usage in bytes of the data value and the overhead of the class.
|
int |
getLength()
Gets the length of the data value.
|
DataValueDescriptor |
getNewNull()
Get a new null value of the same type as this data value.
|
java.lang.Object |
getObject()
Gets the value in the data value descriptor as a int.
|
RecordHandle |
getRecordHandle(ContainerHandle ch) |
java.lang.String |
getString()
Gets the value in the data value descriptor as a String.
|
int |
getTypeFormatId()
Return my format identifier.
|
java.lang.String |
getTypeName()
Get the SQL name of the datatype
|
int |
hashCode()
Return a hashcode based on value.
|
boolean |
isNull()
Return whether the value is null or not.
|
void |
readExternal(java.io.ObjectInput in) |
void |
readExternalFromArray(ArrayInputStream in)
Read the DataValueDescriptor from the stream.
|
DataValueDescriptor |
recycle()
Recycle this HeapRowLocation object.
|
void |
restoreToNull()
Restore this object to its (SQL)null value.
|
protected void |
setFrom(DataValueDescriptor theValue)
Set the value of this DataValueDescriptor based on the value
of the specified DataValueDescriptor.
|
(package private) void |
setFrom(RecordHandle rh) |
void |
setValueFromResultSet(java.sql.ResultSet resultSet,
int colNumber,
boolean isNullable)
Set the value based on the value for the specified DataValueDescriptor
from the specified ResultSet.
|
java.lang.String |
toString() |
void |
writeExternal(java.io.ObjectOutput out) |
checkHostVariable, cloneHolder, coalesce, compare, compare, compareTo, dataTypeConversion, equals, flip, getBoolean, getByte, getBytes, getDate, getDouble, getFloat, getInt, getLong, getShort, getStream, getTime, getTimestamp, getTraceString, greaterOrEquals, greaterThan, hasStream, in, invalidFormat, isNotNull, isNullOp, lessOrEquals, lessThan, normalize, notEquals, outOfRange, setBigDecimal, setInto, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, typePrecedence, typeToBigDecimalclone, finalize, getClass, notify, notifyAll, wait, wait, waitcheckHostVariable, cloneHolder, coalesce, compare, compare, equals, getBoolean, getByte, getBytes, getDate, getDouble, getFloat, getInt, getLong, getShort, getStream, getTime, getTimestamp, getTraceString, greaterOrEquals, greaterThan, hasStream, in, isNotNull, isNullOp, lessOrEquals, lessThan, normalize, notEquals, setBigDecimal, setInto, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, typePrecedence, typeToBigDecimalprivate long pageno
private int recid
private RecordHandle rh
private static final int BASE_MEMORY_USAGE
private static final int RECORD_HANDLE_MEMORY_USAGE
HeapRowLocation(RecordHandle rh)
public HeapRowLocation()
private HeapRowLocation(HeapRowLocation other)
public int estimateMemoryUsage()
DataValueDescriptorestimateMemoryUsage in interface DataValueDescriptorpublic java.lang.String getTypeName()
DataValueDescriptorgetTypeName in interface DataValueDescriptorpublic void setValueFromResultSet(java.sql.ResultSet resultSet,
int colNumber,
boolean isNullable)
DataValueDescriptorsetValueFromResultSet in interface DataValueDescriptorresultSet - The specified ResultSet.colNumber - The 1-based column # into the resultSet.isNullable - Whether or not the column is nullable
(No need to call wasNull() if not)public DataValueDescriptor getNewNull()
DataValueDescriptorgetNewNull in interface DataValueDescriptorpublic java.lang.Object getObject()
DataTypegetObject in interface DataValueDescriptorgetObject in class DataTypepublic DataValueDescriptor cloneValue(boolean forceMaterialization)
DataValueDescriptor
Even though the objects can be modified independently regardless of the
value of forceMaterialization, both the clone and the
original may be dependent on the store state if
forceMaterialization is set to false. An example is if
you need to access the value you just read using cloneValue
after the current transaction has ended, or after the source result set
has been closed.
cloneValue in interface DataValueDescriptorforceMaterialization - any streams representing the data value will
be materialized if true, the data value will be kept as a
stream if possible if falseDataValueDescriptor with the same initial
value as this.public DataValueDescriptor recycle()
recycle in interface DataValueDescriptorrecycle in class DataTypepublic int getLength()
DataValueDescriptorgetLength in interface DataValueDescriptorpublic java.lang.String getString()
DataValueDescriptorgetString in interface DataValueDescriptorpublic boolean compare(int op,
DataValueDescriptor other,
boolean orderedNulls,
boolean unknownRV)
DataValueDescriptorcompare in interface DataValueDescriptorcompare in class DataTypeop - Orderable.ORDER_OP_EQUALS means do an = comparison.
Orderable.ORDER_OP_LESSTHAN means compare this < other.
Orderable.ORDER_OP_LESSOREQUALS means compare this <= other.other - The DataValueDescriptor to compare this one to.orderedNulls - True means to treat nulls as ordered values,
that is, treat SQL null as equal to null, and less
than all other values.
False means to treat nulls as unknown values,
that is, the result of any comparison with a null
is the UNKNOWN truth value.unknownRV - The return value to use if the result of the
comparison is the UNKNOWN truth value. In other
words, if orderedNulls is false, and a null is
involved in the comparison, return unknownRV.
This parameter is not used orderedNulls is true.public int compare(DataValueDescriptor other)
DataValueDescriptorcompare in interface DataValueDescriptorother - The Orderable to compare this one to.public RecordHandle getRecordHandle(ContainerHandle ch) throws StandardException
StandardExceptionvoid setFrom(RecordHandle rh)
public int getTypeFormatId()
getTypeFormatId in interface TypedFormatTypedFormat.getTypeFormatId()public boolean isNull()
Storablepublic void writeExternal(java.io.ObjectOutput out)
throws java.io.IOException
writeExternal in interface java.io.Externalizablejava.io.IOExceptionpublic void readExternal(java.io.ObjectInput in)
throws java.io.IOException,
java.lang.ClassNotFoundException
readExternal in interface java.io.Externalizablejava.lang.ClassNotFoundException - A class needed to read the
stored form of this object could not be found.java.io.IOExceptionExternalizable.readExternal(java.io.ObjectInput)public void readExternalFromArray(ArrayInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException
DataTypereadExternal(), which accesses the ArrayInputStream
as a generic stream. If sub-classes can implement it more efficiently
by accessing the array, they should override this method.readExternalFromArray in interface DataValueDescriptorreadExternalFromArray in class DataTypein - The array stream positioned at the beginning of the
byte stream to read from.java.io.IOException - Usual error is if you try to read
past limit on the stream.java.lang.ClassNotFoundException - If a necessary class can not be
found while reading the object from
the stream.DataValueDescriptor.readExternalFromArray(org.apache.derby.iapi.services.io.ArrayInputStream),
Externalizable.readExternal(java.io.ObjectInput)public void restoreToNull()
StorablerestoreToNull in interface Storableprotected void setFrom(DataValueDescriptor theValue)
DataTypepublic boolean equals(java.lang.Object ref)
public int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.ObjectApache Derby V10.10 Internals - Copyright © 2004,2014 The Apache Software Foundation. All Rights Reserved.