@@ -162,11 +162,14 @@ mod _sqlite3 {
162162 SQLITE_CREATE_TABLE , SQLITE_CREATE_TEMP_INDEX , SQLITE_CREATE_TEMP_TABLE ,
163163 SQLITE_CREATE_TEMP_TRIGGER , SQLITE_CREATE_TEMP_VIEW , SQLITE_CREATE_TRIGGER ,
164164 SQLITE_CREATE_VIEW , SQLITE_CREATE_VTABLE , SQLITE_DBCONFIG_DEFENSIVE ,
165- SQLITE_DBCONFIG_DQS_DDL , SQLITE_DBCONFIG_DQS_DML , SQLITE_DBCONFIG_ENABLE_FKEY ,
166- SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER , SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION ,
167- SQLITE_DBCONFIG_ENABLE_QPSG , SQLITE_DBCONFIG_ENABLE_TRIGGER , SQLITE_DBCONFIG_ENABLE_VIEW ,
165+ SQLITE_DBCONFIG_DQS_DDL , SQLITE_DBCONFIG_DQS_DML , SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE ,
166+ SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE , SQLITE_DBCONFIG_ENABLE_COMMENTS ,
167+ SQLITE_DBCONFIG_ENABLE_FKEY , SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER ,
168+ SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION , SQLITE_DBCONFIG_ENABLE_QPSG ,
169+ SQLITE_DBCONFIG_ENABLE_TRIGGER , SQLITE_DBCONFIG_ENABLE_VIEW ,
168170 SQLITE_DBCONFIG_LEGACY_ALTER_TABLE , SQLITE_DBCONFIG_LEGACY_FILE_FORMAT ,
169171 SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE , SQLITE_DBCONFIG_RESET_DATABASE ,
172+ SQLITE_DBCONFIG_REVERSE_SCANORDER , SQLITE_DBCONFIG_STMT_SCANSTATUS ,
170173 SQLITE_DBCONFIG_TRIGGER_EQP , SQLITE_DBCONFIG_TRUSTED_SCHEMA ,
171174 SQLITE_DBCONFIG_WRITABLE_SCHEMA , SQLITE_DELETE , SQLITE_DENY , SQLITE_DETACH ,
172175 SQLITE_DROP_INDEX , SQLITE_DROP_TABLE , SQLITE_DROP_TEMP_INDEX , SQLITE_DROP_TEMP_TABLE ,
@@ -1530,15 +1533,14 @@ mod _sqlite3 {
15301533 enable : OptionalArg < bool > ,
15311534 vm : & VirtualMachine ,
15321535 ) -> PyResult < ( ) > {
1533- let enable = enable . unwrap_or ( true ) as c_int ;
1536+ let db = self . db_lock ( vm ) ? ;
15341537 if !is_int_dbconfig ( op) {
15351538 return Err ( vm. new_value_error ( format ! ( "unknown config 'op': {op}" ) ) ) ;
15361539 }
1537- let db = self . db_lock ( vm ) ? ;
1540+ let enable = enable . unwrap_or ( true ) as c_int ;
15381541 let mut actual: c_int = 0 ;
15391542 let rc = unsafe { sqlite3_db_config ( db. db , op, enable, & mut actual) } ;
1540- db. check ( rc, vm)
1541- . map_err ( |_| new_operational_error ( vm, "Unable to set config" . to_owned ( ) ) ) ?;
1543+ db. check ( rc, vm) ?;
15421544 if enable != actual {
15431545 return Err ( new_operational_error ( vm, "Unable to set config" . to_owned ( ) ) ) ;
15441546 }
@@ -1547,10 +1549,10 @@ mod _sqlite3 {
15471549
15481550 #[ pymethod]
15491551 fn getconfig ( & self , op : c_int , vm : & VirtualMachine ) -> PyResult < bool > {
1552+ let db = self . db_lock ( vm) ?;
15501553 if !is_int_dbconfig ( op) {
15511554 return Err ( vm. new_value_error ( format ! ( "unknown config 'op': {op}" ) ) ) ;
15521555 }
1553- let db = self . db_lock ( vm) ?;
15541556 let mut current: c_int = 0 ;
15551557 let rc = unsafe { sqlite3_db_config ( db. db , op, -1 , & mut current) } ;
15561558 db. check ( rc, vm) ?;
@@ -3536,6 +3538,11 @@ mod _sqlite3 {
35363538 | SQLITE_DBCONFIG_ENABLE_VIEW
35373539 | SQLITE_DBCONFIG_LEGACY_FILE_FORMAT
35383540 | SQLITE_DBCONFIG_TRUSTED_SCHEMA
3541+ | SQLITE_DBCONFIG_STMT_SCANSTATUS
3542+ | SQLITE_DBCONFIG_REVERSE_SCANORDER
3543+ | SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE
3544+ | SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE
3545+ | SQLITE_DBCONFIG_ENABLE_COMMENTS
35393546 )
35403547 }
35413548
0 commit comments