Rename column_position ~> column variables, and introduce runtime error AttemptToIndexAlreadyIndexedColumn
This commit is contained in:
parent
052236d892
commit
12c91ce70e
5 changed files with 71 additions and 38 deletions
|
|
@ -479,13 +479,39 @@ mod tests {
|
|||
let result = validate_operation(syntax, &db_schema);
|
||||
assert!(matches!(result, Ok(Operation::Delete(_, Some(operation::Condition::Eq(_, _))))));
|
||||
|
||||
let Ok(Operation::Delete(table_position, Some(operation::Condition::Eq(column_position, value)))) = result else { panic!() };
|
||||
let Ok(Operation::Delete(table_position, Some(operation::Condition::Eq(column, value)))) = result else { panic!() };
|
||||
|
||||
assert!(table_position == users_position);
|
||||
assert!(column_position == age);
|
||||
assert!(column == age);
|
||||
assert!(value == Indexable(Int(25)));
|
||||
// assert!(condition == None);
|
||||
}
|
||||
|
||||
// ====CreateIndex====
|
||||
#[test]
|
||||
fn test_create_index() {
|
||||
let users_schema: TableSchema = users_schema();
|
||||
let db_schema: DbSchema = db_schema(&users_schema);
|
||||
|
||||
let users_position = 0;
|
||||
let age = 2;
|
||||
|
||||
let syntax: RawQuerySyntax = CreateIndex("users".to_string(), "age".to_string());
|
||||
let result = validate_operation(syntax, &db_schema);
|
||||
assert!(matches!(result, Ok(Operation::CreateIndex(_, _))));
|
||||
|
||||
let Ok(Operation::CreateIndex(table_position, column)) = result else { panic!() };
|
||||
|
||||
assert!(table_position == users_position);
|
||||
assert!(column == age);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_create_index_nonexistent_column() {
|
||||
let users_schema: TableSchema = users_schema();
|
||||
let db_schema: DbSchema = db_schema(&users_schema);
|
||||
|
||||
let syntax: RawQuerySyntax = CreateIndex("users".to_string(), "does_not_exist".to_string());
|
||||
let result = validate_operation(syntax, &db_schema);
|
||||
assert!(matches!(result, Err(ValidationError::ColumnsDoNotExist(_))));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue