Make use of indexes
This commit is contained in:
parent
2357ea8230
commit
8139112934
5 changed files with 120 additions and 27 deletions
|
|
@ -9,7 +9,7 @@ mod store_header;
|
|||
|
||||
use crate::entry::{Entry, EntryDetailed};
|
||||
use crate::storage_engine::{Store, FilePosition};
|
||||
use crate::cursor::{ReadCursor, WriteCursor, CursorWithStoreHeader, CursorWithWriteStoreHeader};
|
||||
use crate::cursor::{ReadCursor, WriteCursor, CursorWithStoreHeader, CursorWithWriteStoreHeader, CursorWithWriteAccessToIndex, CursorWithAccessToIndex};
|
||||
|
||||
type Data = u32;
|
||||
|
||||
|
|
@ -44,10 +44,12 @@ async fn create_or_connect() -> Result<Store<Data>> {
|
|||
}
|
||||
|
||||
|
||||
async fn append_entry(cursor: &mut WriteCursor<'_, Data>, entry: &Entry<Data>) -> Result<FilePosition> {
|
||||
async fn append_entry(cursor: &mut WriteCursor<'_, Data>, entry: Entry<Data>) -> Result<FilePosition> {
|
||||
println!("APPENDING");
|
||||
println!("entry == {:?}", entry);
|
||||
let file_position: FilePosition = cursor.append_entry(&entry).await.map_err(|e| e.to_io_or_panic())?;
|
||||
|
||||
// let file_position: FilePosition = cursor.append_entry(&entry).await.map_err(|e| e.to_io_or_panic())?;
|
||||
let file_position: FilePosition = cursor.insert_entry(entry).await.map_err(|e| e.to_io_or_panic())?;
|
||||
println!("file_position == {:?}", file_position);
|
||||
Ok(file_position)
|
||||
}
|
||||
|
|
@ -63,17 +65,20 @@ async fn read_entry(cursor: &mut ReadCursor<'_, Data>, file_position: FilePositi
|
|||
async fn append_bunch_of_entries(store: &mut Store<Data>) -> Result<()> {
|
||||
let mut cursor = store.write_cursor().await.map_err(|e| e.to_io_or_panic())?;
|
||||
let entry0: Entry<u32> = Entry::new(vec![1, 2, 3, 4, 5]);
|
||||
append_entry(&mut cursor, &entry0).await?;
|
||||
append_entry(&mut cursor, entry0).await?;
|
||||
|
||||
let entry1: Entry<u32> = Entry::new(vec![200, 200, 5, 6, 7]);
|
||||
append_entry(&mut cursor, &entry1).await?;
|
||||
append_entry(&mut cursor, entry1).await?;
|
||||
|
||||
// println!("{:?}", store.read_all_bytes().await?);
|
||||
let entry2: Entry<u32> = Entry::new(vec![99, 98, 97, 96, 95]);
|
||||
append_entry(&mut cursor, &entry2).await?;
|
||||
append_entry(&mut cursor, entry2).await?;
|
||||
|
||||
let entry3: Entry<u32> = Entry::new(vec![50,50,50,50,50]);
|
||||
append_entry(&mut cursor, &entry3).await?;
|
||||
append_entry(&mut cursor, entry3).await?;
|
||||
|
||||
let entry4: Entry<u32> = Entry::new(vec![1,50,50,50,50]); // same 0-th column as entry0
|
||||
append_entry(&mut cursor, entry4).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
@ -141,6 +146,13 @@ async fn main() -> Result<()> {
|
|||
println!("{:?}", x);
|
||||
}
|
||||
|
||||
{
|
||||
let mut cursor = store.read_cursor().await.map_err(|e| e.to_io_or_panic())?;
|
||||
let entries = cursor.index_lookup(0, &1).await.map_err(|e| e.to_io_or_panic())?;
|
||||
println!("ARE INDEXES WORKING???");
|
||||
println!("{:?}", entries);
|
||||
}
|
||||
|
||||
// {
|
||||
// let mut cursor = store.read_cursor().await.map_err(|e| e.to_io_or_panic())?;
|
||||
// let column = 3;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue