dirsql 0.3.79__tar.gz → 0.3.80__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.
- {dirsql-0.3.79 → dirsql-0.3.80}/Cargo.lock +1 -1
- {dirsql-0.3.79 → dirsql-0.3.80}/PKG-INFO +1 -1
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/Cargo.toml +1 -1
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/e2e-attestation.json +2 -2
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/db.rs +19 -3
- {dirsql-0.3.79 → dirsql-0.3.80}/Cargo.toml +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/README.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/__init__.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/_async.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/cli/binary_path.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/cli/is_windows.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/cli/main.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/py.typed +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/resolve_config_extensions.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/AGENTS.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/explanation.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/getting-started.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/define-tables.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/embed.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/load-extension.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/persist.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/howto/skip-files.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/index.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/migrations.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/package.json +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/playwright.config.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/reference/cli.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/reference/columns.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/reference/config.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/reference/hooks.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/reference/http-api.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/reference/sdk.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/tests/integration/home.spec.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/tests/integration/language-flag.spec.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/tests/integration/sidebar.spec.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/tests/unit/config.test.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/tests/unit/lang.test.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/docs/vitest.config.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/README.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/conftest.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/index.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/migrations.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/package.json +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/playwright.config.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/reference/cli.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/reference/config.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/tests/integration/home.spec.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/tests/integration/language-flag.spec.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/tests/integration/sidebar.spec.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/tests/unit/config.test.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/tests/unit/lang.test.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/vitest.config.ts +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/src/lib.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/tests/binding/__init__.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/python/tests/smoke/__init__.py +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/Cargo.toml +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/README.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/index.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/migrations.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/reference/cli.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/reference/config.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/command.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/config.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/lib.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/matcher.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/scanner.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.3.79 → dirsql-0.3.80}/pyproject.toml +0 -0
|
@@ -4,7 +4,7 @@ name = "dirsql-py-ext"
|
|
|
4
4
|
# pypi/maturin handler can rewrite it via `write-version` before
|
|
5
5
|
# `maturin build`. `pyproject.toml` declares `dynamic = ["version"]`
|
|
6
6
|
# and maturin reads this field. Mirrors `packages/rust/Cargo.toml`.
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.80"
|
|
8
8
|
edition.workspace = true
|
|
9
9
|
publish = false
|
|
10
10
|
readme = "README.md"
|
|
@@ -280,14 +280,14 @@ impl Db {
|
|
|
280
280
|
// `_dirsql_internal_rows`, keyed on the row's rowid. A column-less row
|
|
281
281
|
// (SQLite requires ≥1 declared column, so this is only reachable
|
|
282
282
|
// defensively) uses `DEFAULT VALUES`.
|
|
283
|
-
let columns: Vec<String> = row.keys().
|
|
283
|
+
let columns: Vec<String> = row.keys().map(|c| format!("\"{c}\"")).collect();
|
|
284
284
|
let sql = if columns.is_empty() {
|
|
285
|
-
format!("INSERT INTO {} DEFAULT VALUES"
|
|
285
|
+
format!("INSERT INTO \"{table}\" DEFAULT VALUES")
|
|
286
286
|
} else {
|
|
287
287
|
let placeholders: Vec<String> =
|
|
288
288
|
(1..=columns.len()).map(|i| format!("?{}", i)).collect();
|
|
289
289
|
format!(
|
|
290
|
-
"INSERT INTO {} ({}) VALUES ({})",
|
|
290
|
+
"INSERT INTO \"{}\" ({}) VALUES ({})",
|
|
291
291
|
table,
|
|
292
292
|
columns.join(", "),
|
|
293
293
|
placeholders.join(", "),
|
|
@@ -1323,6 +1323,22 @@ mod tests {
|
|
|
1323
1323
|
assert!(matches!(err, DbError::InvalidIdentifier(_)), "got: {err:?}");
|
|
1324
1324
|
}
|
|
1325
1325
|
|
|
1326
|
+
#[test]
|
|
1327
|
+
fn insert_row_round_trips_reserved_word_column() {
|
|
1328
|
+
let db = Db::new().unwrap();
|
|
1329
|
+
db.create_table("CREATE TABLE t (path TEXT, \"order\" INTEGER)")
|
|
1330
|
+
.unwrap();
|
|
1331
|
+
let row = HashMap::from([
|
|
1332
|
+
("path".into(), Value::Text("a".into())),
|
|
1333
|
+
("order".into(), Value::Integer(7)),
|
|
1334
|
+
]);
|
|
1335
|
+
db.insert_row("t", &row, "f.json", 0).unwrap();
|
|
1336
|
+
|
|
1337
|
+
let rows = db.get_rows_by_file("t", "f.json").unwrap();
|
|
1338
|
+
assert_eq!(rows.len(), 1);
|
|
1339
|
+
assert_eq!(rows[0]["order"], Value::Integer(7));
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1326
1342
|
#[test]
|
|
1327
1343
|
fn load_extension_missing_file_errors() {
|
|
1328
1344
|
let db = Db::new().unwrap();
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.3.79 → dirsql-0.3.80}/packages/python/docs/tests/integration/language-flag.spec.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|