• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

axkit / velum
88%

Build:
DEFAULT BRANCH: main
Repo Added 08 Apr 2025 12:39AM UTC
Files 16
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • feature/1-add-arbitrary-select
  • main

14 Sep 2026 06:13PM UTC coverage: 87.767% (-1.5%) from 89.278%
34879528550

push

regorov
add transaction isolation levels

Begin and InTx always used the server default isolation level, so REPEATABLE
READ was unreachable without bypassing velum.

Add velum.IsoLevel, TxOptions{IsoLevel, ReadOnly} and the optional
TxDatabaseWrapper interface with BeginTx, InTxWith and IsRetryable, plus
package-level BeginTx/InTxWith/IsRetryable helpers taking any DatabaseWrapper
and returning ErrTxOptionsUnsupported when it cannot apply options.
DatabaseWrapper itself is unchanged, so external implementations keep
compiling.

pgxw and sqlw translate the options into pgx.TxOptions and sql.TxOptions;
Begin and InTx delegate to them with empty options, keeping commit/rollback in
one place. logw forwards the options and logs the level, or fails with
ErrTxOptionsUnsupported instead of silently downgrading to READ COMMITTED.
IsRetryable matches SQLSTATE 40001 and 40P01 through the SQLState() string
interface, which both pgconn.PgError and pq.Error implement, so sqlw stays
independent of any database/sql driver.

BREAKING: sqlw.Begin now returns velum.Transaction instead of the concrete
TransactionWrapper, so *sqlw.DatabaseWrapper finally satisfies
velum.DatabaseWrapper.

Tests cover the level actually applied (SHOW transaction_isolation), read-only
rejection (25006), a real 40001 conflict between two REPEATABLE READ
transactions, and logw forwarding. Docs: isolation sections in README and
AGENTS.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RbWkiykV7LXmzE9sqdypVP

68 of 112 new or added lines in 4 files covered. (60.71%)

1643 of 1872 relevant lines covered (87.77%)

0.98 hits per line

Relevant lines Covered
Build:
Build:
1872 RELEVANT LINES 1643 COVERED LINES
0.98 HITS PER LINE
Source Files on main
  • Tree
  • List 16
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
34879528550 main add transaction isolation levels Begin and InTx always used the server default isolation level, so REPEATABLE READ was unreachable without bypassing velum. Add velum.IsoLevel, TxOptions{IsoLevel, ReadOnly} and the optional TxDatabaseWrapper inte... push 14 Sep 2026 06:14PM UTC regorov
87.77
34872142433 main fix InTx committing on error InTx in pgxw and sqlw declared an unnamed result, so `return fn(tx)` never assigned to `err`. `err` stayed nil from Begin, the deferred func always took the Commit branch, and `err = tx.Commit(ctx)` was dead: the erro... push 14 Sep 2026 05:01PM UTC regorov
89.28
34622585428 main improve documentation push 11 Sep 2026 04:33PM UTC regorov
89.29
22798755606 main release version * refactor and clean dead code * add support of flexible SELECT command * add tests: memory leak detection * fix generating delete returning command * readme improvement * document code * fix typos * fix silent failures * ... push 07 Mar 2026 12:08PM UTC web-flow
89.14
22798729651 feature/1-add-arbitrary-select fix readme Pull #2 07 Mar 2026 12:06PM UTC regorov
89.14
14344779540 main add generic not found error push 08 Apr 2025 10:27PM UTC regorov
60.17
14322464832 main fix database wrapper interface push 08 Apr 2025 12:42AM UTC regorov
61.7
See All Builds (7)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc