Prevent panic on loading non-existent vtab module

This commit is contained in:
PThorpe92 2025-04-03 08:38:48 -04:00
parent e368cd1499
commit 3ad7d194cb
No known key found for this signature in database
GPG key ID: 66DB3FBACBDD05CC

View file

@ -60,8 +60,14 @@ pub fn parse_schema_rows(
let sql: &str = row.get::<&str>(4)?;
if root_page == 0 && sql.to_lowercase().contains("create virtual") {
let name: &str = row.get::<&str>(1)?;
let vtab = syms.vtabs.get(name).unwrap().clone();
schema.add_virtual_table(vtab);
let Some(vtab) = syms.vtabs.get(name) else {
return Err(LimboError::InvalidArgument(format!(
"Virtual table Module for {} not found in symbol table,
please load extension first",
name
)));
};
schema.add_virtual_table(vtab.clone());
} else {
let table = schema::BTreeTable::from_sql(sql, root_page as usize)?;
schema.add_btree_table(Rc::new(table));