mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-08-04 10:08:20 +00:00
index scan wip foo doesnt work yet
This commit is contained in:
parent
d3015ad854
commit
f02da18acd
14 changed files with 792 additions and 28 deletions
|
@ -46,6 +46,7 @@ impl Schema {
|
|||
#[derive(Clone, Debug)]
|
||||
pub enum Table {
|
||||
BTree(Rc<BTreeTable>),
|
||||
Index(Rc<Index>),
|
||||
Pseudo(Rc<PseudoTable>),
|
||||
}
|
||||
|
||||
|
@ -57,6 +58,7 @@ impl Table {
|
|||
pub fn get_rowid_alias_column(&self) -> Option<(usize, &Column)> {
|
||||
match self {
|
||||
Table::BTree(table) => table.get_rowid_alias_column(),
|
||||
Table::Index(_) => None,
|
||||
Table::Pseudo(_) => None,
|
||||
}
|
||||
}
|
||||
|
@ -64,6 +66,7 @@ impl Table {
|
|||
pub fn column_is_rowid_alias(&self, col: &Column) -> bool {
|
||||
match self {
|
||||
Table::BTree(table) => table.column_is_rowid_alias(col),
|
||||
Table::Index(_) => false,
|
||||
Table::Pseudo(_) => false,
|
||||
}
|
||||
}
|
||||
|
@ -71,6 +74,7 @@ impl Table {
|
|||
pub fn get_name(&self) -> &str {
|
||||
match self {
|
||||
Table::BTree(table) => &table.name,
|
||||
Table::Index(index) => &index.name,
|
||||
Table::Pseudo(_) => "",
|
||||
}
|
||||
}
|
||||
|
@ -81,6 +85,10 @@ impl Table {
|
|||
Some(column) => Some(&column.name),
|
||||
None => None,
|
||||
},
|
||||
Table::Index(i) => match i.columns.get(index) {
|
||||
Some(column) => Some(&column.name),
|
||||
None => None,
|
||||
},
|
||||
Table::Pseudo(table) => match table.columns.get(index) {
|
||||
Some(column) => Some(&column.name),
|
||||
None => None,
|
||||
|
@ -91,6 +99,7 @@ impl Table {
|
|||
pub fn get_column(&self, name: &str) -> Option<(usize, &Column)> {
|
||||
match self {
|
||||
Table::BTree(table) => table.get_column(name),
|
||||
Table::Index(index) => unimplemented!(),
|
||||
Table::Pseudo(table) => table.get_column(name),
|
||||
}
|
||||
}
|
||||
|
@ -98,6 +107,7 @@ impl Table {
|
|||
pub fn get_column_at(&self, index: usize) -> &Column {
|
||||
match self {
|
||||
Table::BTree(table) => table.columns.get(index).unwrap(),
|
||||
Table::Index(index) => unimplemented!(),
|
||||
Table::Pseudo(table) => table.columns.get(index).unwrap(),
|
||||
}
|
||||
}
|
||||
|
@ -105,6 +115,7 @@ impl Table {
|
|||
pub fn columns(&self) -> &Vec<Column> {
|
||||
match self {
|
||||
Table::BTree(table) => &table.columns,
|
||||
Table::Index(index) => unimplemented!(),
|
||||
Table::Pseudo(table) => &table.columns,
|
||||
}
|
||||
}
|
||||
|
@ -112,7 +123,8 @@ impl Table {
|
|||
pub fn has_rowid(&self) -> bool {
|
||||
match self {
|
||||
Table::BTree(table) => table.has_rowid,
|
||||
Table::Pseudo(_) => todo!(),
|
||||
Table::Index(_) => unimplemented!(),
|
||||
Table::Pseudo(_) => unimplemented!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue