mirror of
				https://github.com/isar/rusqlite.git
				synced 2025-10-31 05:48:56 +08:00 
			
		
		
		
	Merge branch 'err-code' of https://github.com/gwenn/rusqlite into gwenn-err-code
This commit is contained in:
		| @@ -2,31 +2,56 @@ use libc::c_int; | ||||
| use std::error; | ||||
| use std::fmt; | ||||
|  | ||||
| /// Error Codes | ||||
| #[derive(Clone, Copy, Debug, PartialEq, Eq)] | ||||
| pub enum ErrorCode { | ||||
|     /// Internal logic error in SQLite | ||||
|     InternalMalfunction, | ||||
|     /// Access permission denied | ||||
|     PermissionDenied, | ||||
|     /// Callback routine requested an abort | ||||
|     OperationAborted, | ||||
|     /// The database file is locked | ||||
|     DatabaseBusy, | ||||
|     /// A table in the database is locked | ||||
|     DatabaseLocked, | ||||
|     /// A malloc() failed | ||||
|     OutOfMemory, | ||||
|     /// Attempt to write a readonly database | ||||
|     ReadOnly, | ||||
|     /// Operation terminated by sqlite3_interrupt() | ||||
|     OperationInterrupted, | ||||
|     /// Some kind of disk I/O error occurred | ||||
|     SystemIOFailure, | ||||
|     /// The database disk image is malformed | ||||
|     DatabaseCorrupt, | ||||
|     /// Unknown opcode in sqlite3_file_control() | ||||
|     NotFound, | ||||
|     /// Insertion failed because database is full | ||||
|     DiskFull, | ||||
|     /// Unable to open the database file | ||||
|     CannotOpen, | ||||
|     /// Database lock protocol error | ||||
|     FileLockingProtocolFailed, | ||||
|     /// The database schema changed | ||||
|     SchemaChanged, | ||||
|     /// String or BLOB exceeds size limit | ||||
|     TooBig, | ||||
|     /// Abort due to constraint violation | ||||
|     ConstraintViolation, | ||||
|     /// Data type mismatch | ||||
|     TypeMismatch, | ||||
|     /// Library used incorrectly | ||||
|     APIMisuse, | ||||
|     /// Uses OS features not supported on host | ||||
|     NoLargeFileSupport, | ||||
|     /// Authorization denied | ||||
|     AuthorizationForStatementDenied, | ||||
|     /// 2nd parameter to sqlite3_bind out of range | ||||
|     ParameterOutOfRange, | ||||
|     /// File opened that is not a database file | ||||
|     NotADatabase, | ||||
|     /// SQL error or missing database | ||||
|     Unknown, | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -86,6 +86,7 @@ pub use transaction::{DropBehavior, Savepoint, Transaction, TransactionBehavior} | ||||
| #[allow(deprecated)] | ||||
| pub use error::SqliteError; | ||||
| pub use error::Error; | ||||
| pub use ffi::ErrorCode; | ||||
|  | ||||
| pub use cache::CachedStatement; | ||||
|  | ||||
| @@ -1506,7 +1507,7 @@ mod test { | ||||
|  | ||||
|         match result.unwrap_err() { | ||||
|             Error::SqliteFailure(err, _) => { | ||||
|                 assert_eq!(err.code, ffi::ErrorCode::ConstraintViolation); | ||||
|                 assert_eq!(err.code, ErrorCode::ConstraintViolation); | ||||
|  | ||||
|                 // extended error codes for constraints were added in SQLite 3.7.16; if we're | ||||
|                 // running on a version at least that new, check for the extended code | ||||
|   | ||||
		Reference in New Issue
	
	Block a user