dirsql 0.4.27__tar.gz → 0.4.29__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.
Files changed (199) hide show
  1. {dirsql-0.4.27 → dirsql-0.4.29}/Cargo.lock +382 -7
  2. {dirsql-0.4.27 → dirsql-0.4.29}/PKG-INFO +1 -1
  3. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/define-tables.md +44 -0
  4. {dirsql-0.4.27/packages/rust → dirsql-0.4.29}/docs/howto/load-extension.md +5 -3
  5. {dirsql-0.4.27/packages/rust → dirsql-0.4.29}/docs/howto/search-by-meaning.md +6 -4
  6. {dirsql-0.4.27 → dirsql-0.4.29}/docs/reference/cli.md +188 -2
  7. {dirsql-0.4.27/packages/rust → dirsql-0.4.29}/docs/reference/config.md +85 -7
  8. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/Cargo.toml +1 -1
  9. dirsql-0.4.29/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +3 -0
  10. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/define-tables.md +44 -0
  11. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/load-extension.md +5 -3
  12. {dirsql-0.4.27 → dirsql-0.4.29/packages/python}/docs/howto/search-by-meaning.md +6 -4
  13. {dirsql-0.4.27/packages/rust → dirsql-0.4.29/packages/python}/docs/reference/cli.md +188 -2
  14. {dirsql-0.4.27 → dirsql-0.4.29/packages/python}/docs/reference/config.md +85 -7
  15. dirsql-0.4.29/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +7 -0
  16. dirsql-0.4.29/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +7 -0
  17. dirsql-0.4.29/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +7 -0
  18. dirsql-0.4.29/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +7 -0
  19. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/Cargo.toml +5 -1
  20. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/define-tables.md +44 -0
  21. {dirsql-0.4.27 → dirsql-0.4.29/packages/rust}/docs/howto/load-extension.md +5 -3
  22. {dirsql-0.4.27/packages/python → dirsql-0.4.29/packages/rust}/docs/howto/search-by-meaning.md +6 -4
  23. {dirsql-0.4.27/packages/python → dirsql-0.4.29/packages/rust}/docs/reference/cli.md +188 -2
  24. {dirsql-0.4.27/packages/python → dirsql-0.4.29/packages/rust}/docs/reference/config.md +85 -7
  25. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/cli/mod.rs +4 -0
  26. dirsql-0.4.29/packages/rust/src/cli/repl.rs +1142 -0
  27. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/cli/run.rs +186 -20
  28. dirsql-0.4.29/packages/rust/src/cli/table.rs +392 -0
  29. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/db.rs +182 -88
  30. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/lib.rs +178 -28
  31. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/persist.rs +46 -8
  32. {dirsql-0.4.27 → dirsql-0.4.29}/pyproject.toml +5 -0
  33. {dirsql-0.4.27 → dirsql-0.4.29}/Cargo.toml +0 -0
  34. {dirsql-0.4.27 → dirsql-0.4.29}/README.md +0 -0
  35. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/__init__.py +0 -0
  36. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/_async.py +0 -0
  37. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/_dirsql.pyi +0 -0
  38. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/__init__.py +0 -0
  39. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/discover_plugins/__init__.py +0 -0
  40. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
  41. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
  42. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
  43. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/discover_plugins/user_passed_config.py +0 -0
  44. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
  45. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/main.py +0 -0
  46. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/cli/resolve_config_extensions.py +0 -0
  47. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/py.typed +0 -0
  48. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/resolve_config_extensions.py +0 -0
  49. {dirsql-0.4.27 → dirsql-0.4.29}/dirsql/resolve_extension.py +0 -0
  50. {dirsql-0.4.27 → dirsql-0.4.29}/docs/.claude/CLAUDE.md +0 -0
  51. {dirsql-0.4.27 → dirsql-0.4.29}/docs/.vitepress/config.ts +0 -0
  52. {dirsql-0.4.27 → dirsql-0.4.29}/docs/.vitepress/theme/index.ts +0 -0
  53. {dirsql-0.4.27 → dirsql-0.4.29}/docs/.vitepress/theme/lang.ts +0 -0
  54. {dirsql-0.4.27 → dirsql-0.4.29}/docs/AGENTS.md +0 -0
  55. {dirsql-0.4.27 → dirsql-0.4.29}/docs/explanation.md +0 -0
  56. {dirsql-0.4.27 → dirsql-0.4.29}/docs/getting-started.md +0 -0
  57. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/columns-from-paths.md +0 -0
  58. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/embed.md +0 -0
  59. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/extract-from-contents.md +0 -0
  60. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/parse-files-into-columns.md +0 -0
  61. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/persist.md +0 -0
  62. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/query-json.md +0 -0
  63. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/query-without-config.md +0 -0
  64. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/react-to-changes.md +0 -0
  65. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/skip-files.md +0 -0
  66. {dirsql-0.4.27 → dirsql-0.4.29}/docs/howto/write-a-plugin.md +0 -0
  67. {dirsql-0.4.27 → dirsql-0.4.29}/docs/index.md +0 -0
  68. {dirsql-0.4.27 → dirsql-0.4.29}/docs/package.json +0 -0
  69. {dirsql-0.4.27 → dirsql-0.4.29}/docs/plugins.md +0 -0
  70. {dirsql-0.4.27 → dirsql-0.4.29}/docs/pnpm-lock.yaml +0 -0
  71. {dirsql-0.4.27 → dirsql-0.4.29}/docs/pnpm-workspace.yaml +0 -0
  72. {dirsql-0.4.27 → dirsql-0.4.29}/docs/reference/columns.md +0 -0
  73. {dirsql-0.4.27 → dirsql-0.4.29}/docs/reference/hooks.md +0 -0
  74. {dirsql-0.4.27 → dirsql-0.4.29}/docs/reference/http-api.md +0 -0
  75. {dirsql-0.4.27 → dirsql-0.4.29}/docs/reference/path-tables.md +0 -0
  76. {dirsql-0.4.27 → dirsql-0.4.29}/docs/reference/sdk.md +0 -0
  77. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/CHANGELOG.md +0 -0
  78. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/MIGRATIONS.md +0 -0
  79. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/README.md +0 -0
  80. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  81. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
  82. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  83. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
  84. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  85. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
  86. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
  87. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
  88. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  89. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
  90. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
  91. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
  92. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
  93. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
  94. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
  95. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
  96. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
  97. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
  98. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/changelog.d/README.md +0 -0
  99. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/conftest.py +0 -0
  100. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/.claude/CLAUDE.md +0 -0
  101. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/.vitepress/config.ts +0 -0
  102. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/.vitepress/theme/index.ts +0 -0
  103. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
  104. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/AGENTS.md +0 -0
  105. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/explanation.md +0 -0
  106. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/getting-started.md +0 -0
  107. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/columns-from-paths.md +0 -0
  108. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/embed.md +0 -0
  109. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/extract-from-contents.md +0 -0
  110. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
  111. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/persist.md +0 -0
  112. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/query-json.md +0 -0
  113. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/query-without-config.md +0 -0
  114. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/react-to-changes.md +0 -0
  115. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/skip-files.md +0 -0
  116. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/howto/write-a-plugin.md +0 -0
  117. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/index.md +0 -0
  118. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/package.json +0 -0
  119. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/plugins.md +0 -0
  120. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/pnpm-lock.yaml +0 -0
  121. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/pnpm-workspace.yaml +0 -0
  122. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/reference/columns.md +0 -0
  123. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/reference/hooks.md +0 -0
  124. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/reference/http-api.md +0 -0
  125. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/reference/path-tables.md +0 -0
  126. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/docs/reference/sdk.md +0 -0
  127. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
  128. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
  129. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
  130. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
  131. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
  132. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
  133. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  134. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  135. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  136. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
  137. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
  138. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
  139. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  140. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
  141. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
  142. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
  143. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/migrations.d/README.md +0 -0
  144. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/src/lib.rs +0 -0
  145. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/testing-conventions.toml +0 -0
  146. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/__init__.py +0 -0
  147. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/conftest.py +0 -0
  148. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/e2e/__init__.py +0 -0
  149. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
  150. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
  151. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/integration/__init__.py +0 -0
  152. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/integration/binding/__init__.py +0 -0
  153. {dirsql-0.4.27 → dirsql-0.4.29}/packages/python/tests/integration/hermetic/__init__.py +0 -0
  154. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/CHANGELOG.md +0 -0
  155. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/MIGRATIONS.md +0 -0
  156. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/README.md +0 -0
  157. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/benches/db_bench.rs +0 -0
  158. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/benches/differ_bench.rs +0 -0
  159. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/benches/matcher_bench.rs +0 -0
  160. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/benches/scanner_bench.rs +0 -0
  161. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/explanation.md +0 -0
  162. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/getting-started.md +0 -0
  163. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/columns-from-paths.md +0 -0
  164. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/embed.md +0 -0
  165. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/extract-from-contents.md +0 -0
  166. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
  167. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/persist.md +0 -0
  168. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/query-json.md +0 -0
  169. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/query-without-config.md +0 -0
  170. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/react-to-changes.md +0 -0
  171. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/skip-files.md +0 -0
  172. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/howto/write-a-plugin.md +0 -0
  173. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/index.md +0 -0
  174. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/plugins.md +0 -0
  175. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/reference/columns.md +0 -0
  176. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/reference/hooks.md +0 -0
  177. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/reference/http-api.md +0 -0
  178. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/reference/path-tables.md +0 -0
  179. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/docs/reference/sdk.md +0 -0
  180. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/bin/dirsql.rs +0 -0
  181. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/cli/execute.rs +0 -0
  182. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/cli/init.rs +0 -0
  183. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/cli/router.rs +0 -0
  184. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/cli/serialize.rs +0 -0
  185. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/cli/server.rs +0 -0
  186. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/command.rs +0 -0
  187. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/config.rs +0 -0
  188. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/default_config.toml +0 -0
  189. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/differ.rs +0 -0
  190. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/functions.rs +0 -0
  191. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/infer.rs +0 -0
  192. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/matcher.rs +0 -0
  193. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/parsed_cache.rs +0 -0
  194. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/parsed_vtab.rs +0 -0
  195. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/path_table.rs +0 -0
  196. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/scanner.rs +0 -0
  197. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/sql_literal.rs +0 -0
  198. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/vtab.rs +0 -0
  199. {dirsql-0.4.27 → dirsql-0.4.29}/packages/rust/src/watcher.rs +0 -0
@@ -11,6 +11,15 @@ dependencies = [
11
11
  "memchr",
12
12
  ]
13
13
 
14
+ [[package]]
15
+ name = "android_system_properties"
16
+ version = "0.1.6"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc"
19
+ dependencies = [
20
+ "libc",
21
+ ]
22
+
14
23
  [[package]]
15
24
  name = "anes"
16
25
  version = "0.1.6"
@@ -187,6 +196,9 @@ name = "bitflags"
187
196
  version = "2.11.1"
188
197
  source = "registry+https://github.com/rust-lang/crates.io-index"
189
198
  checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
199
+ dependencies = [
200
+ "serde_core",
201
+ ]
190
202
 
191
203
  [[package]]
192
204
  name = "blake3"
@@ -253,6 +265,18 @@ version = "0.2.1"
253
265
  source = "registry+https://github.com/rust-lang/crates.io-index"
254
266
  checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
255
267
 
268
+ [[package]]
269
+ name = "chrono"
270
+ version = "0.4.45"
271
+ source = "registry+https://github.com/rust-lang/crates.io-index"
272
+ checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
273
+ dependencies = [
274
+ "iana-time-zone",
275
+ "num-traits",
276
+ "serde",
277
+ "windows-link",
278
+ ]
279
+
256
280
  [[package]]
257
281
  name = "ciborium"
258
282
  version = "0.2.2"
@@ -332,6 +356,15 @@ version = "0.4.2"
332
356
  source = "registry+https://github.com/rust-lang/crates.io-index"
333
357
  checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
334
358
 
359
+ [[package]]
360
+ name = "convert_case"
361
+ version = "0.10.0"
362
+ source = "registry+https://github.com/rust-lang/crates.io-index"
363
+ checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9"
364
+ dependencies = [
365
+ "unicode-segmentation",
366
+ ]
367
+
335
368
  [[package]]
336
369
  name = "convert_case"
337
370
  version = "0.11.0"
@@ -378,7 +411,7 @@ dependencies = [
378
411
  "clap",
379
412
  "criterion-plot",
380
413
  "is-terminal",
381
- "itertools",
414
+ "itertools 0.10.5",
382
415
  "num-traits",
383
416
  "once_cell",
384
417
  "oorandom",
@@ -399,7 +432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
399
432
  checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
400
433
  dependencies = [
401
434
  "cast",
402
- "itertools",
435
+ "itertools 0.10.5",
403
436
  ]
404
437
 
405
438
  [[package]]
@@ -427,6 +460,34 @@ version = "0.8.21"
427
460
  source = "registry+https://github.com/rust-lang/crates.io-index"
428
461
  checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
429
462
 
463
+ [[package]]
464
+ name = "crossterm"
465
+ version = "0.29.0"
466
+ source = "registry+https://github.com/rust-lang/crates.io-index"
467
+ checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
468
+ dependencies = [
469
+ "bitflags 2.11.1",
470
+ "crossterm_winapi",
471
+ "derive_more",
472
+ "document-features",
473
+ "mio",
474
+ "parking_lot",
475
+ "rustix",
476
+ "serde",
477
+ "signal-hook",
478
+ "signal-hook-mio",
479
+ "winapi",
480
+ ]
481
+
482
+ [[package]]
483
+ name = "crossterm_winapi"
484
+ version = "0.9.1"
485
+ source = "registry+https://github.com/rust-lang/crates.io-index"
486
+ checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
487
+ dependencies = [
488
+ "winapi",
489
+ ]
490
+
430
491
  [[package]]
431
492
  name = "crunchy"
432
493
  version = "0.2.4"
@@ -449,6 +510,28 @@ version = "0.0.12"
449
510
  source = "registry+https://github.com/rust-lang/crates.io-index"
450
511
  checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db"
451
512
 
513
+ [[package]]
514
+ name = "derive_more"
515
+ version = "2.1.1"
516
+ source = "registry+https://github.com/rust-lang/crates.io-index"
517
+ checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
518
+ dependencies = [
519
+ "derive_more-impl",
520
+ ]
521
+
522
+ [[package]]
523
+ name = "derive_more-impl"
524
+ version = "2.1.1"
525
+ source = "registry+https://github.com/rust-lang/crates.io-index"
526
+ checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
527
+ dependencies = [
528
+ "convert_case 0.10.0",
529
+ "proc-macro2",
530
+ "quote",
531
+ "rustc_version",
532
+ "syn",
533
+ ]
534
+
452
535
  [[package]]
453
536
  name = "difflib"
454
537
  version = "0.4.0"
@@ -457,7 +540,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
457
540
 
458
541
  [[package]]
459
542
  name = "dirsql"
460
- version = "0.2.7"
543
+ version = "0.4.29"
461
544
  dependencies = [
462
545
  "assert_cmd",
463
546
  "axum",
@@ -474,6 +557,7 @@ dependencies = [
474
557
  "libc",
475
558
  "notify",
476
559
  "predicates",
560
+ "reedline",
477
561
  "reqwest",
478
562
  "rusqlite",
479
563
  "serde",
@@ -499,7 +583,7 @@ dependencies = [
499
583
 
500
584
  [[package]]
501
585
  name = "dirsql-py-ext"
502
- version = "0.4.27"
586
+ version = "0.4.29"
503
587
  dependencies = [
504
588
  "dirsql",
505
589
  "pyo3",
@@ -516,6 +600,15 @@ dependencies = [
516
600
  "syn",
517
601
  ]
518
602
 
603
+ [[package]]
604
+ name = "document-features"
605
+ version = "0.2.12"
606
+ source = "registry+https://github.com/rust-lang/crates.io-index"
607
+ checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
608
+ dependencies = [
609
+ "litrs",
610
+ ]
611
+
519
612
  [[package]]
520
613
  name = "dtor"
521
614
  version = "0.7.0"
@@ -587,6 +680,17 @@ version = "2.4.1"
587
680
  source = "registry+https://github.com/rust-lang/crates.io-index"
588
681
  checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
589
682
 
683
+ [[package]]
684
+ name = "fd-lock"
685
+ version = "4.0.4"
686
+ source = "registry+https://github.com/rust-lang/crates.io-index"
687
+ checksum = "0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78"
688
+ dependencies = [
689
+ "cfg-if",
690
+ "rustix",
691
+ "windows-sys 0.52.0",
692
+ ]
693
+
590
694
  [[package]]
591
695
  name = "filetime"
592
696
  version = "0.2.27"
@@ -1029,6 +1133,30 @@ dependencies = [
1029
1133
  "tracing",
1030
1134
  ]
1031
1135
 
1136
+ [[package]]
1137
+ name = "iana-time-zone"
1138
+ version = "0.1.65"
1139
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1140
+ checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
1141
+ dependencies = [
1142
+ "android_system_properties",
1143
+ "core-foundation-sys",
1144
+ "iana-time-zone-haiku",
1145
+ "js-sys",
1146
+ "log",
1147
+ "wasm-bindgen",
1148
+ "windows-core",
1149
+ ]
1150
+
1151
+ [[package]]
1152
+ name = "iana-time-zone-haiku"
1153
+ version = "0.1.2"
1154
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1155
+ checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
1156
+ dependencies = [
1157
+ "cc",
1158
+ ]
1159
+
1032
1160
  [[package]]
1033
1161
  name = "icu_collections"
1034
1162
  version = "2.2.0"
@@ -1237,6 +1365,15 @@ dependencies = [
1237
1365
  "either",
1238
1366
  ]
1239
1367
 
1368
+ [[package]]
1369
+ name = "itertools"
1370
+ version = "0.13.0"
1371
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1372
+ checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
1373
+ dependencies = [
1374
+ "either",
1375
+ ]
1376
+
1240
1377
  [[package]]
1241
1378
  name = "itoa"
1242
1379
  version = "1.0.18"
@@ -1306,7 +1443,7 @@ dependencies = [
1306
1443
  "bitflags 2.11.1",
1307
1444
  "libc",
1308
1445
  "plain",
1309
- "redox_syscall",
1446
+ "redox_syscall 0.7.4",
1310
1447
  ]
1311
1448
 
1312
1449
  [[package]]
@@ -1332,6 +1469,21 @@ version = "0.8.2"
1332
1469
  source = "registry+https://github.com/rust-lang/crates.io-index"
1333
1470
  checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
1334
1471
 
1472
+ [[package]]
1473
+ name = "litrs"
1474
+ version = "1.0.0"
1475
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1476
+ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
1477
+
1478
+ [[package]]
1479
+ name = "lock_api"
1480
+ version = "0.4.14"
1481
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1482
+ checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
1483
+ dependencies = [
1484
+ "scopeguard",
1485
+ ]
1486
+
1335
1487
  [[package]]
1336
1488
  name = "log"
1337
1489
  version = "0.4.29"
@@ -1401,7 +1553,7 @@ version = "3.5.4"
1401
1553
  source = "registry+https://github.com/rust-lang/crates.io-index"
1402
1554
  checksum = "7430702d3cc05cf55f0a2c9e41d991c3b7a53f91e6146a8f282b1bfc7f3fd133"
1403
1555
  dependencies = [
1404
- "convert_case",
1556
+ "convert_case 0.11.0",
1405
1557
  "ctor",
1406
1558
  "napi-derive-backend",
1407
1559
  "proc-macro2",
@@ -1415,7 +1567,7 @@ version = "5.0.3"
1415
1567
  source = "registry+https://github.com/rust-lang/crates.io-index"
1416
1568
  checksum = "1ca5a083f2c9b49a0c7d33ec75c083498849c6fcc46f5497317faa39ea77f5d5"
1417
1569
  dependencies = [
1418
- "convert_case",
1570
+ "convert_case 0.11.0",
1419
1571
  "proc-macro2",
1420
1572
  "quote",
1421
1573
  "semver",
@@ -1471,6 +1623,15 @@ dependencies = [
1471
1623
  "instant",
1472
1624
  ]
1473
1625
 
1626
+ [[package]]
1627
+ name = "nu-ansi-term"
1628
+ version = "0.50.3"
1629
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1630
+ checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
1631
+ dependencies = [
1632
+ "windows-sys 0.61.2",
1633
+ ]
1634
+
1474
1635
  [[package]]
1475
1636
  name = "num-traits"
1476
1637
  version = "0.2.19"
@@ -1504,6 +1665,29 @@ version = "0.1.6"
1504
1665
  source = "registry+https://github.com/rust-lang/crates.io-index"
1505
1666
  checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
1506
1667
 
1668
+ [[package]]
1669
+ name = "parking_lot"
1670
+ version = "0.12.5"
1671
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1672
+ checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
1673
+ dependencies = [
1674
+ "lock_api",
1675
+ "parking_lot_core",
1676
+ ]
1677
+
1678
+ [[package]]
1679
+ name = "parking_lot_core"
1680
+ version = "0.9.12"
1681
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1682
+ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
1683
+ dependencies = [
1684
+ "cfg-if",
1685
+ "libc",
1686
+ "redox_syscall 0.5.18",
1687
+ "smallvec",
1688
+ "windows-link",
1689
+ ]
1690
+
1507
1691
  [[package]]
1508
1692
  name = "percent-encoding"
1509
1693
  version = "2.3.2"
@@ -1872,6 +2056,15 @@ dependencies = [
1872
2056
  "crossbeam-utils",
1873
2057
  ]
1874
2058
 
2059
+ [[package]]
2060
+ name = "redox_syscall"
2061
+ version = "0.5.18"
2062
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2063
+ checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
2064
+ dependencies = [
2065
+ "bitflags 2.11.1",
2066
+ ]
2067
+
1875
2068
  [[package]]
1876
2069
  name = "redox_syscall"
1877
2070
  version = "0.7.4"
@@ -1881,6 +2074,26 @@ dependencies = [
1881
2074
  "bitflags 2.11.1",
1882
2075
  ]
1883
2076
 
2077
+ [[package]]
2078
+ name = "reedline"
2079
+ version = "0.49.0"
2080
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2081
+ checksum = "826c1fc22a2b1f14c3f6a80fc3d56adfbfb913d07f170bce4246700de7adfd50"
2082
+ dependencies = [
2083
+ "chrono",
2084
+ "crossterm",
2085
+ "fd-lock",
2086
+ "itertools 0.13.0",
2087
+ "nu-ansi-term",
2088
+ "serde",
2089
+ "strip-ansi-escapes",
2090
+ "strum",
2091
+ "thiserror",
2092
+ "unicase",
2093
+ "unicode-segmentation",
2094
+ "unicode-width",
2095
+ ]
2096
+
1884
2097
  [[package]]
1885
2098
  name = "regex"
1886
2099
  version = "1.12.3"
@@ -1986,6 +2199,15 @@ version = "2.1.2"
1986
2199
  source = "registry+https://github.com/rust-lang/crates.io-index"
1987
2200
  checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
1988
2201
 
2202
+ [[package]]
2203
+ name = "rustc_version"
2204
+ version = "0.4.1"
2205
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2206
+ checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
2207
+ dependencies = [
2208
+ "semver",
2209
+ ]
2210
+
1989
2211
  [[package]]
1990
2212
  name = "rustix"
1991
2213
  version = "1.1.4"
@@ -2107,6 +2329,12 @@ dependencies = [
2107
2329
  "windows-sys 0.61.2",
2108
2330
  ]
2109
2331
 
2332
+ [[package]]
2333
+ name = "scopeguard"
2334
+ version = "1.2.0"
2335
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2336
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
2337
+
2110
2338
  [[package]]
2111
2339
  name = "sct"
2112
2340
  version = "0.7.1"
@@ -2227,6 +2455,27 @@ version = "1.3.0"
2227
2455
  source = "registry+https://github.com/rust-lang/crates.io-index"
2228
2456
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
2229
2457
 
2458
+ [[package]]
2459
+ name = "signal-hook"
2460
+ version = "0.3.18"
2461
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2462
+ checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
2463
+ dependencies = [
2464
+ "libc",
2465
+ "signal-hook-registry",
2466
+ ]
2467
+
2468
+ [[package]]
2469
+ name = "signal-hook-mio"
2470
+ version = "0.2.5"
2471
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2472
+ checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
2473
+ dependencies = [
2474
+ "libc",
2475
+ "mio",
2476
+ "signal-hook",
2477
+ ]
2478
+
2230
2479
  [[package]]
2231
2480
  name = "signal-hook-registry"
2232
2481
  version = "1.4.8"
@@ -2275,12 +2524,42 @@ version = "1.2.1"
2275
2524
  source = "registry+https://github.com/rust-lang/crates.io-index"
2276
2525
  checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
2277
2526
 
2527
+ [[package]]
2528
+ name = "strip-ansi-escapes"
2529
+ version = "0.2.1"
2530
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2531
+ checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025"
2532
+ dependencies = [
2533
+ "vte",
2534
+ ]
2535
+
2278
2536
  [[package]]
2279
2537
  name = "strsim"
2280
2538
  version = "0.11.1"
2281
2539
  source = "registry+https://github.com/rust-lang/crates.io-index"
2282
2540
  checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
2283
2541
 
2542
+ [[package]]
2543
+ name = "strum"
2544
+ version = "0.27.2"
2545
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2546
+ checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"
2547
+ dependencies = [
2548
+ "strum_macros",
2549
+ ]
2550
+
2551
+ [[package]]
2552
+ name = "strum_macros"
2553
+ version = "0.27.2"
2554
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2555
+ checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7"
2556
+ dependencies = [
2557
+ "heck",
2558
+ "proc-macro2",
2559
+ "quote",
2560
+ "syn",
2561
+ ]
2562
+
2284
2563
  [[package]]
2285
2564
  name = "subtle"
2286
2565
  version = "2.6.1"
@@ -2593,6 +2872,12 @@ version = "0.2.5"
2593
2872
  source = "registry+https://github.com/rust-lang/crates.io-index"
2594
2873
  checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
2595
2874
 
2875
+ [[package]]
2876
+ name = "unicase"
2877
+ version = "2.9.0"
2878
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2879
+ checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
2880
+
2596
2881
  [[package]]
2597
2882
  name = "unicode-ident"
2598
2883
  version = "1.0.24"
@@ -2605,6 +2890,12 @@ version = "1.13.2"
2605
2890
  source = "registry+https://github.com/rust-lang/crates.io-index"
2606
2891
  checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
2607
2892
 
2893
+ [[package]]
2894
+ name = "unicode-width"
2895
+ version = "0.2.2"
2896
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2897
+ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
2898
+
2608
2899
  [[package]]
2609
2900
  name = "unicode-xid"
2610
2901
  version = "0.2.6"
@@ -2647,6 +2938,15 @@ version = "0.2.15"
2647
2938
  source = "registry+https://github.com/rust-lang/crates.io-index"
2648
2939
  checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
2649
2940
 
2941
+ [[package]]
2942
+ name = "vte"
2943
+ version = "0.14.1"
2944
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2945
+ checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077"
2946
+ dependencies = [
2947
+ "memchr",
2948
+ ]
2949
+
2650
2950
  [[package]]
2651
2951
  name = "wait-timeout"
2652
2952
  version = "0.2.1"
@@ -2830,6 +3130,22 @@ dependencies = [
2830
3130
  "rustls-pki-types",
2831
3131
  ]
2832
3132
 
3133
+ [[package]]
3134
+ name = "winapi"
3135
+ version = "0.3.9"
3136
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3137
+ checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
3138
+ dependencies = [
3139
+ "winapi-i686-pc-windows-gnu",
3140
+ "winapi-x86_64-pc-windows-gnu",
3141
+ ]
3142
+
3143
+ [[package]]
3144
+ name = "winapi-i686-pc-windows-gnu"
3145
+ version = "0.4.0"
3146
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3147
+ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
3148
+
2833
3149
  [[package]]
2834
3150
  name = "winapi-util"
2835
3151
  version = "0.1.11"
@@ -2839,12 +3155,71 @@ dependencies = [
2839
3155
  "windows-sys 0.61.2",
2840
3156
  ]
2841
3157
 
3158
+ [[package]]
3159
+ name = "winapi-x86_64-pc-windows-gnu"
3160
+ version = "0.4.0"
3161
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3162
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
3163
+
3164
+ [[package]]
3165
+ name = "windows-core"
3166
+ version = "0.62.2"
3167
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3168
+ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
3169
+ dependencies = [
3170
+ "windows-implement",
3171
+ "windows-interface",
3172
+ "windows-link",
3173
+ "windows-result",
3174
+ "windows-strings",
3175
+ ]
3176
+
3177
+ [[package]]
3178
+ name = "windows-implement"
3179
+ version = "0.60.2"
3180
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3181
+ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
3182
+ dependencies = [
3183
+ "proc-macro2",
3184
+ "quote",
3185
+ "syn",
3186
+ ]
3187
+
3188
+ [[package]]
3189
+ name = "windows-interface"
3190
+ version = "0.59.3"
3191
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3192
+ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
3193
+ dependencies = [
3194
+ "proc-macro2",
3195
+ "quote",
3196
+ "syn",
3197
+ ]
3198
+
2842
3199
  [[package]]
2843
3200
  name = "windows-link"
2844
3201
  version = "0.2.1"
2845
3202
  source = "registry+https://github.com/rust-lang/crates.io-index"
2846
3203
  checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
2847
3204
 
3205
+ [[package]]
3206
+ name = "windows-result"
3207
+ version = "0.4.1"
3208
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3209
+ checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
3210
+ dependencies = [
3211
+ "windows-link",
3212
+ ]
3213
+
3214
+ [[package]]
3215
+ name = "windows-strings"
3216
+ version = "0.5.1"
3217
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3218
+ checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
3219
+ dependencies = [
3220
+ "windows-link",
3221
+ ]
3222
+
2848
3223
  [[package]]
2849
3224
  name = "windows-sys"
2850
3225
  version = "0.52.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirsql
3
- Version: 0.4.27
3
+ Version: 0.4.29
4
4
  Requires-Dist: tomli>=2 ; python_full_version < '3.11'
5
5
  Requires-Dist: bin-shim>=0.1
6
6
  Summary: Ephemeral SQL index over a local directory
@@ -65,6 +65,50 @@ Add one `[[table]]` entry per table — each with its own `glob`, `ddl`, and
65
65
  table — each table is an independent view. See
66
66
  [`[[table]]`](../reference/config.md#table) for the remaining key, `strict`.
67
67
 
68
+ ## Add indexes and full-text search
69
+
70
+ `ddl` is a SQL batch, not a single statement — SQLite runs the whole thing. So
71
+ a table can arrive with its own index, and with an FTS5 index kept current by
72
+ two triggers:
73
+
74
+ ```toml
75
+ [[table]]
76
+ name = "posts"
77
+ glob = "posts/**/*.md"
78
+ on-file = "python3 extract.py {path}"
79
+ ddl = '''
80
+ CREATE TABLE posts (title TEXT, slug TEXT, body TEXT);
81
+ CREATE INDEX posts_slug ON posts(slug);
82
+
83
+ CREATE VIRTUAL TABLE posts_fts
84
+ USING fts5(body, content='posts', content_rowid='rowid');
85
+ CREATE TRIGGER posts_ai AFTER INSERT ON posts BEGIN
86
+ INSERT INTO posts_fts(rowid, body) VALUES (new.rowid, new.body);
87
+ END;
88
+ CREATE TRIGGER posts_ad AFTER DELETE ON posts BEGIN
89
+ INSERT INTO posts_fts(posts_fts, rowid, body)
90
+ VALUES ('delete', old.rowid, old.body);
91
+ END;
92
+ '''
93
+ ```
94
+
95
+ ```bash
96
+ dirsql query "SELECT slug FROM posts JOIN posts_fts ON posts.rowid = posts_fts.rowid
97
+ WHERE posts_fts MATCH 'recursion'" -c ./.dirsql.toml
98
+ ```
99
+
100
+ ```json
101
+ [{"slug":"again"}]
102
+ ```
103
+
104
+ dirsql writes rows with plain `INSERT` and `DELETE`, so those triggers hold
105
+ through the initial load and every [watcher](./react-to-changes.md) event — you
106
+ maintain nothing. `name` still has to be the row table (`posts`); the virtual
107
+ table lives beside it under its own name. The batch runs once, when the table
108
+ is created, and editing any part of it rebuilds a
109
+ [persistent cache](./persist.md) from scratch. Full rules:
110
+ [Batch `ddl`](../reference/config.md#batch-ddl).
111
+
68
112
  ## Going further
69
113
 
70
114
  - The parser mechanics — placeholders, stdout protocol, per-file failure
@@ -76,9 +76,11 @@ interpreter to resolve package names with
76
76
 
77
77
  ## Notes
78
78
 
79
- - Extensions add **functions**. An extension-backed virtual table cannot be
80
- declared as a `[[table]]` `dirsql` tables are per-file row tables
81
- ([reference](../reference/config.md#dirsql-extension)).
79
+ - Extensions add **functions**, and virtual tables a table's `ddl` batch can
80
+ create. A `[[table]]`'s own `name` may not be a virtual table — that one is
81
+ the per-file row table `dirsql` inserts into — so declare the virtual table
82
+ alongside it in the same batch
83
+ ([reference](../reference/config.md#batch-ddl)).
82
84
  - Loading happens before any table DDL runs, and the SQL
83
85
  `load_extension()` function is never exposed to queries
84
86
  ([reference](../reference/config.md#dirsql-extension)).
@@ -95,10 +95,12 @@ LIMIT 10
95
95
 
96
96
  ::: tip Top-k is `LIMIT k`
97
97
  If you know `sqlite-vec` you may reach for its `MATCH … AND k = 10` idiom.
98
- That syntax belongs to `sqlite-vec`'s `vec0` virtual table, which `dirsql`
99
- does not use `dirsql` tables are per-file row tables. For plain
100
- expressions, `sqlite-vec`'s own documented pattern is exactly what this
101
- guide uses: `ORDER BY vec_distance_cosine(...) LIMIT k`.
98
+ That syntax belongs to `sqlite-vec`'s `vec0` virtual table, which the table
99
+ above does not use: a `[[table]]`'s own `name` is always a per-file row table.
100
+ For plain expressions, `sqlite-vec`'s own documented pattern is exactly what
101
+ this guide uses: `ORDER BY vec_distance_cosine(...) LIMIT k`. To get the `vec0`
102
+ idiom instead, declare the `vec0` table alongside the row table in the same
103
+ [`ddl` batch](../reference/config.md#batch-ddl) and fill it from a trigger.
102
104
  :::
103
105
 
104
106
  ## Repeat runs are cheap