Skip to content

Commit f6eeedc

Browse files
author
Jürgen Zornig
committed
chore(release): 0.1.1
1 parent 99cc97f commit f6eeedc

2 files changed

Lines changed: 41 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,44 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## [Unreleased]
99

10+
## [0.1.1] — 2026-06-01
11+
12+
First Oracle-verified release. KBGSuite, a real-world DBFit suite of network-topology
13+
tests against an Oracle 19c instance, runs end-to-end (6/6 pages green) via dbression
14+
with no changes to the underlying `.wiki` files.
15+
16+
### Added
17+
18+
- **`Ordered Query`** fixture for tests where row order is part of the contract.
19+
Default `Query` is now unordered (set-based) — see *Changed* below.
20+
- **Function return values in `Execute Procedure`**: a `?` column header (DBFit
21+
convention) is now captured from the call result and compared against the
22+
corresponding cell. Works for Oracle SQL functions called via `SELECT … FROM dual`.
23+
24+
### Changed
25+
26+
- **`Query` is now set-based (multiset) by default**, matching DBFit's `RowFixture`
27+
semantics: expected rows must match actual rows regardless of order, with no
28+
surplus and nothing missing. Tests previously written for the strict positional
29+
comparison should still pass (a multiset matches if the list matches); tests that
30+
used a hand-curated row order without an `ORDER BY` will now pass where they
31+
previously failed.
32+
- **Numeric cell comparison** uses `Decimal` instead of string equality. Oracle
33+
`NUMBER` columns arrive as `Decimal('2502.0')` and now match the wiki cell `"2502"`.
34+
- **Oracle stored-routine calls** transparently try `BEGIN … END;`, `SELECT … FROM dual`
35+
and positional variants in order. Errors with PLS-00103 / PLS-00306 (which usually
36+
indicate "this is a FUNCTION, not a PROCEDURE") trigger the next candidate.
37+
- **Column-name lookup in result sets** falls back to positional mapping when the
38+
expected header count equals the actual column count. Covers idioms like
39+
`select count(*)` where the implicit column name is `COUNT(*)`.
40+
41+
### Fixed
42+
43+
- **`Update` fixture semantics**: the `=` suffix on a column header marks a **SET**
44+
column (previously WHERE), bare headers mark **WHERE** columns (previously SET).
45+
This is the DBFit convention; v0.1.0 had it inverted. If you wrote any `Update`
46+
fixtures against v0.1.0, swap the `=` markers across.
47+
1048
## [0.1.0] — 2026-05-29
1149

1250
Initial public release. Functional core that runs real-world DBFit suites against PostgreSQL,
@@ -61,5 +99,6 @@ with code paths in place for SQL Server and Oracle.
6199
reject `python-oracledb` thin-mode authentication. Configuration is via
62100
`DBRESSION_ORACLE_CLIENT_LIB_DIR`.
63101

64-
[Unreleased]: https://github.com/angrydat/dbression/compare/v0.1.0...HEAD
102+
[Unreleased]: https://github.com/angrydat/dbression/compare/v0.1.1...HEAD
103+
[0.1.1]: https://github.com/angrydat/dbression/releases/tag/v0.1.1
65104
[0.1.0]: https://github.com/angrydat/dbression/releases/tag/v0.1.0

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "dbression"
3-
version = "0.1.0"
3+
version = "0.1.1"
44
description = "Rage-quit your flaky DB regressions — modern, lightweight, multi-DB regression testing."
55
readme = "README.md"
66
license = { text = "MIT" }

0 commit comments

Comments
 (0)