it's record numbers, not offsets

This commit is contained in:
leitner
2005-10-13 18:40:00 +00:00
parent aee44036c5
commit 043b02ede6

12
FORMAT
View File

@@ -55,12 +55,12 @@ All integers are stored LITTLE ENDIAN.
uint32_t hash_table[hash_table_size];
uint32_t lists[];
/* if a hash table entry is 0, return not found. */
/* if a hash table entry points to before this index, there is
* exactly one record matching this hash, and the offset points
* there. */
/* if a hash table entry points somewhere in lists, there were
* hash collisions; The first uint32_t at the offset is the
* length of the list, the rest are the offsets of the records */
/* if a hash table entry is a number smaller than the offset of
this index, there is exactly one record matching this hash, and
the entry contains the number of the record. */
/* if a hash table entry is larger than the offset of this index,
there were hash collisions; The first uint32_t at the offset
is the length of the list, the rest are the record numbers */
}
The indices are at the end to make it possible to add more indices.