Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions docs/reference/path-tables.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ SELECT path FROM '/var/log/*.log';
-- /var/log/syslog
```

On Windows, the absolute forms also include a drive letter
(`'C:\logs\*.log'` or `'C:/logs/*.log'`), a UNC share
(`'\\server\share\*.md'`) and `'~\notes'`. `\` and `/` both separate there,
and the `path` these report uses `/` throughout (`C:/logs/app.log`), matching
the `/`-separated relative paths.

On a system with no home directory, a `~/` path-table reports that it cannot
resolve rather than guessing.

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"command": "just test-e2e",
"ran_at": 1790604714,
"exit_code": 0,
"commit": "f719e49b96e8610e5692f76ebfb564ae3188d04e",
"branch": "claude/1185-win-abs-table-names"
}
1 change: 1 addition & 0 deletions packages/rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ thiserror.workspace = true
tokio.workspace = true
tokio-stream = { version = "0.1", features = ["sync"], optional = true }
toml = "0.8"
typed-path = "0.12"
walkdir = "2"

[lints.rust]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**Fixed** On Windows, a path-table named by a drive letter (`C:\logs\*.log`, `C:/logs/*.log`), a UNC share, or `~\` now resolves instead of failing with `no such table`. Absolute path-tables report `path` with `/` separators on every platform.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
### Windows absolute path-tables resolve and report `/` paths

**Summary**

On Windows, a path-table named by a drive letter (`C:\logs\*.log`), a UNC share
or `~\` now resolves; it previously failed with `no such table`. Absolute
path-tables (`/`, `../`, `~/` and the Windows forms) report `path` with `/`
separators on Windows. No signature changed, and Unix output is unchanged.

**Required changes**

_None._

**Deprecations removed**

_None._

**Behavior changes without code changes**

| Surface (Windows) | Before | After |
|---|---|---|
| `SELECT path FROM 'C:\logs\*.log'` | `no such table` | `C:/logs/app.log` |
| `SELECT path FROM '~/notes/*.md'` | `C:\Users\u\notes\n.md` | `C:/Users/u/notes/n.md` |

A Windows consumer that matched on `\` in an absolute path-table's `path` must
match on `/`.

**Verification**

```bash
dirsql "SELECT path FROM 'C:/Windows/*.ini' LIMIT 1"
# [{"path":"C:/Windows/system.ini"}]
```
Loading
Loading