expo-sqlite 58.0.5 → 58.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/{cache-v2-78bbb67ef2e5303a90f2.json → cache-v2-6dc03e7714a1610ef472.json} +2 -34
  3. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-460dcfd04a0608398479.json +194 -0
  4. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/{codemodel-v2-116f50c3201537e03e27.json → codemodel-v2-8e14581ef507556d2bce.json} +1 -1
  5. package/android/.cxx/RelWithDebInfo/5g1u4l1v/{x86/.cmake/api/v1/reply/index-2026-09-23T15-40-25-0497.json → arm64-v8a/.cmake/api/v1/reply/index-2026-09-25T08-12-46-0757.json} +6 -6
  6. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/{target-expo-sqlite-RelWithDebInfo-90901361ee8d4c0f0611.json → target-expo-sqlite-RelWithDebInfo-30004611dca53b759079.json} +3 -3
  7. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.ninja_deps +0 -0
  8. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.ninja_log +9 -3
  9. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeCache.txt +2 -2
  10. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  11. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  12. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  13. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  14. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/android_gradle_build.json +1 -1
  15. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/android_gradle_build_mini.json +1 -1
  16. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/build.ninja +10 -21
  17. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/compile_commands.json +5 -5
  18. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/compile_commands.json.bin +0 -0
  19. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/configure_fingerprint.bin +16 -12
  20. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/prefab_config.json +2 -2
  21. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/{cache-v2-243a4f0bf11e91cdc4d8.json → cache-v2-9dd29230e0a3346eded6.json} +2 -34
  22. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-43fb69d3e7149f98cdc2.json +194 -0
  23. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/{codemodel-v2-c0e5c09f8d4af05e23da.json → codemodel-v2-f2d02ffdcc97e2e5d94e.json} +1 -1
  24. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/{index-2026-09-23T15-40-10-0509.json → index-2026-09-25T08-12-48-0361.json} +6 -6
  25. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/{target-expo-sqlite-RelWithDebInfo-4ba3a43729b4fa322330.json → target-expo-sqlite-RelWithDebInfo-b47c368cedde8b8f4695.json} +3 -3
  26. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.ninja_deps +0 -0
  27. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.ninja_log +9 -3
  28. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeCache.txt +2 -2
  29. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  30. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  31. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  32. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/android_gradle_build.json +1 -1
  33. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/android_gradle_build_mini.json +1 -1
  34. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/build.ninja +10 -21
  35. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/compile_commands.json +5 -5
  36. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/compile_commands.json.bin +0 -0
  37. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/configure_fingerprint.bin +16 -12
  38. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/prefab_config.json +2 -2
  39. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfig.cmake +2 -2
  40. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +2 -2
  41. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +1 -1
  42. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfig.cmake +2 -2
  43. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/kolibri-android/kolibri-androidConfig.cmake +2 -2
  44. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +1 -1
  45. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfig.cmake +2 -2
  46. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +2 -2
  47. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +1 -1
  48. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfig.cmake +2 -2
  49. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +2 -2
  50. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +1 -1
  51. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/{cache-v2-336121a96d78e6796dce.json → cache-v2-d56b522ff81056f450b2.json} +2 -34
  52. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/cmakeFiles-v1-ae2298dab638cae4ef52.json +194 -0
  53. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/{codemodel-v2-7f2c86bf1ed6bb14f83e.json → codemodel-v2-9f137e50964131cae142.json} +1 -1
  54. package/android/.cxx/RelWithDebInfo/5g1u4l1v/{x86_64/.cmake/api/v1/reply/index-2026-09-23T15-40-37-0921.json → x86/.cmake/api/v1/reply/index-2026-09-25T08-12-49-0440.json} +6 -6
  55. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/{target-expo-sqlite-RelWithDebInfo-8831e9862f5bc79725de.json → target-expo-sqlite-RelWithDebInfo-eb983f017e00fc0171f0.json} +3 -3
  56. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.ninja_deps +0 -0
  57. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.ninja_log +9 -3
  58. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeCache.txt +2 -2
  59. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  60. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  61. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  62. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  63. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/android_gradle_build.json +1 -1
  64. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/android_gradle_build_mini.json +1 -1
  65. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/build.ninja +10 -21
  66. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/compile_commands.json +5 -5
  67. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/compile_commands.json.bin +0 -0
  68. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/configure_fingerprint.bin +20 -16
  69. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/prefab_config.json +2 -2
  70. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/{cache-v2-7680fd2ea5093a2a48e5.json → cache-v2-f7ff4cccc0dafa8cc20b.json} +2 -34
  71. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-7bf8175c7b3bc27834ee.json +194 -0
  72. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/{codemodel-v2-60fec8725e2bb1fa02e5.json → codemodel-v2-a10143906763b4814bd5.json} +1 -1
  73. package/android/.cxx/RelWithDebInfo/5g1u4l1v/{arm64-v8a/.cmake/api/v1/reply/index-2026-09-23T15-39-54-0780.json → x86_64/.cmake/api/v1/reply/index-2026-09-25T08-12-50-0523.json} +6 -6
  74. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/{target-expo-sqlite-RelWithDebInfo-baac7cda33db6bea8600.json → target-expo-sqlite-RelWithDebInfo-a17b991f720b580ee4f1.json} +3 -3
  75. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.ninja_deps +0 -0
  76. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.ninja_log +10 -4
  77. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeCache.txt +2 -2
  78. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  79. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  80. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  81. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  82. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/android_gradle_build.json +1 -1
  83. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/android_gradle_build_mini.json +1 -1
  84. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/build.ninja +10 -21
  85. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/compile_commands.json +5 -5
  86. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/compile_commands.json.bin +0 -0
  87. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/configure_fingerprint.bin +20 -16
  88. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/prefab_config.json +2 -2
  89. package/android/.cxx/tools/release/arm64-v8a/compile_commands.json +5 -5
  90. package/android/.cxx/tools/release/armeabi-v7a/compile_commands.json +5 -5
  91. package/android/.cxx/tools/release/x86/compile_commands.json +5 -5
  92. package/android/.cxx/tools/release/x86_64/compile_commands.json +5 -5
  93. package/android/build.gradle +2 -2
  94. package/expo-module.config.json +1 -1
  95. package/ios/Benchmarks/Benchmarks.swift +57 -0
  96. package/ios/Benchmarks/JavaScriptBenchmarks.swift +196 -0
  97. package/ios/Benchmarks/StatementBenchmarks.swift +179 -0
  98. package/ios/ExpoSQLite.podspec +11 -1
  99. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.aar +0 -0
  100. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.aar.md5 +1 -0
  101. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.aar.sha1 +1 -0
  102. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.aar.sha256 +1 -0
  103. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.aar.sha512 +1 -0
  104. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.5/expo.modules.sqlite-58.0.5.module → 58.0.6/expo.modules.sqlite-58.0.6.module} +16 -16
  105. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.module.md5 +1 -0
  106. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.module.sha1 +1 -0
  107. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.module.sha256 +1 -0
  108. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.module.sha512 +1 -0
  109. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.5/expo.modules.sqlite-58.0.5.pom → 58.0.6/expo.modules.sqlite-58.0.6.pom} +2 -2
  110. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.pom.md5 +1 -0
  111. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.pom.sha1 +1 -0
  112. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.pom.sha256 +1 -0
  113. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.6/expo.modules.sqlite-58.0.6.pom.sha512 +1 -0
  114. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml +4 -4
  115. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.md5 +1 -1
  116. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha1 +1 -1
  117. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha256 +1 -1
  118. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha512 +1 -1
  119. package/package.json +3 -3
  120. package/spm.config.json +1 -0
  121. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-36ba212a0f357943e830.json +0 -809
  122. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-74456d66c64ab5130b71.json +0 -809
  123. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/cmakeFiles-v1-985fbc81afea194fb834.json +0 -809
  124. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-f4180429c22746cfd636.json +0 -809
  125. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar +0 -0
  126. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.md5 +0 -1
  127. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha1 +0 -1
  128. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha256 +0 -1
  129. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha512 +0 -1
  130. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.md5 +0 -1
  131. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha1 +0 -1
  132. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha256 +0 -1
  133. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha512 +0 -1
  134. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.md5 +0 -1
  135. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha1 +0 -1
  136. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha256 +0 -1
  137. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha512 +0 -1
  138. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.5/expo.modules.sqlite-58.0.5-sources.jar → 58.0.6/expo.modules.sqlite-58.0.6-sources.jar} +0 -0
  139. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.5/expo.modules.sqlite-58.0.5-sources.jar.md5 → 58.0.6/expo.modules.sqlite-58.0.6-sources.jar.md5} +0 -0
  140. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha1 → 58.0.6/expo.modules.sqlite-58.0.6-sources.jar.sha1} +0 -0
  141. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha256 → 58.0.6/expo.modules.sqlite-58.0.6-sources.jar.sha256} +0 -0
  142. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha512 → 58.0.6/expo.modules.sqlite-58.0.6-sources.jar.sha512} +0 -0
