diff --git a/build.sh b/build.sh index a27272b..1443b73 100755 --- a/build.sh +++ b/build.sh @@ -13,4 +13,4 @@ mkdir -p artifacts cp target/wasm32-wasi/release/test.wasm artifacts/ # download SQLite 3 to use in tests -curl -L https://github.com/fluencelabs/sqlite/releases/download/v0.17.1_w/sqlite3.wasm -o artifacts/sqlite3.wasm +curl -L https://github.com/fluencelabs/sqlite/releases/download/v0.18.0_w/sqlite3.wasm -o artifacts/sqlite3.wasm diff --git a/sqlite3.wit b/sqlite3.wit index 936a403..e5d1d9c 100644 --- a/sqlite3.wit +++ b/sqlite3.wit @@ -1,4 +1,4 @@ -(@interface it_version "0.20.0") +(@interface it_version "0.24.1") ;; Types (@interface type (func @@ -13,18 +13,18 @@ (param $result_size: i32) )) ;; 4 (@interface type (func (param $result_ptr: i32) )) ;; 5 -(@interface type (record $DBExecDescriptor ( +(@interface type (record $DBOpenDescriptor ( field $ret_code: s32 - field $err_msg: string + field $db_handle: u32 ))) ;; 6 (@interface type (record $DBPrepareDescriptor ( field $ret_code: s32 field $stmt_handle: u32 field $tail: u32 ))) ;; 7 -(@interface type (record $DBOpenDescriptor ( +(@interface type (record $DBExecDescriptor ( field $ret_code: s32 - field $db_handle: u32 + field $err_msg: string ))) ;; 8 (@interface type (record $SecurityTetraplet ( field $peer_pk: string @@ -32,279 +32,196 @@ field $function_name: string field $json_path: string ))) ;; 9 -(@interface type (record $CallParameters ( - field $init_peer_id: string - field $service_id: string - field $service_creator_peer_id: string - field $host_id: string - field $particle_id: string - field $tetraplets: array (array (record 9)) -))) ;; 10 (@interface type (func - (param $stmt_handle: u32 $icol: u32) - (result string))) ;; 11 + (param $stmt_handle: u32 $pos: s32 $value: s64) + (result s32))) ;; 10 +(@interface type (func + (param $stmt_handle: u32 $pos: s32 $value: s64) + (result s32))) ;; 11 (@interface type (func (param $stmt_handle: u32 $icol: u32) (result string))) ;; 12 (@interface type (func (param $stmt_handle: u32 $icol: u32) - (result s32))) ;; 13 + (result string))) ;; 13 (@interface type (func - (param $stmt_handle: u32 $icol: u32) - (result s32))) ;; 14 + (param $db_handle: u32 $sql: string) + (result record 7))) ;; 14 (@interface type (func - (param $db_handle: u32) - (result s32))) ;; 15 + (param $db_handle: u32 $sql: string) + (result record 7))) ;; 15 (@interface type (func (param $db_handle: u32) (result s32))) ;; 16 (@interface type (func - (param $stmt_handle: u32 $pos: s32 $value: f64) + (param $db_handle: u32) (result s32))) ;; 17 (@interface type (func (param $stmt_handle: u32 $pos: s32 $value: f64) (result s32))) ;; 18 (@interface type (func - (param $filename: string $flags: s32 $vfs: string) - (result record 8))) ;; 19 + (param $stmt_handle: u32 $pos: s32 $value: f64) + (result s32))) ;; 19 (@interface type (func (param $filename: string $flags: s32 $vfs: string) - (result record 8))) ;; 20 + (result record 6))) ;; 20 (@interface type (func - (param $db_handle: u32) - (result s32))) ;; 21 + (param $filename: string $flags: s32 $vfs: string) + (result record 6))) ;; 21 (@interface type (func (param $db_handle: u32) (result s32))) ;; 22 (@interface type (func - (param $stmt_handle: u32) + (param $db_handle: u32) (result s32))) ;; 23 (@interface type (func (param $stmt_handle: u32) (result s32))) ;; 24 (@interface type (func - (param $stmt_handle: u32 $icol: u32) - (result s64))) ;; 25 + (param $stmt_handle: u32) + (result s32))) ;; 25 (@interface type (func - (param $stmt_handle: u32 $icol: u32) - (result s64))) ;; 26 + (param $stmt_handle: u32) + (result s32))) ;; 26 (@interface type (func - (param $db: u32) + (param $stmt_handle: u32) (result s32))) ;; 27 +(@interface type (func + (param $size: s64) + (result s64))) ;; 28 +(@interface type (func + (param $size: s64) + (result s64))) ;; 29 (@interface type (func (param $db: u32) - (result s32))) ;; 28 + (result s32))) ;; 30 (@interface type (func - (param $stmt_handle: u32 $icol: s32) - (result f64))) ;; 29 -(@interface type (func - (param $stmt_handle: u32 $icol: s32) - (result f64))) ;; 30 -(@interface type (func - (param $db_handle: u32 $ms: u32) + (param $db: u32) (result s32))) ;; 31 (@interface type (func - (param $db_handle: u32 $ms: u32) - (result s32))) ;; 32 + (param $db_handle: u32 $sql: string $callback_id: s32 $callback_arg: s32) + (result record 8))) ;; 32 (@interface type (func - (param $db_handle: u32) - (result string))) ;; 33 + (param $db_handle: u32 $sql: string $callback_id: s32 $callback_arg: s32) + (result record 8))) ;; 33 (@interface type (func - (param $db_handle: u32) - (result string))) ;; 34 + (param $stmt_handle: u32 $icol: s32) + (result f64))) ;; 34 (@interface type (func - (param $stmt_handle: u32 $pos: s32 $value: s64) - (result s32))) ;; 35 + (param $stmt_handle: u32 $icol: s32) + (result f64))) ;; 35 (@interface type (func - (param $stmt_handle: u32 $pos: s32 $value: s64) + (param $stmt_handle: u32 $icol: u32) (result s32))) ;; 36 (@interface type (func - (param $stmt_handle: u32) + (param $stmt_handle: u32 $icol: u32) (result s32))) ;; 37 (@interface type (func - (param $stmt_handle: u32) + (param $stmt_handle: u32 $pos: s32) (result s32))) ;; 38 -(@interface type (func - (param $db_handle: u32 $sql: string) - (result record 7))) ;; 39 -(@interface type (func - (param $db_handle: u32 $sql: string) - (result record 7))) ;; 40 (@interface type (func (param $stmt_handle: u32 $pos: s32) + (result s32))) ;; 39 +(@interface type (func + (param $stmt_handle: u32 $pos: s32 $blob: array (u8) $xDel: s32) + (result s32))) ;; 40 +(@interface type (func + (param $stmt_handle: u32 $pos: s32 $blob: array (u8) $xDel: s32) (result s32))) ;; 41 (@interface type (func - (param $stmt_handle: u32 $pos: s32) + (param $db_handle: u32) (result s32))) ;; 42 (@interface type (func - (param $stmt_handle: u32) + (param $db_handle: u32) (result s32))) ;; 43 (@interface type (func (param $stmt_handle: u32) (result s32))) ;; 44 (@interface type (func - (param $stmt_handle: u32 $pos: s32 $blob: array (u8) $xDel: s32) + (param $stmt_handle: u32) (result s32))) ;; 45 (@interface type (func - (param $stmt_handle: u32 $pos: s32 $blob: array (u8) $xDel: s32) + (param $stmt_handle: u32 $pos: s32 $text: string $xDel: s32) (result s32))) ;; 46 (@interface type (func - (param $db_handle: u32) + (param $stmt_handle: u32 $pos: s32 $text: string $xDel: s32) (result s32))) ;; 47 (@interface type (func - (param $db_handle: u32) + (param $stmt_handle: u32) (result s32))) ;; 48 (@interface type (func - (param $stmt_handle: u32 $pos: s32 $text: string $xDel: s32) + (param $stmt_handle: u32) (result s32))) ;; 49 (@interface type (func - (param $stmt_handle: u32 $pos: s32 $text: string $xDel: s32) - (result s32))) ;; 50 + (param $size: s64) + (result s64))) ;; 50 (@interface type (func - (param $stmt_handle: u32) - (result s32))) ;; 51 -(@interface type (func - (param $stmt_handle: u32) + (param $size: s64) + (result s64))) ;; 51 +(@interface type (func (result s32))) ;; 52 -(@interface type (func - (param $db_handle: u32 $sql: string $callback_id: s32 $callback_arg: s32) - (result record 6))) ;; 53 -(@interface type (func - (param $db_handle: u32 $sql: string $callback_id: s32 $callback_arg: s32) - (result record 6))) ;; 54 -(@interface type (func - (result s32))) ;; 55 (@interface type (func + (result s32))) ;; 53 +(@interface type (func + (param $stmt_handle: u32 $icol: u32) + (result s64))) ;; 54 +(@interface type (func + (param $stmt_handle: u32 $icol: u32) + (result s64))) ;; 55 +(@interface type (func + (param $db_handle: u32 $ms: u32) (result s32))) ;; 56 (@interface type (func - (param $stmt_handle: u32 $icol: s32) - (result array (u8)))) ;; 57 + (param $db_handle: u32 $ms: u32) + (result s32))) ;; 57 (@interface type (func (param $stmt_handle: u32 $icol: s32) (result array (u8)))) ;; 58 (@interface type (func - (param $stmt_handle: u32 $N: u32) - (result string))) ;; 59 + (param $stmt_handle: u32 $icol: s32) + (result array (u8)))) ;; 59 (@interface type (func (param $stmt_handle: u32 $N: u32) (result string))) ;; 60 (@interface type (func - (param $stmt_handle: u32 $icol: u32) - (result s32))) ;; 61 + (param $stmt_handle: u32 $N: u32) + (result string))) ;; 61 (@interface type (func (param $stmt_handle: u32 $icol: u32) (result s32))) ;; 62 +(@interface type (func + (param $stmt_handle: u32 $icol: u32) + (result s32))) ;; 63 +(@interface type (func + (param $db_handle: u32) + (result string))) ;; 64 +(@interface type (func + (param $db_handle: u32) + (result string))) ;; 65 ;; Adapters -(@interface func (type 11) - arg.get 0 - i32.from_u32 - arg.get 1 - i32.from_u32 - call-core 6 - call-core 3 - call-core 2 - string.lift_memory - call-core 1) -(@interface func (type 13) - arg.get 0 - i32.from_u32 - arg.get 1 - i32.from_u32 - call-core 7 - s32.from_i32) -(@interface func (type 15) - arg.get 0 - i32.from_u32 - call-core 8 - s32.from_i32) -(@interface func (type 17) - arg.get 0 - i32.from_u32 - arg.get 1 - i32.from_s32 - arg.get 2 - call-core 9 - s32.from_i32) -(@interface func (type 19) - arg.get 0 - string.size - i32.push 1 - call-core 0 - arg.get 0 - string.lower_memory - arg.get 1 - i32.from_s32 - arg.get 2 - string.size - i32.push 1 - call-core 0 - arg.get 2 - string.lower_memory - call-core 10 - call-core 3 - record.lift_memory 8 - call-core 1) -(@interface func (type 21) - arg.get 0 - i32.from_u32 - call-core 11 - s32.from_i32) -(@interface func (type 23) - arg.get 0 - i32.from_u32 - call-core 12 - s32.from_i32) -(@interface func (type 25) - arg.get 0 - i32.from_u32 - arg.get 1 - i32.from_u32 - call-core 13 - s64.from_i64) -(@interface func (type 27) - arg.get 0 - i32.from_u32 - call-core 14 - s32.from_i32) -(@interface func (type 29) - arg.get 0 - i32.from_u32 - arg.get 1 - i32.from_s32 - call-core 15) -(@interface func (type 31) - arg.get 0 - i32.from_u32 - arg.get 1 - i32.from_u32 - call-core 16 - s32.from_i32) -(@interface func (type 33) - arg.get 0 - i32.from_u32 - call-core 17 - call-core 3 - call-core 2 - string.lift_memory - call-core 1) -(@interface func (type 35) +(@interface func (type 10) arg.get 0 i32.from_u32 arg.get 1 i32.from_s32 arg.get 2 i64.from_s64 - call-core 18 + call-core 6 s32.from_i32) -(@interface func (type 37) +(@interface func (type 12) arg.get 0 i32.from_u32 - call-core 19 - s32.from_i32) -(@interface func (type 39) + arg.get 1 + i32.from_u32 + call-core 7 + call-core 3 + call-core 2 + string.lift_memory + call-core 1) +(@interface func (type 14) arg.get 0 i32.from_u32 arg.get 1 @@ -313,23 +230,105 @@ call-core 0 arg.get 1 string.lower_memory - call-core 20 + call-core 8 call-core 3 record.lift_memory 7 call-core 1) -(@interface func (type 41) +(@interface func (type 16) + arg.get 0 + i32.from_u32 + call-core 9 + s32.from_i32) +(@interface func (type 18) arg.get 0 i32.from_u32 arg.get 1 i32.from_s32 - call-core 21 + arg.get 2 + call-core 10 s32.from_i32) -(@interface func (type 43) +(@interface func (type 20) + arg.get 0 + string.size + i32.push 1 + call-core 0 + arg.get 0 + string.lower_memory + arg.get 1 + i32.from_s32 + arg.get 2 + string.size + i32.push 1 + call-core 0 + arg.get 2 + string.lower_memory + call-core 11 + call-core 3 + record.lift_memory 6 + call-core 1) +(@interface func (type 22) arg.get 0 i32.from_u32 - call-core 22 + call-core 12 s32.from_i32) -(@interface func (type 45) +(@interface func (type 24) + arg.get 0 + i32.from_u32 + call-core 13 + s32.from_i32) +(@interface func (type 26) + arg.get 0 + i32.from_u32 + call-core 14 + s32.from_i32) +(@interface func (type 28) + arg.get 0 + i64.from_s64 + call-core 15 + s64.from_i64) +(@interface func (type 30) + arg.get 0 + i32.from_u32 + call-core 16 + s32.from_i32) +(@interface func (type 32) + arg.get 0 + i32.from_u32 + arg.get 1 + string.size + i32.push 1 + call-core 0 + arg.get 1 + string.lower_memory + arg.get 2 + i32.from_s32 + arg.get 3 + i32.from_s32 + call-core 17 + call-core 3 + record.lift_memory 8 + call-core 1) +(@interface func (type 34) + arg.get 0 + i32.from_u32 + arg.get 1 + i32.from_s32 + call-core 18) +(@interface func (type 36) + arg.get 0 + i32.from_u32 + arg.get 1 + i32.from_u32 + call-core 19 + s32.from_i32) +(@interface func (type 38) + arg.get 0 + i32.from_u32 + arg.get 1 + i32.from_s32 + call-core 20 + s32.from_i32) +(@interface func (type 40) arg.get 0 i32.from_u32 arg.get 1 @@ -338,80 +337,95 @@ array.lower_memory u8 arg.get 3 i32.from_s32 + call-core 21 + s32.from_i32) +(@interface func (type 42) + arg.get 0 + i32.from_u32 + call-core 22 + s32.from_i32) +(@interface func (type 44) + arg.get 0 + i32.from_u32 call-core 23 s32.from_i32) -(@interface func (type 47) +(@interface func (type 46) arg.get 0 i32.from_u32 + arg.get 1 + i32.from_s32 + arg.get 2 + string.size + i32.push 1 + call-core 0 + arg.get 2 + string.lower_memory + arg.get 3 + i32.from_s32 call-core 24 s32.from_i32) -(@interface func (type 49) +(@interface func (type 48) arg.get 0 i32.from_u32 - arg.get 1 - i32.from_s32 - arg.get 2 - string.size - i32.push 1 - call-core 0 - arg.get 2 - string.lower_memory - arg.get 3 - i32.from_s32 call-core 25 s32.from_i32) -(@interface func (type 51) +(@interface func (type 50) arg.get 0 - i32.from_u32 + i64.from_s64 call-core 26 - s32.from_i32) -(@interface func (type 53) - arg.get 0 - i32.from_u32 - arg.get 1 - string.size - i32.push 1 - call-core 0 - arg.get 1 - string.lower_memory - arg.get 2 - i32.from_s32 - arg.get 3 - i32.from_s32 + s64.from_i64) +(@interface func (type 52) call-core 27 - call-core 3 - record.lift_memory 6 - call-core 1) -(@interface func (type 55) - call-core 28 s32.from_i32) -(@interface func (type 57) +(@interface func (type 54) + arg.get 0 + i32.from_u32 + arg.get 1 + i32.from_u32 + call-core 28 + s64.from_i64) +(@interface func (type 56) + arg.get 0 + i32.from_u32 + arg.get 1 + i32.from_u32 + call-core 29 + s32.from_i32) +(@interface func (type 58) arg.get 0 i32.from_u32 arg.get 1 i32.from_s32 - call-core 29 + call-core 30 call-core 3 call-core 2 byte_array.lift_memory call-core 1) -(@interface func (type 59) - arg.get 0 - i32.from_u32 - arg.get 1 - i32.from_u32 - call-core 30 - call-core 3 - call-core 2 - string.lift_memory - call-core 1) -(@interface func (type 61) +(@interface func (type 60) arg.get 0 i32.from_u32 arg.get 1 i32.from_u32 call-core 31 + call-core 3 + call-core 2 + string.lift_memory + call-core 1) +(@interface func (type 62) + arg.get 0 + i32.from_u32 + arg.get 1 + i32.from_u32 + call-core 32 s32.from_i32) +(@interface func (type 64) + arg.get 0 + i32.from_u32 + call-core 33 + call-core 3 + call-core 2 + string.lift_memory + call-core 1) ;; Exports (@interface export "allocate" (func 0)) @@ -420,57 +434,61 @@ (@interface export "get_result_ptr" (func 3)) (@interface export "set_result_size" (func 4)) (@interface export "set_result_ptr" (func 5)) -(@interface export "sqlite3_column_text" (func 12)) -(@interface export "sqlite3_column_bytes" (func 14)) -(@interface export "sqlite3_close" (func 16)) -(@interface export "sqlite3_bind_double" (func 18)) -(@interface export "sqlite3_open_v2" (func 20)) -(@interface export "sqlite3_changes" (func 22)) -(@interface export "sqlite3_step" (func 24)) -(@interface export "sqlite3_column_int64" (func 26)) -(@interface export "sqlite3_errcode" (func 28)) -(@interface export "sqlite3_column_double" (func 30)) -(@interface export "sqlite3_busy_timeout" (func 32)) -(@interface export "sqlite3_errmsg" (func 34)) -(@interface export "sqlite3_bind_int64" (func 36)) -(@interface export "sqlite3_finalize" (func 38)) -(@interface export "sqlite3_prepare_v2" (func 40)) -(@interface export "sqlite3_bind_null" (func 42)) -(@interface export "sqlite3_column_count" (func 44)) -(@interface export "sqlite3_bind_blob" (func 46)) -(@interface export "sqlite3_total_changes" (func 48)) -(@interface export "sqlite3_bind_text" (func 50)) -(@interface export "sqlite3_reset" (func 52)) -(@interface export "sqlite3_exec" (func 54)) -(@interface export "sqlite3_libversion_number" (func 56)) -(@interface export "sqlite3_column_blob" (func 58)) -(@interface export "sqlite3_column_name" (func 60)) -(@interface export "sqlite3_column_type" (func 62)) +(@interface export "sqlite3_bind_int64" (func 11)) +(@interface export "sqlite3_column_text" (func 13)) +(@interface export "sqlite3_prepare_v2" (func 15)) +(@interface export "sqlite3_close" (func 17)) +(@interface export "sqlite3_bind_double" (func 19)) +(@interface export "sqlite3_open_v2" (func 21)) +(@interface export "sqlite3_changes" (func 23)) +(@interface export "sqlite3_column_count" (func 25)) +(@interface export "sqlite3_finalize" (func 27)) +(@interface export "sqlite3_soft_heap_limit64" (func 29)) +(@interface export "sqlite3_errcode" (func 31)) +(@interface export "sqlite3_exec" (func 33)) +(@interface export "sqlite3_column_double" (func 35)) +(@interface export "sqlite3_column_bytes" (func 37)) +(@interface export "sqlite3_bind_null" (func 39)) +(@interface export "sqlite3_bind_blob" (func 41)) +(@interface export "sqlite3_total_changes" (func 43)) +(@interface export "sqlite3_step" (func 45)) +(@interface export "sqlite3_bind_text" (func 47)) +(@interface export "sqlite3_reset" (func 49)) +(@interface export "sqlite3_hard_heap_limit64" (func 51)) +(@interface export "sqlite3_libversion_number" (func 53)) +(@interface export "sqlite3_column_int64" (func 55)) +(@interface export "sqlite3_busy_timeout" (func 57)) +(@interface export "sqlite3_column_blob" (func 59)) +(@interface export "sqlite3_column_name" (func 61)) +(@interface export "sqlite3_column_type" (func 63)) +(@interface export "sqlite3_errmsg" (func 65)) ;; Implementations -(@interface implement (func 12) (func 11)) -(@interface implement (func 14) (func 13)) -(@interface implement (func 16) (func 15)) -(@interface implement (func 18) (func 17)) -(@interface implement (func 20) (func 19)) -(@interface implement (func 22) (func 21)) -(@interface implement (func 24) (func 23)) -(@interface implement (func 26) (func 25)) -(@interface implement (func 28) (func 27)) -(@interface implement (func 30) (func 29)) -(@interface implement (func 32) (func 31)) -(@interface implement (func 34) (func 33)) -(@interface implement (func 36) (func 35)) -(@interface implement (func 38) (func 37)) -(@interface implement (func 40) (func 39)) -(@interface implement (func 42) (func 41)) -(@interface implement (func 44) (func 43)) -(@interface implement (func 46) (func 45)) -(@interface implement (func 48) (func 47)) -(@interface implement (func 50) (func 49)) -(@interface implement (func 52) (func 51)) -(@interface implement (func 54) (func 53)) -(@interface implement (func 56) (func 55)) -(@interface implement (func 58) (func 57)) -(@interface implement (func 60) (func 59)) -(@interface implement (func 62) (func 61)) +(@interface implement (func 11) (func 10)) +(@interface implement (func 13) (func 12)) +(@interface implement (func 15) (func 14)) +(@interface implement (func 17) (func 16)) +(@interface implement (func 19) (func 18)) +(@interface implement (func 21) (func 20)) +(@interface implement (func 23) (func 22)) +(@interface implement (func 25) (func 24)) +(@interface implement (func 27) (func 26)) +(@interface implement (func 29) (func 28)) +(@interface implement (func 31) (func 30)) +(@interface implement (func 33) (func 32)) +(@interface implement (func 35) (func 34)) +(@interface implement (func 37) (func 36)) +(@interface implement (func 39) (func 38)) +(@interface implement (func 41) (func 40)) +(@interface implement (func 43) (func 42)) +(@interface implement (func 45) (func 44)) +(@interface implement (func 47) (func 46)) +(@interface implement (func 49) (func 48)) +(@interface implement (func 51) (func 50)) +(@interface implement (func 53) (func 52)) +(@interface implement (func 55) (func 54)) +(@interface implement (func 57) (func 56)) +(@interface implement (func 59) (func 58)) +(@interface implement (func 61) (func 60)) +(@interface implement (func 63) (func 62)) +(@interface implement (func 65) (func 64))