pyturso 0.3.0rc2__tar.gz → 0.3.0rc3__tar.gz

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.

Potentially problematic release.


This version of pyturso might be problematic. Click here for more details.

Files changed (187) hide show
  1. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/Cargo.lock +29 -27
  2. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/Cargo.toml +17 -17
  3. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/PKG-INFO +1 -1
  4. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/aggregate_operator.rs +1 -0
  5. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/compiler.rs +11 -1
  6. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/cursor.rs +1 -1
  7. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/join_operator.rs +1 -0
  8. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/operator.rs +3 -1
  9. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/view.rs +15 -0
  10. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/mod.rs +270 -10
  11. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/lib.rs +7 -0
  12. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/database/checkpoint_state_machine.rs +1 -1
  13. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/schema.rs +27 -5
  14. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/btree.rs +37 -693
  15. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/pager.rs +23 -13
  16. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/wal.rs +10 -6
  17. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/expr.rs +12 -8
  18. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/insert.rs +383 -298
  19. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/planner.rs +21 -1
  20. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/schema.rs +49 -24
  21. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/types.rs +0 -20
  22. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/util.rs +0 -6
  23. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/mod.rs +11 -0
  24. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/sorter.rs +19 -14
  25. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/Cargo.toml +0 -0
  26. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/build.rs +0 -0
  27. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/example.py +0 -0
  28. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/requirements-dev.txt +0 -0
  29. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/requirements.txt +0 -0
  30. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/src/errors.rs +0 -0
  31. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/src/lib.rs +0 -0
  32. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/tests/__init__.py +0 -0
  33. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/tests/test_database.py +0 -0
  34. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/turso/__init__.py +0 -0
  35. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/turso/py.typed +0 -0
  36. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/Cargo.toml +0 -0
  37. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/assert.rs +0 -0
  38. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/benchmark.rs +0 -0
  39. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/json_benchmark.rs +0 -0
  40. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/mvcc_benchmark.rs +0 -0
  41. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/tpc_h_benchmark.rs +0 -0
  42. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/build.rs +0 -0
  43. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/error.rs +0 -0
  44. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/ext/dynamic.rs +0 -0
  45. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/ext/mod.rs +0 -0
  46. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/ext/vtab_xconnect.rs +0 -0
  47. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/fast_lock.rs +0 -0
  48. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/function.rs +0 -0
  49. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/datetime.rs +0 -0
  50. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/mod.rs +0 -0
  51. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/printf.rs +0 -0
  52. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/strftime.rs +0 -0
  53. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/dbsp.rs +0 -0
  54. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/expr_compiler.rs +0 -0
  55. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/filter_operator.rs +0 -0
  56. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/input_operator.rs +0 -0
  57. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/merge_operator.rs +0 -0
  58. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/mod.rs +0 -0
  59. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/persistence.rs +0 -0
  60. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/project_operator.rs +0 -0
  61. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/info.rs +0 -0
  62. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/clock.rs +0 -0
  63. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/common.rs +0 -0
  64. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/generic.rs +0 -0
  65. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/io_uring.rs +0 -0
  66. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/memory.rs +0 -0
  67. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/unix.rs +0 -0
  68. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/vfs.rs +0 -0
  69. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/windows.rs +0 -0
  70. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/cache.rs +0 -0
  71. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/error.rs +0 -0
  72. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/jsonb.rs +0 -0
  73. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/mod.rs +0 -0
  74. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/ops.rs +0 -0
  75. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/path.rs +0 -0
  76. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/vtab.rs +0 -0
  77. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/clock.rs +0 -0
  78. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/cursor.rs +0 -0
  79. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/database/mod.rs +0 -0
  80. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/database/tests.rs +0 -0
  81. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/mod.rs +0 -0
  82. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/persistent_storage/logical_log.rs +0 -0
  83. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/persistent_storage/mod.rs +0 -0
  84. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/numeric/mod.rs +0 -0
  85. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/numeric/nonnan.rs +0 -0
  86. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/parameters.rs +0 -0
  87. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/pragma.rs +0 -0
  88. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/pseudo.rs +0 -0
  89. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/series.rs +0 -0
  90. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/state_machine.rs +0 -0
  91. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/buffer_pool.rs +0 -0
  92. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/checksum.rs +0 -0
  93. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/database.rs +0 -0
  94. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/encryption.rs +0 -0
  95. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/mod.rs +0 -0
  96. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/page_cache.rs +0 -0
  97. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/slot_bitmap.rs +0 -0
  98. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/sqlite3_ondisk.rs +0 -0
  99. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/state_machines.rs +0 -0
  100. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/time/internal.rs +0 -0
  101. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/time/mod.rs +0 -0
  102. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/aggregation.rs +0 -0
  103. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/alter.rs +0 -0
  104. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/analyze.rs +0 -0
  105. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/attach.rs +0 -0
  106. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/collate.rs +0 -0
  107. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/compound_select.rs +0 -0
  108. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/delete.rs +0 -0
  109. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/display.rs +0 -0
  110. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/emitter.rs +0 -0
  111. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/fkeys.rs +0 -0
  112. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/group_by.rs +0 -0
  113. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/index.rs +0 -0
  114. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/integrity_check.rs +0 -0
  115. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/logical.rs +0 -0
  116. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/main_loop.rs +0 -0
  117. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/mod.rs +0 -0
  118. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/OPTIMIZER.md +0 -0
  119. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/access_method.rs +0 -0
  120. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/constraints.rs +0 -0
  121. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/cost.rs +0 -0
  122. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/join.rs +0 -0
  123. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/lift_common_subexpressions.rs +0 -0
  124. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/mod.rs +0 -0
  125. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/order.rs +0 -0
  126. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/order_by.rs +0 -0
  127. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/plan.rs +0 -0
  128. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/pragma.rs +0 -0
  129. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/result_row.rs +0 -0
  130. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/rollback.rs +0 -0
  131. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/select.rs +0 -0
  132. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/subquery.rs +0 -0
  133. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/transaction.rs +0 -0
  134. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/update.rs +0 -0
  135. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/upsert.rs +0 -0
  136. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/values.rs +0 -0
  137. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/view.rs +0 -0
  138. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/window.rs +0 -0
  139. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/uuid.rs +0 -0
  140. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/builder.rs +0 -0
  141. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/execute.rs +0 -0
  142. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/explain.rs +0 -0
  143. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/insn.rs +0 -0
  144. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/likeop.rs +0 -0
  145. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/metrics.rs +0 -0
  146. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/mod.rs +0 -0
  147. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/concat.rs +0 -0
  148. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/convert.rs +0 -0
  149. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/distance_cos.rs +0 -0
  150. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/distance_l2.rs +0 -0
  151. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/jaccard.rs +0 -0
  152. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/mod.rs +0 -0
  153. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/serialize.rs +0 -0
  154. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/slice.rs +0 -0
  155. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/text.rs +0 -0
  156. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/vector_types.rs +0 -0
  157. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vtab.rs +0 -0
  158. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/Cargo.toml +0 -0
  159. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/README.md +0 -0
  160. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/build.rs +0 -0
  161. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/functions.rs +0 -0
  162. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/lib.rs +0 -0
  163. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/types.rs +0 -0
  164. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/vfs_modules.rs +0 -0
  165. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/vtabs.rs +0 -0
  166. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/Cargo.toml +0 -0
  167. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/agg_derive.rs +0 -0
  168. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/match_ignore_ascii_case.rs +0 -0
  169. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/mod.rs +0 -0
  170. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/scalars.rs +0 -0
  171. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/vfs_derive.rs +0 -0
  172. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/vtab_derive.rs +0 -0
  173. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/lib.rs +0 -0
  174. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/Cargo.toml +0 -0
  175. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/README.md +0 -0
  176. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/benches/parser_benchmark.rs +0 -0
  177. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/ast/check.rs +0 -0
  178. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/ast/fmt.rs +0 -0
  179. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/ast.rs +0 -0
  180. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/error.rs +0 -0
  181. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/lexer.rs +0 -0
  182. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/lib.rs +0 -0
  183. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/parser.rs +0 -0
  184. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/token.rs +0 -0
  185. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/pyproject.toml +0 -0
  186. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/turso/__init__.py +0 -0
  187. {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/turso/py.typed +0 -0
@@ -821,7 +821,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
821
821
 
822
822
  [[package]]
823
823
  name = "core_tester"
824
- version = "0.3.0-pre.2"
824
+ version = "0.3.0-pre.3"
825
825
  dependencies = [
826
826
  "anyhow",
827
827
  "assert_cmd",
@@ -2539,7 +2539,7 @@ dependencies = [
2539
2539
 
2540
2540
  [[package]]
2541
2541
  name = "limbo_completion"
2542
- version = "0.3.0-pre.2"
2542
+ version = "0.3.0-pre.3"
2543
2543
  dependencies = [
2544
2544
  "mimalloc",
2545
2545
  "turso_ext",
@@ -2547,7 +2547,7 @@ dependencies = [
2547
2547
 
2548
2548
  [[package]]
2549
2549
  name = "limbo_crypto"
2550
- version = "0.3.0-pre.2"
2550
+ version = "0.3.0-pre.3"
2551
2551
  dependencies = [
2552
2552
  "blake3",
2553
2553
  "data-encoding",
@@ -2560,7 +2560,7 @@ dependencies = [
2560
2560
 
2561
2561
  [[package]]
2562
2562
  name = "limbo_csv"
2563
- version = "0.3.0-pre.2"
2563
+ version = "0.3.0-pre.3"
2564
2564
  dependencies = [
2565
2565
  "csv",
2566
2566
  "mimalloc",
@@ -2570,7 +2570,7 @@ dependencies = [
2570
2570
 
2571
2571
  [[package]]
2572
2572
  name = "limbo_fuzzy"
2573
- version = "0.3.0-pre.2"
2573
+ version = "0.3.0-pre.3"
2574
2574
  dependencies = [
2575
2575
  "mimalloc",
2576
2576
  "turso_ext",
@@ -2578,7 +2578,7 @@ dependencies = [
2578
2578
 
2579
2579
  [[package]]
2580
2580
  name = "limbo_ipaddr"
2581
- version = "0.3.0-pre.2"
2581
+ version = "0.3.0-pre.3"
2582
2582
  dependencies = [
2583
2583
  "ipnetwork",
2584
2584
  "mimalloc",
@@ -2587,7 +2587,7 @@ dependencies = [
2587
2587
 
2588
2588
  [[package]]
2589
2589
  name = "limbo_percentile"
2590
- version = "0.3.0-pre.2"
2590
+ version = "0.3.0-pre.3"
2591
2591
  dependencies = [
2592
2592
  "mimalloc",
2593
2593
  "turso_ext",
@@ -2595,7 +2595,7 @@ dependencies = [
2595
2595
 
2596
2596
  [[package]]
2597
2597
  name = "limbo_regexp"
2598
- version = "0.3.0-pre.2"
2598
+ version = "0.3.0-pre.3"
2599
2599
  dependencies = [
2600
2600
  "mimalloc",
2601
2601
  "regex",
@@ -2604,7 +2604,7 @@ dependencies = [
2604
2604
 
2605
2605
  [[package]]
2606
2606
  name = "limbo_sim"
2607
- version = "0.3.0-pre.2"
2607
+ version = "0.3.0-pre.3"
2608
2608
  dependencies = [
2609
2609
  "anyhow",
2610
2610
  "bitflags 2.9.4",
@@ -2640,7 +2640,7 @@ dependencies = [
2640
2640
 
2641
2641
  [[package]]
2642
2642
  name = "limbo_sqlite_test_ext"
2643
- version = "0.3.0-pre.2"
2643
+ version = "0.3.0-pre.3"
2644
2644
  dependencies = [
2645
2645
  "cc",
2646
2646
  ]
@@ -3456,7 +3456,7 @@ dependencies = [
3456
3456
 
3457
3457
  [[package]]
3458
3458
  name = "py-turso"
3459
- version = "0.3.0-pre.2"
3459
+ version = "0.3.0-pre.3"
3460
3460
  dependencies = [
3461
3461
  "anyhow",
3462
3462
  "pyo3",
@@ -4193,7 +4193,7 @@ checksum = "d372029cb5195f9ab4e4b9aef550787dce78b124fcaee8d82519925defcd6f0d"
4193
4193
 
4194
4194
  [[package]]
4195
4195
  name = "sql_generation"
4196
- version = "0.3.0-pre.2"
4196
+ version = "0.3.0-pre.3"
4197
4197
  dependencies = [
4198
4198
  "anarchist-readable-name-generator-lib 0.2.0",
4199
4199
  "anyhow",
@@ -4821,19 +4821,21 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
4821
4821
 
4822
4822
  [[package]]
4823
4823
  name = "turso"
4824
- version = "0.3.0-pre.2"
4824
+ version = "0.3.0-pre.3"
4825
4825
  dependencies = [
4826
4826
  "rand 0.9.2",
4827
4827
  "rand_chacha 0.9.0",
4828
4828
  "tempfile",
4829
4829
  "thiserror 2.0.16",
4830
4830
  "tokio",
4831
+ "tracing",
4832
+ "tracing-subscriber",
4831
4833
  "turso_core",
4832
4834
  ]
4833
4835
 
4834
4836
  [[package]]
4835
4837
  name = "turso-java"
4836
- version = "0.3.0-pre.2"
4838
+ version = "0.3.0-pre.3"
4837
4839
  dependencies = [
4838
4840
  "jni",
4839
4841
  "thiserror 2.0.16",
@@ -4842,7 +4844,7 @@ dependencies = [
4842
4844
 
4843
4845
  [[package]]
4844
4846
  name = "turso_cli"
4845
- version = "0.3.0-pre.2"
4847
+ version = "0.3.0-pre.3"
4846
4848
  dependencies = [
4847
4849
  "anyhow",
4848
4850
  "cfg-if",
@@ -4878,7 +4880,7 @@ dependencies = [
4878
4880
 
4879
4881
  [[package]]
4880
4882
  name = "turso_core"
4881
- version = "0.3.0-pre.2"
4883
+ version = "0.3.0-pre.3"
4882
4884
  dependencies = [
4883
4885
  "aegis",
4884
4886
  "aes",
@@ -4938,7 +4940,7 @@ dependencies = [
4938
4940
 
4939
4941
  [[package]]
4940
4942
  name = "turso_dart"
4941
- version = "0.3.0-pre.2"
4943
+ version = "0.3.0-pre.3"
4942
4944
  dependencies = [
4943
4945
  "flutter_rust_bridge",
4944
4946
  "turso_core",
@@ -4946,7 +4948,7 @@ dependencies = [
4946
4948
 
4947
4949
  [[package]]
4948
4950
  name = "turso_ext"
4949
- version = "0.3.0-pre.2"
4951
+ version = "0.3.0-pre.3"
4950
4952
  dependencies = [
4951
4953
  "chrono",
4952
4954
  "getrandom 0.3.2",
@@ -4955,7 +4957,7 @@ dependencies = [
4955
4957
 
4956
4958
  [[package]]
4957
4959
  name = "turso_ext_tests"
4958
- version = "0.3.0-pre.2"
4960
+ version = "0.3.0-pre.3"
4959
4961
  dependencies = [
4960
4962
  "env_logger 0.11.7",
4961
4963
  "lazy_static",
@@ -4966,7 +4968,7 @@ dependencies = [
4966
4968
 
4967
4969
  [[package]]
4968
4970
  name = "turso_macros"
4969
- version = "0.3.0-pre.2"
4971
+ version = "0.3.0-pre.3"
4970
4972
  dependencies = [
4971
4973
  "proc-macro2",
4972
4974
  "quote",
@@ -4975,7 +4977,7 @@ dependencies = [
4975
4977
 
4976
4978
  [[package]]
4977
4979
  name = "turso_node"
4978
- version = "0.3.0-pre.2"
4980
+ version = "0.3.0-pre.3"
4979
4981
  dependencies = [
4980
4982
  "chrono",
4981
4983
  "napi",
@@ -4988,7 +4990,7 @@ dependencies = [
4988
4990
 
4989
4991
  [[package]]
4990
4992
  name = "turso_parser"
4991
- version = "0.3.0-pre.2"
4993
+ version = "0.3.0-pre.3"
4992
4994
  dependencies = [
4993
4995
  "bitflags 2.9.4",
4994
4996
  "criterion",
@@ -5004,7 +5006,7 @@ dependencies = [
5004
5006
 
5005
5007
  [[package]]
5006
5008
  name = "turso_sqlite3"
5007
- version = "0.3.0-pre.2"
5009
+ version = "0.3.0-pre.3"
5008
5010
  dependencies = [
5009
5011
  "env_logger 0.11.7",
5010
5012
  "libc",
@@ -5017,7 +5019,7 @@ dependencies = [
5017
5019
 
5018
5020
  [[package]]
5019
5021
  name = "turso_stress"
5020
- version = "0.3.0-pre.2"
5022
+ version = "0.3.0-pre.3"
5021
5023
  dependencies = [
5022
5024
  "anarchist-readable-name-generator-lib 0.1.2",
5023
5025
  "antithesis_sdk",
@@ -5034,7 +5036,7 @@ dependencies = [
5034
5036
 
5035
5037
  [[package]]
5036
5038
  name = "turso_sync_engine"
5037
- version = "0.3.0-pre.2"
5039
+ version = "0.3.0-pre.3"
5038
5040
  dependencies = [
5039
5041
  "base64 0.22.1",
5040
5042
  "bytes",
@@ -5061,7 +5063,7 @@ dependencies = [
5061
5063
 
5062
5064
  [[package]]
5063
5065
  name = "turso_sync_js"
5064
- version = "0.3.0-pre.2"
5066
+ version = "0.3.0-pre.3"
5065
5067
  dependencies = [
5066
5068
  "genawaiter",
5067
5069
  "napi",
@@ -5076,7 +5078,7 @@ dependencies = [
5076
5078
 
5077
5079
  [[package]]
5078
5080
  name = "turso_whopper"
5079
- version = "0.3.0-pre.2"
5081
+ version = "0.3.0-pre.3"
5080
5082
  dependencies = [
5081
5083
  "anyhow",
5082
5084
  "clap",
@@ -8,29 +8,29 @@ exclude = [
8
8
  ]
9
9
 
10
10
  [workspace.package]
11
- version = "0.3.0-pre.2"
11
+ version = "0.3.0-pre.3"
12
12
  authors = ["the Limbo authors"]
13
13
  edition = "2021"
14
14
  license = "MIT"
15
15
  repository = "https://github.com/tursodatabase/turso"
16
16
 
17
17
  [workspace.dependencies]
18
- turso = { path = "bindings/rust", version = "0.3.0-pre.2" }
19
- turso_node = { path = "bindings/javascript", version = "0.3.0-pre.2" }
20
- limbo_completion = { path = "extensions/completion", version = "0.3.0-pre.2" }
21
- turso_core = { path = "core", version = "0.3.0-pre.2" }
22
- turso_sync_engine = { path = "sync/engine", version = "0.3.0-pre.2" }
23
- limbo_crypto = { path = "extensions/crypto", version = "0.3.0-pre.2" }
24
- limbo_csv = { path = "extensions/csv", version = "0.3.0-pre.2" }
25
- turso_ext = { path = "extensions/core", version = "0.3.0-pre.2" }
26
- turso_ext_tests = { path = "extensions/tests", version = "0.3.0-pre.2" }
27
- limbo_ipaddr = { path = "extensions/ipaddr", version = "0.3.0-pre.2" }
28
- turso_macros = { path = "macros", version = "0.3.0-pre.2" }
29
- limbo_percentile = { path = "extensions/percentile", version = "0.3.0-pre.2" }
30
- limbo_regexp = { path = "extensions/regexp", version = "0.3.0-pre.2" }
31
- limbo_uuid = { path = "extensions/uuid", version = "0.3.0-pre.2" }
32
- turso_parser = { path = "parser", version = "0.3.0-pre.2" }
33
- limbo_fuzzy = { path = "extensions/fuzzy", version = "0.3.0-pre.2" }
18
+ turso = { path = "bindings/rust", version = "0.3.0-pre.3" }
19
+ turso_node = { path = "bindings/javascript", version = "0.3.0-pre.3" }
20
+ limbo_completion = { path = "extensions/completion", version = "0.3.0-pre.3" }
21
+ turso_core = { path = "core", version = "0.3.0-pre.3" }
22
+ turso_sync_engine = { path = "sync/engine", version = "0.3.0-pre.3" }
23
+ limbo_crypto = { path = "extensions/crypto", version = "0.3.0-pre.3" }
24
+ limbo_csv = { path = "extensions/csv", version = "0.3.0-pre.3" }
25
+ turso_ext = { path = "extensions/core", version = "0.3.0-pre.3" }
26
+ turso_ext_tests = { path = "extensions/tests", version = "0.3.0-pre.3" }
27
+ limbo_ipaddr = { path = "extensions/ipaddr", version = "0.3.0-pre.3" }
28
+ turso_macros = { path = "macros", version = "0.3.0-pre.3" }
29
+ limbo_percentile = { path = "extensions/percentile", version = "0.3.0-pre.3" }
30
+ limbo_regexp = { path = "extensions/regexp", version = "0.3.0-pre.3" }
31
+ limbo_uuid = { path = "extensions/uuid", version = "0.3.0-pre.3" }
32
+ turso_parser = { path = "parser", version = "0.3.0-pre.3" }
33
+ limbo_fuzzy = { path = "extensions/fuzzy", version = "0.3.0-pre.3" }
34
34
  sql_generation = { path = "sql_generation" }
35
35
  strum = { version = "0.26", features = ["derive"] }
36
36
  strum_macros = "0.26"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyturso
3
- Version: 0.3.0rc2
3
+ Version: 0.3.0rc3
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Programming Language :: Python
6
6
  Classifier: Programming Language :: Python :: 3
@@ -7,6 +7,7 @@ use crate::incremental::operator::{
7
7
  generate_storage_id, ComputationTracker, DbspStateCursors, EvalState, IncrementalOperator,
8
8
  };
9
9
  use crate::incremental::persistence::{ReadRecord, WriteRow};
10
+ use crate::storage::btree::CursorTrait;
10
11
  use crate::types::{IOResult, ImmutableRecord, SeekKey, SeekOp, SeekResult, ValueRef};
11
12
  use crate::{return_and_restore_if_io, return_if_io, LimboError, Result, Value};
12
13
  use std::collections::{BTreeMap, HashMap, HashSet};
@@ -12,7 +12,7 @@ use crate::incremental::operator::{
12
12
  IncrementalOperator, InputOperator, JoinOperator, JoinType, ProjectOperator,
13
13
  };
14
14
  use crate::schema::Type;
15
- use crate::storage::btree::{BTreeCursor, BTreeKey};
15
+ use crate::storage::btree::{BTreeCursor, BTreeKey, CursorTrait};
16
16
  // Note: logical module must be made pub(crate) in translate/mod.rs
17
17
  use crate::translate::logical::{
18
18
  BinaryOperator, Column, ColumnInfo, JoinType as LogicalJoinType, LogicalExpr, LogicalPlan,
@@ -329,6 +329,11 @@ pub struct DbspNode {
329
329
  pub executable: Box<dyn IncrementalOperator>,
330
330
  }
331
331
 
332
+ // SAFETY: This needs to be audited for thread safety.
333
+ // See: https://github.com/tursodatabase/turso/issues/1552
334
+ unsafe impl Send for DbspNode {}
335
+ unsafe impl Sync for DbspNode {}
336
+
332
337
  impl std::fmt::Debug for DbspNode {
333
338
  fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
334
339
  f.debug_struct("DbspNode")
@@ -395,6 +400,11 @@ pub struct DbspCircuit {
395
400
  pub(super) internal_state_index_root: i64,
396
401
  }
397
402
 
403
+ // SAFETY: This needs to be audited for thread safety.
404
+ // See: https://github.com/tursodatabase/turso/issues/1552
405
+ unsafe impl Send for DbspCircuit {}
406
+ unsafe impl Sync for DbspCircuit {}
407
+
398
408
  impl DbspCircuit {
399
409
  /// Create a new empty circuit with initial empty schema
400
410
  /// The actual output schema will be set when the root node is established
@@ -5,7 +5,7 @@ use crate::{
5
5
  view::{IncrementalView, ViewTransactionState},
6
6
  },
7
7
  return_if_io,
8
- storage::btree::BTreeCursor,
8
+ storage::btree::{BTreeCursor, CursorTrait},
9
9
  types::{IOResult, SeekKey, SeekOp, SeekResult, Value},
10
10
  LimboError, Pager, Result,
11
11
  };
@@ -6,6 +6,7 @@ use crate::incremental::operator::{
6
6
  generate_storage_id, ComputationTracker, DbspStateCursors, EvalState, IncrementalOperator,
7
7
  };
8
8
  use crate::incremental::persistence::WriteRow;
9
+ use crate::storage::btree::CursorTrait;
9
10
  use crate::types::{IOResult, ImmutableRecord, SeekKey, SeekOp, SeekResult};
10
11
  use crate::{return_and_restore_if_io, return_if_io, Result, Value};
11
12
  use std::sync::{Arc, Mutex};
@@ -218,7 +218,9 @@ pub enum QueryOperator {
218
218
 
219
219
  /// Operator DAG (Directed Acyclic Graph)
220
220
  /// Base trait for incremental operators
221
- pub trait IncrementalOperator: Debug {
221
+ // SAFETY: This needs to be audited for thread safety.
222
+ // See: https://github.com/tursodatabase/turso/issues/1552
223
+ pub trait IncrementalOperator: Debug + Send {
222
224
  /// Evaluate the operator with a state, without modifying internal state
223
225
  /// This is used during query execution to compute results
224
226
  /// May need to read from storage to get current state (e.g., for aggregates)
@@ -40,6 +40,11 @@ pub enum PopulateState {
40
40
  Done,
41
41
  }
42
42
 
43
+ // SAFETY: This needs to be audited for thread safety.
44
+ // See: https://github.com/tursodatabase/turso/issues/1552
45
+ unsafe impl Send for PopulateState {}
46
+ unsafe impl Sync for PopulateState {}
47
+
43
48
  /// State machine for merge_delta to handle I/O operations
44
49
  impl fmt::Debug for PopulateState {
45
50
  fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
@@ -130,6 +135,11 @@ pub struct AllViewsTxState {
130
135
  states: Rc<RefCell<HashMap<String, Arc<ViewTransactionState>>>>,
131
136
  }
132
137
 
138
+ // SAFETY: This needs to be audited for thread safety.
139
+ // See: https://github.com/tursodatabase/turso/issues/1552
140
+ unsafe impl Send for AllViewsTxState {}
141
+ unsafe impl Sync for AllViewsTxState {}
142
+
133
143
  impl AllViewsTxState {
134
144
  /// Create a new container for view transaction states
135
145
  pub fn new() -> Self {
@@ -210,6 +220,11 @@ pub struct IncrementalView {
210
220
  root_page: i64,
211
221
  }
212
222
 
223
+ // SAFETY: This needs to be audited for thread safety.
224
+ // See: https://github.com/tursodatabase/turso/issues/1552
225
+ unsafe impl Send for IncrementalView {}
226
+ unsafe impl Sync for IncrementalView {}
227
+
213
228
  impl IncrementalView {
214
229
  /// Try to compile the SELECT statement into a DBSP circuit
215
230
  fn try_compile_circuit(