@@ -0,0 +1,179 @@
1
+ // Copyright 2026-present 650 Industries. All rights reserved.
2
+
3
+ import ExpoModulesTestCore
4
+ import Testing
5
+
6
+ @testable import ExpoModulesCore
7
+ @testable import ExpoSQLite
8
+
9
+ /// SQLite copies a bound text before `bind` returns, as the module does for every text parameter.
10
+ private let sqliteTransient = unsafeBitCast(OpaquePointer(bitPattern: -1), to: sqlite3_destructor_type.self)
11
+
12
+ /// Native-only benchmarks: the raw SQLite C API on one side, the Swift members of `NativeDatabase`
13
+ /// and `NativeStatement` on the other. Reading them side by side isolates the cost the Swift layer
14
+ /// adds (string bridging, the statement semaphore, error checks) from the cost of SQLite itself.
15
+ extension Benchmarks {
16
+ /// Opens a seeded in-memory database through the C API and wraps it the way the module does.
17
+ /// Setup failures stop the case, so a broken handle is never timed.
18
+ private func openDatabase() throws -> NativeDatabase {
19
+ var pointer: OpaquePointer?
20
+ try #require(exsqlite3_open(":memory:", &pointer) == SQLITE_OK)
21
+ try #require(exsqlite3_exec(pointer, BenchmarkSchema.setup(), nil, nil, nil) == SQLITE_OK)
22
+ return NativeDatabase(pointer, databasePath: ":memory:", openOptions: OpenDatabaseOptions())
23
+ }
24
+
25
+ private func prepare(_ source: String, in database: NativeDatabase) throws -> OpaquePointer? {
26
+ var statement: OpaquePointer?
27
+ try #require(exsqlite3_prepare_v2(database.pointer, source, -1, &statement, nil) == SQLITE_OK)
28
+ return statement
29
+ }
30
+
31
+ /// Touches every column of the current row the way `getColumnValue` does, without allocating.
32
+ private func readRow(_ statement: OpaquePointer?) {
33
+ for column in 0..<Int32(BenchmarkSchema.columnCount) {
34
+ switch exsqlite3_column_type(statement, column) {
35
+ case SQLITE_INTEGER:
36
+ _ = exsqlite3_column_int64(statement, column)
37
+ case SQLITE_FLOAT:
38
+ _ = exsqlite3_column_double(statement, column)
39
+ case SQLITE_TEXT:
40
+ _ = exsqlite3_column_text(statement, column)
41
+ _ = exsqlite3_column_bytes(statement, column)
42
+ default:
43
+ break
44
+ }
45
+ }
46
+ }
47
+
48
+ // MARK: - SQLite floor
49
+
50
+ @Test
51
+ func `raw C: select one row by id`() async throws {
52
+ try await sqliteBenchmarkCase { appContext in
53
+ let database = try openDatabase()
54
+ let runtime = try appContext.runtime
55
+ let statement = try prepare("SELECT \(BenchmarkSchema.selectColumns) FROM t WHERE id = ?", in: database)
56
+ benchmark("raw C: select 1 row by id", runtime: runtime) { iterations in
57
+ for i in 0..<iterations {
58
+ exsqlite3_bind_int64(statement, 1, Int64(i % BenchmarkSchema.rowCount) + 1)
59
+ _ = exsqlite3_step(statement)
60
+ readRow(statement)
61
+ exsqlite3_reset(statement)
62
+ }
63
+ }
64
+ exsqlite3_finalize(statement)
65
+ exsqlite3_close(database.pointer)
66
+ }
67
+ }
68
+
69
+ @Test
70
+ func `raw C: select 100 rows`() async throws {
71
+ try await sqliteBenchmarkCase { appContext in
72
+ let database = try openDatabase()
73
+ let runtime = try appContext.runtime
74
+ let statement = try prepare("SELECT \(BenchmarkSchema.selectColumns) FROM t WHERE id <= 100", in: database)
75
+ benchmark("raw C: select 100 rows, read every cell", runtime: runtime) { iterations in
76
+ for _ in 0..<iterations {
77
+ while exsqlite3_step(statement) == SQLITE_ROW {
78
+ readRow(statement)
79
+ }
80
+ exsqlite3_reset(statement)
81
+ }
82
+ }
83
+ exsqlite3_finalize(statement)
84
+ exsqlite3_close(database.pointer)
85
+ }
86
+ }
87
+
88
+ @Test
89
+ func `raw C: insert with bound parameters`() async throws {
90
+ try await sqliteBenchmarkCase { appContext in
91
+ let database = try openDatabase()
92
+ let runtime = try appContext.runtime
93
+ let statement = try prepare(
94
+ "INSERT INTO t (int_value, real_value, text_value, null_value) VALUES (?, ?, ?, ?)",
95
+ in: database
96
+ )
97
+ benchmark("raw C: insert with 4 bound parameters", runtime: runtime) { iterations in
98
+ for i in 0..<iterations {
99
+ exsqlite3_bind_int64(statement, 1, Int64(i))
100
+ exsqlite3_bind_double(statement, 2, 1.5)
101
+ exsqlite3_bind_text(statement, 3, "row", -1, sqliteTransient)
102
+ exsqlite3_bind_null(statement, 4)
103
+ _ = exsqlite3_step(statement)
104
+ exsqlite3_reset(statement)
105
+ exsqlite3_clear_bindings(statement)
106
+ }
107
+ }
108
+ exsqlite3_finalize(statement)
109
+ exsqlite3_close(database.pointer)
110
+ }
111
+ }
112
+
113
+ @Test
114
+ func `raw C: prepare and finalize`() async throws {
115
+ try await sqliteBenchmarkCase { appContext in
116
+ let database = try openDatabase()
117
+ let runtime = try appContext.runtime
118
+ let source = "SELECT \(BenchmarkSchema.selectColumns) FROM t WHERE id = 1"
119
+ benchmark("raw C: prepare + finalize", runtime: runtime) { iterations in
120
+ for _ in 0..<iterations {
121
+ var statement: OpaquePointer?
122
+ exsqlite3_prepare_v2(database.pointer, source, -1, &statement, nil)
123
+ exsqlite3_finalize(statement)
124
+ }
125
+ }
126
+ exsqlite3_close(database.pointer)
127
+ }
128
+ }
129
+
130
+ // MARK: - Swift members
131
+
132
+ @Test
133
+ func `Swift: prepare and finalize through the shared objects`() async throws {
134
+ try await sqliteBenchmarkCase { appContext in
135
+ let database = try openDatabase()
136
+ let runtime = try appContext.runtime
137
+ let source = "SELECT \(BenchmarkSchema.selectColumns) FROM t WHERE id = 1"
138
+ try benchmark("Swift: prepareSync + finalizeSync", runtime: runtime) { iterations in
139
+ for _ in 0..<iterations {
140
+ let statement = NativeStatement()
141
+ try database.prepareSync(statement: statement, source: source)
142
+ try statement.finalizeSync(database: database)
143
+ }
144
+ }
145
+ exsqlite3_close(database.pointer)
146
+ }
147
+ }
148
+
149
+ @Test
150
+ func `Swift: column names of a prepared statement`() async throws {
151
+ try await sqliteBenchmarkCase { appContext in
152
+ let database = try openDatabase()
153
+ let runtime = try appContext.runtime
154
+ let statement = NativeStatement()
155
+ try database.prepareSync(statement: statement, source: "SELECT \(BenchmarkSchema.selectColumns) FROM t")
156
+ try benchmark("Swift: getColumnNamesSync (5 columns)", runtime: runtime) { iterations in
157
+ for _ in 0..<iterations {
158
+ _ = try statement.getColumnNamesSync()
159
+ }
160
+ }
161
+ try statement.finalizeSync(database: database)
162
+ exsqlite3_close(database.pointer)
163
+ }
164
+ }
165
+
166
+ @Test
167
+ func `Swift: exec a trivial statement`() async throws {
168
+ try await sqliteBenchmarkCase { appContext in
169
+ let database = try openDatabase()
170
+ let runtime = try appContext.runtime
171
+ try benchmark("Swift: execSync('SELECT 1')", runtime: runtime) { iterations in
172
+ for _ in 0..<iterations {
173
+ try database.execSync(source: "SELECT 1")
174
+ }
175
+ }
176
+ exsqlite3_close(database.pointer)
177
+ }
178
+ }
179
+ }
@@ -71,7 +71,7 @@ Pod::Spec.new do |s|
71
71
  'OTHER_SWIFT_FLAGS' => '$(inherited) ' + swift_flags,
72
72
  }
73
73
  s.source_files = "**/*.{c,h,m,swift}"
74
- s.exclude_files = 'Tests'
74
+ s.exclude_files = ['Tests', 'Benchmarks']
75
75
 
76
76
  s.test_spec 'Tests' do |test_spec|
77
77
  test_spec.source_files = 'Tests'
@@ -81,6 +81,16 @@ Pod::Spec.new do |s|
81
81
  }
82
82
  end
83
83
 
84
+ # Performance benchmarks, run with `et native-unit-tests --benchmarks`. A separate spec, so unit
85
+ # test runs neither build nor run them.
86
+ s.test_spec 'Benchmarks' do |test_spec|
87
+ test_spec.dependency 'ExpoModulesTestCore'
88
+ test_spec.source_files = 'Benchmarks'
89
+ test_spec.pod_target_xcconfig = {
90
+ 'OTHER_LDFLAGS' => '-lc++'
91
+ }
92
+ end
93
+
84
94
  vendored_frameworks = []
85
95
  if podfile_properties['expo.sqlite.withSQLiteVecExtension'] == 'true'
86
96
  vendored_frameworks << 'vec.xcframework'
@@ -0,0 +1 @@
1
+ 266464ed51aaf1540662e2899733dd20a685ae8d76e3c565080c7877f0afbe63
@@ -0,0 +1 @@
1
+ 90ae6801b8ad8f297e08d7e680dc986ec7abefd25c1818f27e41eea17a68d1c4f7f7d249f161ac80d30deb9b2a1e7cca957b41a83dcb7ca49927fb28d741d5e4
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.sqlite",
6
- "version": "58.0.5",
6
+ "version": "58.0.6",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,13 +24,13 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.sqlite-58.0.5.aar",
28
- "url": "expo.modules.sqlite-58.0.5.aar",
27
+ "name": "expo.modules.sqlite-58.0.6.aar",
28
+ "url": "expo.modules.sqlite-58.0.6.aar",
29
29
  "size": 3960770,
