almost removed unwrap
This commit is contained in:
parent
5e2536e207
commit
56c48cd7cf
1 changed files with 14 additions and 2 deletions
|
|
@ -29,7 +29,7 @@ impl From<DatabaseBuilder> for Database {
|
||||||
}
|
}
|
||||||
|
|
||||||
dbb.leaf_pages.push(dbb.current_page);
|
dbb.leaf_pages.push(dbb.current_page);
|
||||||
Database::new(dbb.schema.unwrap(), dbb.leaf_pages) //panics is schema is not set
|
Database::new(dbb.schema.unwrap_or_default(), dbb.leaf_pages)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,6 +42,7 @@ pub fn write_sqlite<W: Write>(database: Database, mut writer: BufWriter<W>) -> R
|
||||||
n_pages += current_top_layer.len();
|
n_pages += current_top_layer.len();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// assert(won't panic)
|
||||||
let table_root_page = current_top_layer.get_mut(0).unwrap();
|
let table_root_page = current_top_layer.get_mut(0).unwrap();
|
||||||
writer.write_all(&create_header_page((n_pages + 1) as u32, database.schema).data)?; // 1 for header page
|
writer.write_all(&create_header_page((n_pages + 1) as u32, database.schema).data)?; // 1 for header page
|
||||||
|
|
||||||
|
|
@ -101,7 +102,7 @@ fn write_schema(root_page: &mut Page, schema_record: SchemaRecord) -> u16 {
|
||||||
fn create_interior_pages(child_pages: Vec<Page>) -> Vec<Page> {
|
fn create_interior_pages(child_pages: Vec<Page>) -> Vec<Page> {
|
||||||
let mut interior_pages = Vec::new();
|
let mut interior_pages = Vec::new();
|
||||||
let mut interior_page = Page::new_interior();
|
let mut interior_page = Page::new_interior();
|
||||||
interior_page.key = child_pages.iter().map(|p| p.key).max().unwrap();
|
interior_page.key = child_pages.iter().map(|p| p.key).max().unwrap_or(0);
|
||||||
interior_page.fw_position = page::START_OF_INTERIOR_PAGE;
|
interior_page.fw_position = page::START_OF_INTERIOR_PAGE;
|
||||||
let children_length = child_pages.len();
|
let children_length = child_pages.len();
|
||||||
let mut last_leaf: Page = Page::new_leaf(); // have to assign :(
|
let mut last_leaf: Page = Page::new_leaf(); // have to assign :(
|
||||||
|
|
@ -174,6 +175,17 @@ pub struct SchemaRecord {
|
||||||
pub sql: String,
|
pub sql: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Default for SchemaRecord {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
rowid: 0,
|
||||||
|
table_name: "".to_owned(),
|
||||||
|
root_page: 3,
|
||||||
|
sql: "".to_owned(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl SchemaRecord {
|
impl SchemaRecord {
|
||||||
pub fn new(rowid: u64, table_name: &str, root_page: u32, sql: &str) -> Self {
|
pub fn new(rowid: u64, table_name: &str, root_page: u32, sql: &str) -> Self {
|
||||||
Self {
|
Self {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue