Skip to content

fix: support PostgreSQL PDF extraction cache upserts (#77) - #79

Open
spelech wants to merge 2 commits into
mainfrom
hotfix/issue-77-postgres-pdf-cache
Open

spelech wants to merge 2 commits into
mainfrom
hotfix/issue-77-postgres-pdf-cache

Conversation

@spelech

@spelech spelech commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Fixes #77.

Changes

  • Replace both SQLite-only PDF extraction-cache writes with one shared INSERT ... ON CONFLICT ... DO UPDATE statement supported by SQLite and PostgreSQL.
  • Preserve extraction fields on cache refresh without aborting PostgreSQL metadata transactions.
  • Add actual HTTP/file/database regressions for text and rasterized PDFs, upload/replacement, persisted cache reads when OCR is unavailable, stale-cache refresh and deletion.

Verification

  • Before the fix: 4 native PostgreSQL cases failed while 4 SQLite controls passed.
  • PDF extraction and cache cases: 21 passed, 1 skipped.
  • Generated requirement inventory: 2 passed; release/link-integrity gate passed.
  • Combined backend regression run: 70 passed, 1 skipped.
  • With the companion backend fixes: 2 full PostgreSQL/pgvector/API-key-auth profile checks passed, including injected vector-write failure and successful retry.

The isolated cache regression uses real PostgreSQL metadata and embedded Qdrant with an external synthetic embedding/OCR HTTP endpoint. The combined profile additionally verifies real pgvector persistence/search. Full-suite and fresh-source-build acceptance are not claimed.

Steve Pelech and others added 2 commits October 28, 2026 10:05
Fixes #77

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
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.

fix(pdf): use PostgreSQL-compatible extraction-cache upserts

1 participant