30
- "sha512": "01dbc41973b2ebae1772a5edc24e2e80ebbc3fef8f43a49a0c6d525d06af00dc2cf46c5e104387a2f59f252b632756f7c0e4dc05f231c91ec43676df88ef56f1",
31
- "sha256": "66e4488bd02141346b04a8bc40fd3880143470b69d1f12b2897b6ab9e90650e9",
32
- "sha1": "124eae424bb185c8a6c6f9ad3d808337ffa285c1",
33
- "md5": "d952f01aa0c2b9341bd46b742afea2f3"
30
+ "sha512": "90ae6801b8ad8f297e08d7e680dc986ec7abefd25c1818f27e41eea17a68d1c4f7f7d249f161ac80d30deb9b2a1e7cca957b41a83dcb7ca49927fb28d741d5e4",
31
+ "sha256": "266464ed51aaf1540662e2899733dd20a685ae8d76e3c565080c7877f0afbe63",
32
+ "sha1": "fb36d4e50b96cfa380e237fa8928ef37f43c803d",
33
+ "md5": "9f080a8e1988c421d1a8b4924f22d9e7"
34
34
  }
35
35
  ]
36
36
  },
@@ -61,19 +61,19 @@
61
61
  "group": "io.github.expo.pika",
62
62
  "module": "pika-api",
63
63
  "version": {
64
- "requires": "1.0.0"
64
+ "requires": "1.1.0"
65
65
  }
66
66
  }
67
67
  ],
68
68
  "files": [
69
69
  {
70
- "name": "expo.modules.sqlite-58.0.5.aar",
71
- "url": "expo.modules.sqlite-58.0.5.aar",
70
+ "name": "expo.modules.sqlite-58.0.6.aar",
71
+ "url": "expo.modules.sqlite-58.0.6.aar",
72
72
  "size": 3960770,
73
- "sha512": "01dbc41973b2ebae1772a5edc24e2e80ebbc3fef8f43a49a0c6d525d06af00dc2cf46c5e104387a2f59f252b632756f7c0e4dc05f231c91ec43676df88ef56f1",
74
- "sha256": "66e4488bd02141346b04a8bc40fd3880143470b69d1f12b2897b6ab9e90650e9",
75
- "sha1": "124eae424bb185c8a6c6f9ad3d808337ffa285c1",
76
- "md5": "d952f01aa0c2b9341bd46b742afea2f3"
73
+ "sha512": "90ae6801b8ad8f297e08d7e680dc986ec7abefd25c1818f27e41eea17a68d1c4f7f7d249f161ac80d30deb9b2a1e7cca957b41a83dcb7ca49927fb28d741d5e4",
74
+ "sha256": "266464ed51aaf1540662e2899733dd20a685ae8d76e3c565080c7877f0afbe63",
75
+ "sha1": "fb36d4e50b96cfa380e237fa8928ef37f43c803d",
76
+ "md5": "9f080a8e1988c421d1a8b4924f22d9e7"
77
77
  }
78
78
  ]
