Skip to content

v0.6.0-1#70

Merged
jamesbconner merged 3 commits intomainfrom
v0.6.0
Feb 24, 2026
Merged

v0.6.0-1#70
jamesbconner merged 3 commits intomainfrom
v0.6.0

Conversation

@jamesbconner
Copy link
Copy Markdown
Owner

@jamesbconner jamesbconner commented Feb 24, 2026

Note

Medium Risk
Touches Iceberg metadata/manifest rewriting logic used by DuckDB scans; path normalization and snapshot-id forcing could change which files are read or how local tables resolve paths (especially on Windows). Other changes are low risk (lint/tool bumps and a small delta-compare control-flow fix).

Overview
Improves Iceberg snapshot patching for DuckDB/GizmoSQL comparisons by rewriting temp metadata.json to force current-snapshot-id to the target snapshot and normalizing relative local paths to absolute posix paths across manifest lists and manifests (in addition to lowercasing delete-manifest file_format). It now processes all manifests (data + delete) and rewrites the manifest-list whenever patched manifests exist or relative paths are present.

Fixes the /gizmosql/compare delta path to immediately run the performance analyzer for ver_a vs ver_b (removing unreachable shared logic), and silences Bandit’s hardcoded-password warning for TABLESLEUTH_GIZMO_PASSWORD in config-check.

Bumps pre-commit hook versions (ruff, mypy, pre-commit-hooks, bandit) and updates the generated web/index.html artifact (build hash).

Written by Cursor Bugbot for commit e7c41f6. This will update automatically on new commits. Configure here.

…rmance function

- Streamline the comparison logic by removing redundant variable assignments.
- Enhance clarity by directly using the SnapshotPerformanceAnalyzer for performance comparisons.
- Maintain functionality while improving code readability and maintainability.
- Add path resolution for relative local filesystem paths to absolute posix paths
- Fix stale current-snapshot-id by patching metadata.json to target snapshot
- Lowercase file_format in delete manifests to work around DuckDB iceberg_scan bug
- Rename _patch_file_format_in_record to _patch_manifest_record for clarity
- Rename _patch_delete_manifest to _patch_manifest with is_delete parameter
- Simplify logging and remove per-manifest format change counters
- Update module docstring to document all three DuckDB workarounds
- Update web/index.html with minor formatting changes
- Upgrade ruff from v0.7.4 to v0.15.2 for improved linting capabilities
- Upgrade mypy from v1.13.0 to v1.19.1 for enhanced type checking
- Upgrade pre-commit-hooks from v5.0.0 to v6.0.0 for latest hook improvements
- Upgrade bandit from 1.7.10 to 1.9.3 for improved security scanning
- Add nosec B105 comment to suppress false positive hardcoded password warning
- Reformat assertion in test to improve readability and comply with updated linting rules
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 0% with 43 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/tablesleuth/services/iceberg_manifest_patch.py 0.00% 40 Missing ⚠️
src/tablesleuth/api/routers/gizmosql.py 0.00% 3 Missing ⚠️

📢 Thoughts on this report? Let us know!

@jamesbconner jamesbconner merged commit d913100 into main Feb 24, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants