aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm/api
diff options
context:
space:
mode:
Diffstat (limited to 'ext/wasm/api')
-rw-r--r--ext/wasm/api/sqlite3-api-prologue.js75
-rw-r--r--ext/wasm/api/sqlite3-wasm.c7
2 files changed, 47 insertions, 35 deletions
diff --git a/ext/wasm/api/sqlite3-api-prologue.js b/ext/wasm/api/sqlite3-api-prologue.js
index ee973990a..277efa14a 100644
--- a/ext/wasm/api/sqlite3-api-prologue.js
+++ b/ext/wasm/api/sqlite3-api-prologue.js
@@ -1712,41 +1712,48 @@ globalThis.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
missing or falsy pointer argument as 0.
*/
capi.sqlite3_db_config = function(pDb, op, ...args){
- if(!this.s){
- this.s = wasm.xWrap('sqlite3__wasm_db_config_s','int',
- ['sqlite3*', 'int', 'string:static']
- /* MAINDBNAME requires a static string */);
- this.pii = wasm.xWrap('sqlite3__wasm_db_config_pii', 'int',
- ['sqlite3*', 'int', '*','int', 'int']);
- this.ip = wasm.xWrap('sqlite3__wasm_db_config_ip','int',
- ['sqlite3*', 'int', 'int','*']);
- }
switch(op){
- case capi.SQLITE_DBCONFIG_ENABLE_FKEY:
- case capi.SQLITE_DBCONFIG_ENABLE_TRIGGER:
- case capi.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER:
- case capi.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION:
- case capi.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE:
- case capi.SQLITE_DBCONFIG_ENABLE_QPSG:
- case capi.SQLITE_DBCONFIG_TRIGGER_EQP:
- case capi.SQLITE_DBCONFIG_RESET_DATABASE:
- case capi.SQLITE_DBCONFIG_DEFENSIVE:
- case capi.SQLITE_DBCONFIG_WRITABLE_SCHEMA:
- case capi.SQLITE_DBCONFIG_LEGACY_ALTER_TABLE:
- case capi.SQLITE_DBCONFIG_DQS_DML:
- case capi.SQLITE_DBCONFIG_DQS_DDL:
- case capi.SQLITE_DBCONFIG_ENABLE_VIEW:
- case capi.SQLITE_DBCONFIG_LEGACY_FILE_FORMAT:
- case capi.SQLITE_DBCONFIG_TRUSTED_SCHEMA:
- case capi.SQLITE_DBCONFIG_STMT_SCANSTATUS:
- case capi.SQLITE_DBCONFIG_REVERSE_SCANORDER:
- return this.ip(pDb, op, args[0], args[1] || 0);
- case capi.SQLITE_DBCONFIG_LOOKASIDE:
- return this.pii(pDb, op, args[0], args[1], args[2]);
- case capi.SQLITE_DBCONFIG_MAINDBNAME:
- return this.s(pDb, op, args[0]);
- default:
- return capi.SQLITE_MISUSE;
+ case capi.SQLITE_DBCONFIG_ENABLE_FKEY:
+ case capi.SQLITE_DBCONFIG_ENABLE_TRIGGER:
+ case capi.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER:
+ case capi.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION:
+ case capi.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE:
+ case capi.SQLITE_DBCONFIG_ENABLE_QPSG:
+ case capi.SQLITE_DBCONFIG_TRIGGER_EQP:
+ case capi.SQLITE_DBCONFIG_RESET_DATABASE:
+ case capi.SQLITE_DBCONFIG_DEFENSIVE:
+ case capi.SQLITE_DBCONFIG_WRITABLE_SCHEMA:
+ case capi.SQLITE_DBCONFIG_LEGACY_ALTER_TABLE:
+ case capi.SQLITE_DBCONFIG_DQS_DML:
+ case capi.SQLITE_DBCONFIG_DQS_DDL:
+ case capi.SQLITE_DBCONFIG_ENABLE_VIEW:
+ case capi.SQLITE_DBCONFIG_LEGACY_FILE_FORMAT:
+ case capi.SQLITE_DBCONFIG_TRUSTED_SCHEMA:
+ case capi.SQLITE_DBCONFIG_STMT_SCANSTATUS:
+ case capi.SQLITE_DBCONFIG_REVERSE_SCANORDER:
+ case capi.SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE:
+ case capi.SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE:
+ case capi.SQLITE_DBCONFIG_ENABLE_COMMENTS:
+ if( !this.ip ){
+ this.ip = wasm.xWrap('sqlite3__wasm_db_config_ip','int',
+ ['sqlite3*', 'int', 'int', '*']);
+ }
+ return this.ip(pDb, op, args[0], args[1] || 0);
+ case capi.SQLITE_DBCONFIG_LOOKASIDE:
+ if( !this.pii ){
+ this.pii = wasm.xWrap('sqlite3__wasm_db_config_pii', 'int',
+ ['sqlite3*', 'int', '*', 'int', 'int']);
+ }
+ return this.pii(pDb, op, args[0], args[1], args[2]);
+ case capi.SQLITE_DBCONFIG_MAINDBNAME:
+ if(!this.s){
+ this.s = wasm.xWrap('sqlite3__wasm_db_config_s','int',
+ ['sqlite3*', 'int', 'string:static']
+ /* MAINDBNAME requires a static string */);
+ }
+ return this.s(pDb, op, args[0]);
+ default:
+ return capi.SQLITE_MISUSE;
}
}.bind(Object.create(null));
diff --git a/ext/wasm/api/sqlite3-wasm.c b/ext/wasm/api/sqlite3-wasm.c
index c5dd495e5..461afe066 100644
--- a/ext/wasm/api/sqlite3-wasm.c
+++ b/ext/wasm/api/sqlite3-wasm.c
@@ -331,7 +331,6 @@ SQLITE_WASM_EXPORT void sqlite3__wasm_pstack_restore(unsigned char * p){
*/
SQLITE_WASM_EXPORT void * sqlite3__wasm_pstack_alloc(int n){
if( n<=0 ) return 0;
- //if( n & 0x7 ) n += 8 - (n & 0x7) /* align to 8-byte boundary */;
n = (n + 7) & ~7 /* align to 8-byte boundary */;
if( PStack.pBegin + n > PStack.pPos /*not enough space left*/
|| PStack.pBegin + n <= PStack.pBegin /*overflow*/ ) return 0;
@@ -597,6 +596,9 @@ const char * sqlite3__wasm_enum_json(void){
DefInt(SQLITE_DBCONFIG_TRUSTED_SCHEMA);
DefInt(SQLITE_DBCONFIG_STMT_SCANSTATUS);
DefInt(SQLITE_DBCONFIG_REVERSE_SCANORDER);
+ DefInt(SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE);
+ DefInt(SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE);
+ DefInt(SQLITE_DBCONFIG_ENABLE_COMMENTS);
DefInt(SQLITE_DBCONFIG_MAX);
} _DefGroup;
@@ -1630,6 +1632,9 @@ int sqlite3__wasm_db_config_ip(sqlite3 *pDb, int op, int arg1, int* pArg2){
case SQLITE_DBCONFIG_TRUSTED_SCHEMA:
case SQLITE_DBCONFIG_STMT_SCANSTATUS:
case SQLITE_DBCONFIG_REVERSE_SCANORDER:
+ case SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE:
+ case SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE:
+ case SQLITE_DBCONFIG_ENABLE_COMMENTS:
return sqlite3_db_config(pDb, op, arg1, pArg2);
default: return SQLITE_MISUSE;
}