feat: CI pipeline and regression tests (PG 14-17)#12
Conversation
After the bigint->xid8 transform for ev_txid, the dynamic SQL in batch_event_sql generates comparisons like ev.ev_txid >= 12345 which fail because PostgreSQL has no comparison operator for (xid8, integer). Fix by emitting '12345'::xid8 text-cast literals in the generated SQL. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GitHub Actions CI testing on PG 14-17 with Docker. Regression test suite covering: config, roles, security definer, queue lifecycle, events, ticker, consumers, retry mechanism, and install idempotency. Closes #5 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
REV Code Review Report
BLOCKING ISSUES (0)None. The xid8 bug fix is correct and the test suite is solid. NON-BLOCKING (4)LOW MEDIUM LOW LOW POTENTIAL ISSUES (2)LOW xid8 Bug Fix AssessmentThe critical fix in
Summary
Verdict: PASSED. No blockers. The non-blocking CI improvements should be addressed in a follow-up PR. REV-assisted review (AI analysis by postgres-ai/rev) |
Summary
.github/workflows/ci.yml) that tests pgque on PostgreSQL 14, 15, 16, and 17 using Dockertests/run_all.sql+ 8 test files) covering config, roles, security definer, queue lifecycle, events, ticker, consumers, and retry mechanismbatch_event_sqldynamic SQL that broke event retrieval after the bigint-to-xid8 transformBug fix: xid8 casts in batch_event_sql
The
bigint->xid8transform forev_txidleft the dynamic SQL inbatch_event_sqlgenerating comparisons likeev.ev_txid >= 12345, which fail because PostgreSQL has no comparison operator for(xid8, integer). Fixed by emitting'12345'::xid8text-cast literals.Test suite
All tests verified locally on PostgreSQL 17:
Closes #5
Test plan
verifyjob passes static checks (SECURITY DEFINER, no pgq refs, no txid refs)🤖 Generated with Claude Code