79
79
  },
@@ -87,8 +87,8 @@
87
87
  },
88
88
  "files": [
89
89
  {
90
- "name": "expo.modules.sqlite-58.0.5-sources.jar",
91
- "url": "expo.modules.sqlite-58.0.5-sources.jar",
90
+ "name": "expo.modules.sqlite-58.0.6-sources.jar",
91
+ "url": "expo.modules.sqlite-58.0.6-sources.jar",
92
92
  "size": 11821,
93
93
  "sha512": "7584658ab5c9dd4f06e3445b056b83007c6fc6162cdda3b3df67bb9b7ec45e17d686903a37feae801ee8b966ed1bd36de9386d739c783bbaec65391dbaa6dc65",
94
94
  "sha256": "a4b537cf4b334950fc82e5d251599ed7b3bc6d5c2410a3fdca38b81650fe27c2",
@@ -0,0 +1 @@
1
+ b564b0cea268984f0de3a5623b684066f579231c816b69c4400c17760dbf88ba
@@ -0,0 +1 @@
1
+ 9e6186b07489ddf47b29a232edd70de19e5cd85f0d12f4dd4365fe36275973db4aaa29ae1b1921a7110fe319d5f1c420a654abbe9ce3f90cd659ae050da9ebb4
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.sqlite</artifactId>
12
- <version>58.0.5</version>
12
+ <version>58.0.6</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.sqlite</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -52,7 +52,7 @@
52
52
  <dependency>
53
53
  <groupId>io.github.expo.pika</groupId>
54
54
  <artifactId>pika-api</artifactId>
55
- <version>1.0.0</version>
55
+ <version>1.1.0</version>
56
56
  <scope>runtime</scope>
57
57
  </dependency>
58
58
  </dependencies>
@@ -0,0 +1 @@
1
+ da6ffa008ecf889ceccba8fcb89c57904a1ed081145c38f9193023d63ed7f9b3
@@ -0,0 +1 @@
1
+ cef7c7d2ad409cc57ca6b94a41b1936f17bf0129da56ccd3dbd838f5d4806f8fbca5f294076a28921d2bba407860504670cff9527f974ca025cef78dae9cd0d0
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.sqlite</artifactId>
5
5
  <versioning>
6
- <latest>58.0.5</latest>
7
- <release>58.0.5</release>
6
+ <latest>58.0.6</latest>
7
+ <release>58.0.6</release>
8
8
  <versions>
9
- <version>58.0.5</version>
9
+ <version>58.0.6</version>
10
10
  </versions>
11
- <lastUpdated>20260923154051</lastUpdated>
11
+ <lastUpdated>20260925081301</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 3f54b2575a7c6a0e36224bc210e94607
1
+ ad20fede4a2356940cad82ee6018e26c
@@ -1 +1 @@
1
- b113211e3e2dc200852368e8b5bb226c709a8ac3
1
+ e89fdb8d4ec5ee2c55e7479e234df8b2bc3f61f0
@@ -1 +1 @@
1
- 0386c4a4644ff3a2ebfbf91ba3c54af9f1554d3b9c3d1189105f236c5ffea511
1
+ be15405366c5203e1bc0fd22397f78ea304ed00cbedeeec10f01b3e8a77a4a90
@@ -1 +1 @@
1
- b460eea8589b53b7416c6431def8a0fb4fa5deeda88b80fb3da09d951e57f2788c2baf4ca56f5220b3bc0316a774841af9f18c142348b7223ec46e63f095c9d7
1
+ bd5aee16d6c557fa59fe0f94c04c3981044d83c09a15a5b899bb922086aa8c2af3cff2c7e39c4e730d51e370ce2e56f2097426da43f6d559c9e3b00ba929eea6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-sqlite",
3
- "version": "58.0.5",
3
+ "version": "58.0.6",
4
4
  "description": "Provides access to a database using SQLite (https://www.sqlite.org/). The database is persisted across restarts of your app.",
5
5
  "keywords": [
6
6
  "async-storage",
@@ -55,7 +55,7 @@
55
55
  "@types/jest": "^29.2.1",
56
56
  "@types/node": "^22.14.0",
57
57
  "@types/react": "~19.3.0",
58
- "expo": "58.0.0-preview.6",
58
+ "expo": "58.0.0-preview.7",
59
59
  "expo-module-scripts": "56.0.3",
60
60
  "react-error-boundary": "^4.0.11",
61
61
  "tar": "^7.5.22"
@@ -68,7 +68,7 @@
68
68
  "jest": {
69
69
  "preset": "expo-module-scripts"
70
70
  },
71
- "gitHead": "8aeb4368d396d2d71a2fc8c652c4d1d4d53ed858",
71
+ "gitHead": "ad41d067bd3df6dd12f1788acc6b54a68e7a650d",
72
72
  "scripts": {
73
73
  "build": "pnpm run build:lib && pnpm run build:plugin",
74
74
  "build:lib": "expo-build src",
package/spm.config.json CHANGED
@@ -39,6 +39,7 @@
39
39
  "name": "ExpoSQLite",
40
40
  "path": "ios",
41
41
  "pattern": "**/*.swift",
42
+ "exclude": ["Benchmarks/**"],
42
43
  "dependencies": [
43
44
  "ReactNativeDependencies",
44
45
  "React",