mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-31 13:54:27 +01:00
add tests
clippy expect err to make clippy happy cleanup
This commit is contained in:
@@ -2247,7 +2247,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(users_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(users_table))
|
||||
.expect("Test setup: failed to add users table");
|
||||
|
||||
// Add products table for join tests
|
||||
let products_table = BTreeTable {
|
||||
@@ -2301,7 +2303,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(products_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(products_table))
|
||||
.expect("Test setup: failed to add products table");
|
||||
|
||||
// Add orders table for join tests
|
||||
let orders_table = BTreeTable {
|
||||
@@ -2367,7 +2371,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(orders_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(orders_table))
|
||||
.expect("Test setup: failed to add orders table");
|
||||
|
||||
// Add customers table with id and name for testing column ambiguity
|
||||
let customers_table = BTreeTable {
|
||||
@@ -2406,7 +2412,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(customers_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(customers_table))
|
||||
.expect("Test setup: failed to add customers table");
|
||||
|
||||
// Add purchases table (junction table for three-way join)
|
||||
let purchases_table = BTreeTable {
|
||||
@@ -2469,7 +2477,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(purchases_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(purchases_table))
|
||||
.expect("Test setup: failed to add purchases table");
|
||||
|
||||
// Add vendors table with id, name, and price (ambiguous columns with customers)
|
||||
let vendors_table = BTreeTable {
|
||||
@@ -2520,7 +2530,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(vendors_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(vendors_table))
|
||||
.expect("Test setup: failed to add vendors table");
|
||||
|
||||
let sales_table = BTreeTable {
|
||||
name: "sales".to_string(),
|
||||
@@ -2558,7 +2570,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(sales_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(sales_table))
|
||||
.expect("Test setup: failed to add sales table");
|
||||
|
||||
schema
|
||||
}};
|
||||
|
||||
@@ -1565,10 +1565,22 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
};
|
||||
|
||||
schema.add_btree_table(Arc::new(customers_table));
|
||||
schema.add_btree_table(Arc::new(orders_table));
|
||||
schema.add_btree_table(Arc::new(products_table));
|
||||
schema.add_btree_table(Arc::new(logs_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(customers_table))
|
||||
.expect("Test setup: failed to add customers table");
|
||||
|
||||
schema
|
||||
.add_btree_table(Arc::new(orders_table))
|
||||
.expect("Test setup: failed to add orders table");
|
||||
|
||||
schema
|
||||
.add_btree_table(Arc::new(products_table))
|
||||
.expect("Test setup: failed to add products table");
|
||||
|
||||
schema
|
||||
.add_btree_table(Arc::new(logs_table))
|
||||
.expect("Test setup: failed to add logs table");
|
||||
|
||||
schema
|
||||
}
|
||||
|
||||
|
||||
@@ -1116,26 +1116,27 @@ impl Schema {
|
||||
|
||||
fn check_object_name_conflict(&self, name: &str) -> Result<()> {
|
||||
let normalized_name = normalize_ident(name);
|
||||
|
||||
if self.tables.contains_key(&normalized_name) {
|
||||
return Err(crate::LimboError::ParseError(format!(
|
||||
"table \"{}\" already exists",
|
||||
name
|
||||
)));
|
||||
return Err(crate::LimboError::ParseError(
|
||||
["table \"", name, "\" already exists"].concat().to_string(),
|
||||
));
|
||||
}
|
||||
|
||||
if self.views.contains_key(&normalized_name) {
|
||||
return Err(crate::LimboError::ParseError(format!(
|
||||
"view \"{}\" already exists",
|
||||
name
|
||||
)));
|
||||
return Err(crate::LimboError::ParseError(
|
||||
["view \"", name, "\" already exists"].concat().to_string(),
|
||||
));
|
||||
}
|
||||
|
||||
for index_list in self.indexes.values() {
|
||||
if index_list.iter().any(|i| i.name.eq_ignore_ascii_case(name)) {
|
||||
return Err(crate::LimboError::ParseError(format!(
|
||||
"index \"{}\" already exists",
|
||||
name
|
||||
)));
|
||||
return Err(crate::LimboError::ParseError(
|
||||
["index \"", name, "\" already exists"].concat().to_string(),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2445,7 +2445,9 @@ mod tests {
|
||||
has_autoincrement: false,
|
||||
unique_sets: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(users_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(users_table))
|
||||
.expect("Test setup: failed to add users table");
|
||||
|
||||
// Create orders table
|
||||
let orders_table = BTreeTable {
|
||||
@@ -2508,7 +2510,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(orders_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(orders_table))
|
||||
.expect("Test setup: failed to add orders table");
|
||||
|
||||
// Create products table
|
||||
let products_table = BTreeTable {
|
||||
@@ -2571,7 +2575,9 @@ mod tests {
|
||||
unique_sets: vec![],
|
||||
foreign_keys: vec![],
|
||||
};
|
||||
schema.add_btree_table(Arc::new(products_table));
|
||||
schema
|
||||
.add_btree_table(Arc::new(products_table))
|
||||
.expect("Test setup: failed to add products table");
|
||||
|
||||
schema
|
||||
}
|
||||
|
||||
@@ -66,3 +66,38 @@ do_execsql_test_in_memory_any_error create_table_duplicate_column_names_case_ins
|
||||
do_execsql_test_in_memory_any_error create_table_duplicate_column_names_quoted {
|
||||
CREATE TABLE t("a", a);
|
||||
}
|
||||
|
||||
# https://github.com/tursodatabase/turso/issues/3675
|
||||
do_execsql_test_in_memory_any_error create_table_view_collision-1 {
|
||||
CREATE VIEW v_same AS SELECT 1;
|
||||
CREATE TABLE v_same(x INT);
|
||||
}
|
||||
|
||||
do_execsql_test_in_memory_any_error create_view_table_collision-1 {
|
||||
CREATE TABLE t_same(x INT);
|
||||
CREATE VIEW t_same AS SELECT 1;
|
||||
}
|
||||
|
||||
do_execsql_test_in_memory_any_error create_index_view_collision-1 {
|
||||
CREATE VIEW i_same AS SELECT 1;
|
||||
CREATE TABLE t1(x);
|
||||
CREATE INDEX i_same ON t1(x);
|
||||
}
|
||||
|
||||
do_execsql_test_in_memory_any_error create_index_table_collision-1 {
|
||||
CREATE TABLE i_same(x INT);
|
||||
CREATE TABLE t2(y);
|
||||
CREATE INDEX i_same ON t2(y);
|
||||
}
|
||||
|
||||
do_execsql_test_in_memory_any_error create_table_index_collision-1 {
|
||||
CREATE TABLE t3(z);
|
||||
CREATE INDEX ix_same ON t3(z);
|
||||
CREATE TABLE ix_same(x INT);
|
||||
}
|
||||
|
||||
do_execsql_test_in_memory_any_error create_view_index_collision-1 {
|
||||
CREATE TABLE t4(w);
|
||||
CREATE INDEX ix_same ON t4(w);
|
||||
CREATE VIEW ix_same AS SELECT 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user