Skip to content

feat: read-modify-write loads using hotdata 0.2.2#1

Merged
eddietejeda merged 4 commits into
masterfrom
feat/read-modify-write-hotdata-0.2.2
May 20, 2026
Merged

feat: read-modify-write loads using hotdata 0.2.2#1
eddietejeda merged 4 commits into
masterfrom
feat/read-modify-write-hotdata-0.2.2

Conversation

@eddietejeda
Copy link
Copy Markdown
Contributor

Summary

  • Replace broken SQL append/merge path with read-modify-write using only supported API ops (SELECT, upload_parquet, load_managed_table(replace))
  • Switch to dlt parquet file mode (batch_size=0) and honor per-resource write_disposition / primary_key
  • Add declared_tables for multi-table managed DB creation
  • Skip SELECT on unsynced tables (API returns 500 before first load)
  • Require hotdata>=0.2.2 for ApiClient.close()

Test plan

  • uv run ruff check .
  • uv run pytest (21 passed)
  • uv run pytest tests/test_e2e_linear_hotdata.py -m integration (passed against live Hotdata + Linear)

Replace SQL append/merge staging with SELECT + in-memory merge and
load_managed_table(replace). Use dlt parquet file mode, per-resource
write_disposition/primary_key, declared_tables, and synced-table
checks. Require hotdata>=0.2.2 for ApiClient.close().
Fix GitHub Release action pin, add workflow_dispatch recovery, and document
0.3.0 changes in CHANGELOG.
First PyPI release with read-modify-write managed database loads.
Comment thread src/hotdata_dlt_destination/merge.py Outdated
Comment thread src/hotdata_dlt_destination/hotdata_client.py Outdated
claude[bot]
claude Bot previously approved these changes May 20, 2026
Reject unknown write_disposition values explicitly and drop brittle
"not found" string matching from fetch_table_rows now that synced-table
checks cover the empty-table case.
Comment thread .github/workflows/release.yml
@eddietejeda eddietejeda merged commit 14b05fc into master May 20, 2026
3 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.

1 participant