Skip to content

Commit 65e1d9c

Browse files
committed
docs: update release notes for PR #145 S3 day-level file verification
- Document the day-level file existence check fix - Credit khalid244 for the contribution
1 parent 4ed9a21 commit 65e1d9c

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

RELEASE_NOTES_2026.02.1.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,23 @@ Fixed an issue where measurement names containing ASCII control characters (0x01
178178

179179
Invalid measurement names now return a `400 Bad Request` with a descriptive error message.
180180

181-
### Partition Pruner Fails on Non-Existent S3 Partitions (Issue #125, #144)
181+
### Partition Pruner Fails on Non-Existent S3 Partitions (Issue #125, #144, PR #145)
182182

183183
Fixed an issue where time-filtered queries would fail with "No files found" errors when the requested time range included partitions that don't exist in S3 storage. This particularly affected queries for recent data (< 24 hours) before daily compaction has run.
184184

185185
**Cause:** The partition pruner generated paths for all hours in a time range without verifying existence. For local storage, it used `filepath.Glob()` to filter paths, but for S3/Azure storage, paths were passed directly to DuckDB which threw errors for missing partitions.
186186

187+
Additionally, for day-level paths (`year/month/day/*.parquet`), the pruner only checked if the **directory** existed (which passes when hourly subdirectories exist), but didn't verify that actual `.parquet` files exist at the day level.
188+
187189
**Fix:** Extended `filterExistingPaths()` to handle S3/Azure storage:
188190
- Uses `ListDirectories()` to verify which partition paths actually exist
191+
- For day-level paths (5 segments), verifies that `.parquet` files exist directly at that level (not just in subdirectories)
189192
- Filters out non-existent partitions before passing to DuckDB
190193
- Also fixed a pre-existing bug where `filepath.Join()` was mangling S3 URLs (`s3://bucket``s3:/bucket`)
191194

192-
**Result:** Queries on sparse datasets (with gaps in time partitions) now succeed and return data from existing partitions instead of failing.
195+
**Result:** Queries on sparse datasets (with gaps in time partitions) now succeed and return data from existing partitions instead of failing. Grafana dashboards querying recent data (< 24 hours) on S3 now work correctly.
196+
197+
*Day-level file verification contributed by [@khalid244](https://github.com/khalid244)*
193198

194199
### Server Timeout Config Values Ignored (Issue #126)
195200

@@ -996,7 +1001,7 @@ None
9961001
Thanks to the following contributors for this release:
9971002

9981003
- [@schotime](https://github.com/schotime) (Adam Schroder) - Data-time partitioning, compaction API triggers, UTC fixes, Azure SSL certificate fix
999-
- [@khalid244](https://github.com/khalid244) - Multi-line WHERE clause regex fix (Issue #146, PR #148)
1004+
- [@khalid244](https://github.com/khalid244) - Multi-line WHERE clause regex fix (Issue #146, PR #148), S3 day-level file verification (Issue #144, PR #145)
10001005

10011006
## Dependencies
10021007

0 commit comments

Comments
 (0)