1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
use crate::*; test_case!(error, async move { run!("CREATE TABLE TableA (id INTEGER);"); run!("INSERT INTO TableA (id) VALUES (1);"); let test_cases = vec![ (ExecuteError::QueryNotSupported.into(), "COMMIT;"), ( FetchError::TableNotFound("Nothing".to_owned()).into(), "SELECT * FROM Nothing;", ), ( SelectError::TooManyTables.into(), "SELECT * FROM TableA, TableB", ), ( TableError::TableFactorNotSupported.into(), "SELECT * FROM TableA JOIN (SELECT * FROM TableB) as TableC ON 1 = 1", ), ( JoinError::UsingOnJoinNotSupported.into(), "SELECT * FROM TableA JOIN TableA USING (id);", ), ( JoinError::JoinTypeNotSupported.into(), "SELECT * FROM TableA CROSS JOIN TableA as A;", ), ( EvaluateError::NestedSelectRowNotFound.into(), "SELECT * FROM TableA WHERE id = (SELECT id FROM TableA WHERE id = 2);", ), ( EvaluateError::ValueNotFound("noname".to_owned()).into(), "SELECT * FROM TableA WHERE noname = 1;", ), ( RowError::LackOfRequiredColumn("id".to_owned()).into(), "INSERT INTO TableA (id2) VALUES (1);", ), ( RowError::LackOfRequiredValue("id".to_owned()).into(), "INSERT INTO TableA (id2, id) VALUES (100);", ), ( RowError::TooManyValues.into(), "INSERT INTO TableA VALUES (100), (100, 200);", ), #[cfg(feature = "alter-table")] ( ExecuteError::UnsupportedAlterTableOperation( r#"ADD CONSTRAINT "hey" PRIMARY KEY (asdf)"#.to_owned(), ) .into(), r#"ALTER TABLE Foo ADD CONSTRAINT "hey" PRIMARY KEY (asdf);"#, ), ]; for (error, sql) in test_cases.into_iter() { test!(Err(error), sql); } run!("CREATE TABLE TableB (id BOOL);"); test!( Err(ValueError::SqlTypeNotSupported.into()), "INSERT INTO TableB (id) VALUES (0);" ); });