add tests

clippy

expect err to make clippy happy

cleanup
This commit is contained in:
Pavan-Nambi
2025-10-12 05:55:06 +05:30
parent 88d5ee0cf1
commit 36bf88119f
5 changed files with 94 additions and 26 deletions

View File

@@ -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
}};

View File

@@ -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
}

View File

@@ -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(())
}
}

View File

@@ -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
}

View File

@@ -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;
}