|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.iapi.store.access.DiskHashtable
This class is used by BackingStoreHashtable when the BackingStoreHashtable must spill to disk. It implements the methods of a hash table: put, get, remove, elements, however it is not implemented as a hash table. In order to minimize the amount of unique code it is implemented using a Btree and a heap conglomerate. The Btree indexes the hash code of the row key. The actual key may be too long for our Btree implementation. Created: Fri Jan 28 13:58:03 2005
Nested Class Summary | |
private class |
DiskHashtable.ElementEnum
|
Field Summary | |
private ConglomerateController |
btreeConglomerate
|
private long |
btreeConglomerateId
|
private DataValueDescriptor[] |
btreeRow
|
private boolean |
keepStatistics
|
private int[] |
key_column_numbers
|
private boolean |
remove_duplicates
|
private DataValueDescriptor[] |
row
|
private ConglomerateController |
rowConglomerate
|
private long |
rowConglomerateId
|
private DataValueDescriptor[] |
scanKey
|
private int |
size
|
private TransactionController |
tc
|
Constructor Summary | |
DiskHashtable(TransactionController tc,
DataValueDescriptor[] template,
int[] key_column_numbers,
boolean remove_duplicates,
boolean keepAfterCommit)
Creates a new DiskHashtable instance. |
Method Summary | |
void |
close()
|
java.util.Enumeration |
elements()
Return an Enumeration that can be used to scan entire table. |
java.lang.Object |
get(java.lang.Object key)
Get a row from the overflow structure. |
private java.lang.Object |
getRemove(java.lang.Object key,
boolean remove,
boolean existenceOnly)
|
boolean |
put(java.lang.Object key,
java.lang.Object[] row)
Put a new row in the overflow structure. |
java.lang.Object |
remove(java.lang.Object key)
remove all rows with a given key from the hash table. |
private boolean |
rowMatches(DataValueDescriptor[] row,
java.lang.Object key)
|
int |
size()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private final long rowConglomerateId
private ConglomerateController rowConglomerate
private final long btreeConglomerateId
private ConglomerateController btreeConglomerate
private final DataValueDescriptor[] btreeRow
private final int[] key_column_numbers
private final boolean remove_duplicates
private final TransactionController tc
private final DataValueDescriptor[] row
private final DataValueDescriptor[] scanKey
private int size
private boolean keepStatistics
Constructor Detail |
public DiskHashtable(TransactionController tc, DataValueDescriptor[] template, int[] key_column_numbers, boolean remove_duplicates, boolean keepAfterCommit) throws StandardException
DiskHashtable
instance.
tc
- template
- An array of DataValueDescriptors that serves as a template for the rows.key_column_numbers
- The indexes of the key columns (0 based)remove_duplicates
- If true then rows with duplicate keys are removedkeepAfterCommit
- If true then the hash table is kept after a commitMethod Detail |
public void close() throws StandardException
StandardException
public boolean put(java.lang.Object key, java.lang.Object[] row) throws StandardException
row
- The row to be inserted.
StandardException
- standard error policypublic java.lang.Object get(java.lang.Object key) throws StandardException
key
- If the rows only have one key column then the key value. If there is more than one
key column then a KeyHasher
StandardException
private java.lang.Object getRemove(java.lang.Object key, boolean remove, boolean existenceOnly) throws StandardException
StandardException
private boolean rowMatches(DataValueDescriptor[] row, java.lang.Object key)
public java.lang.Object remove(java.lang.Object key) throws StandardException
key
- The key of the rows to remove.
StandardException
- Standard exception policy.public int size()
public java.util.Enumeration elements() throws StandardException
RESOLVE - is it worth it to support this routine?
StandardException
- Standard exception policy.
|
Built on Tue 2006-10-10 19:23:47+0200, from revision exported | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |