Add which columns are indexable to store header
This commit is contained in:
parent
4c0f91ad33
commit
f2c17d2e66
5 changed files with 100 additions and 46 deletions
|
|
@ -59,12 +59,17 @@ impl <T>Store<T> {
|
|||
DirBuilder::new()
|
||||
.create(path_to_table).await?;
|
||||
|
||||
let header = StoreHeader {
|
||||
table_folder: table_folder.to_string(),
|
||||
number_of_columns,
|
||||
deleted_count: 0,
|
||||
total_count: 0,
|
||||
primary_column,
|
||||
let header = {
|
||||
let mut indexed_columns = vec![false; number_of_columns];
|
||||
indexed_columns[primary_column as usize] = true;
|
||||
StoreHeader {
|
||||
table_folder: table_folder.to_string(),
|
||||
number_of_columns,
|
||||
deleted_count: 0,
|
||||
total_count: 0,
|
||||
primary_column,
|
||||
indexed_columns,
|
||||
}
|
||||
};
|
||||
|
||||
// We don't need the file right now. Only cursors will later open it.
|
||||
|
|
@ -117,9 +122,16 @@ impl <T>Store<T> {
|
|||
|
||||
// Unfortunately we can't yet use store.read_bytes, since it can't be created without the
|
||||
// header.
|
||||
let mut header_bytes = StoreHeader::decode_buffer();
|
||||
file.read_exact(&mut header_bytes).await?;
|
||||
let header = StoreHeader::decode(table_folder, &mut header_bytes).await?;
|
||||
let header = {
|
||||
let mut fixed_header_bytes = StoreHeader::buffer_for_fixed_decoding();
|
||||
file.read_exact(&mut fixed_header_bytes).await?;
|
||||
let fixed_header = StoreHeader::decode_fixed(table_folder, &fixed_header_bytes).await?;
|
||||
|
||||
// decode the indexes
|
||||
let mut rest_bytes: Vec<u8> = StoreHeader::buffer_for_rest_decoding(&fixed_header);
|
||||
file.read_exact(&mut rest_bytes).await?;
|
||||
StoreHeader::decode_rest(fixed_header, &rest_bytes).await?
|
||||
};
|
||||
|
||||
|
||||
// let primary_index: Index<T, FilePosition> = Index::connect(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue