Skip to content

Releases: pkware/norm

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 12:13
Immutable release. Only release title and notes can be modified.

0.5.0 (2026-09-08)

Features

  • add EXPLAIN (FORMAT JSON)-based MERGE side-nullability detection (Stage 2) (a34d2e3)
  • add prosqlbody-based nullability probe alongside CREATE VIEW, prove parity (Stage 1) (bdd11e4)
  • resolve @property provenance from the PostgreSQL node tree (462b039)
  • route DML/CTE/MERGE nullability through prosqlbody in production (59a9b45)
  • route plain SELECT through prosqlbody and sweep dead DML-conversion code (5de7a61)

Bug Fixes

  • analyze nullability for MERGE fed by a CTE source (f32a8d6)
  • analyze view expressions instead of trusting source column names (fcb25bf), closes #256
  • apply any-nullable-source-wins reduction to view nullability by name (bef131e)
  • ask KotlinPoet whether a @property name needs backticks (bd42334)
  • attribute a MERGE's join by locating its own ModifyTable node, not the first join found (18c09f0)
  • bail conservatively on a Unicode-escape identifier in referencesAnyName (51fce48)
  • bail instead of clamping when a lexical scan's bracket depth goes negative (845720f)
  • bound-check truncated \u escapes in JsonValue parser (1aad12f)
  • correct SUBLINK_TYPE_ALL's enum value and prove ALL_SUBLINK non-null (3c62130)
  • correctly decode quoted identifiers in referencesAnyName's sibling-name scan (c3b92df)
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.10.1 (69e44fb)
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.10.2 (9259edf)
  • deps: update dependency com.squareup:kotlinpoet to v2.4.0 (34e12af)
  • deps: update dependency io.micronaut.data:micronaut-data-processor to v5.1.3 (8fdc2a7)
  • deps: update dependency io.micronaut.sql:micronaut-jdbc-hikari to v7.1.2 (187e75d)
  • deps: update dependency org.commonmark:commonmark to v0.30.0 (1bdb28b)
  • deps: update kotlin monorepo to v2.4.20 (465b61a)
  • deps: update micronaut to v5.1.13 (d43c6e9)
  • derive JSON constructor nullability from its arguments (c83f2f5)
  • drop the per-assignment parameter-trust gate for the whole-statement one (513af56)
  • fail safe on an unanalyzable branch or a non-converged pass limit in the recursive-CTE fixpoint (c00e20c)
  • flip PgNodeTreeParser's CONST/FUNCEXPR field defaults to the safe direction (7158f96)
  • generate compilable CRUD SQL for quoted column names (57b01b7)
  • guard parseSelectItems against a shifted item-to-column mapping (8e435bd)
  • handle comments and whitespace after the alias in a RETURNING WITH (OLD AS ...) prologue (b250c33)
  • iterate recursive CTE nullability to a fixpoint instead of one pass (69f66f7)
  • make extractFieldExpression depth-one-aware, closing a wrong-subquery hazard in nested CASE/JSONEXPR parsing (6ce3856)
  • make prosqlbody's parameter-trust gate per-assignment, not per-statement (1e91900)
  • order Flyway migrations globally across schemas entries, not per-directory (e30ad16)
  • prove ANY_SUBLINK non-null only under three-valued-logic-safe conditions (e679d19), closes #239
  • read a domain's UUID base type through the class-hinted getObject overload (138aeb6)
  • recover column comments lost to folding and IS DISTINCT FROM (935c22c)
  • recover GROUPING SETS columns PostgreSQL never nulls (6fa1f7c), closes #240
  • recurse into JsonExpr's children in containsVarOutsideRelation (444f26b)
  • render KDoc that survives Markdown and KotlinPoet escaping (3e1e96c)
  • replace evaluateJsonExpr's JsonBehaviorType deny-list with a verified allow-list (8f69da7)
  • report nullable, not NOT NULL, when the unconvertible-DML probe can't prove a column (de988db)
  • resolve JDBC types for every domain base type resolveBaseType accepts (e4fc6d3)
  • resolve PostgreSQL 18 GROUP RTE vars to their group expressions (8dbc7da)
  • resolve sublink subselects against derived tables and enclosing CTEs (9d5fe1b), closes #257
  • restore original comments in the four frozen embed scenarios (4a0cdff)
  • separate the nullability probe's function body from its terminator with a newline (8d4fd24)
  • source resolveCteOutputExpression's reserved-word set from the live server, not a hardcoded snapshot (c0983fc)
  • spell out abbreviated JDBC/expression identifiers introduced by this branch (c60a441)
  • stop aliasing a mutable task list for IDE-sync dependency wiring (2b6b61d)
  • stop inferring JSON_VALUE/JSON_QUERY non-null from ON EMPTY/ON ERROR codes alone (c86b06d)
  • strip the PG18 RETURNING WITH (OLD/NEW alias) prologue before parsing output items (110bfdc)
  • truncate identifiers to PostgreSQL's 63-byte limit (cc0e1f7), closes #245

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 24 Aug 21:14
Immutable release. Only release title and notes can be modified.

0.4.2 (2026-08-22)

Bug Fixes

  • analyze chained data-modifying CTEs (#202) (f98bdd9)
  • analyze data-modifying CTE bodies via join-preserving SELECT conversion, not isolated metadata probes (#203) (d588645)
  • bind and read plain array columns correctly (#190, #192) (af98e41)
  • bind plain jsonb parameters with setObject(Types.OTHER) (0de21d2), closes #187
  • classify a CTE body by the statement its own nested WITH introduces (#205) (9650729)
  • close the sibling-CTE and grouping-set nullability gaps (#208) (9c5398d)
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.10.0 (75938c8)
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.9.0 (81b32c2)
  • deps: update dependency dev.detekt:dev.detekt.gradle.plugin to v2.0.0-alpha.6 (350a1b4)
  • deps: update dependency io.micronaut.test:micronaut-test-junit5 to v5.1.0 (3930c77)
  • deps: update dependency io.micronaut.test:micronaut-test-junit5 to v5.1.1 (de70baf)
  • deps: update dependency org.junit.jupiter:junit-jupiter-params to v6.1.2 (917f597)
  • deps: update dependency org.junit.jupiter:junit-jupiter-params to v6.1.3 (437e632)
  • deps: update dependency org.springframework.boot:spring-boot-dependencies to v4.1.1 (3656cf4)
  • deps: update kotlin monorepo to v2.4.10 (f1675bb)
  • deps: update micronaut to v5.1.10 (170349e)
  • deps: update micronaut to v5.1.11 (db2275b)
  • deps: update micronaut to v5.1.12 (3bb4816)
  • deps: update micronaut to v5.1.8 (a82d811)
  • deps: update micronaut to v5.1.9 (1ee3cc4)
  • deps: update micronautdata to v5.1.0 (c3cf86c)
  • deps: update micronautdata to v5.1.1 (ef93391)
  • deps: update micronautdata to v5.1.2 (ca9e7ac)
  • e2e-tests-micronaut: declare kspTest so @MicronautTest bean definitions generate (b13b6ec)
  • give the SQL scanners lexical awareness of strings, comments, and brackets (cb1300e)
  • give top-level DML RETURNING the same nullability safety net as CTE bodies (909a11f), closes #207
  • locate the main query's output clause, not the first SELECT anywhere (#212) (406f4d9)
  • map oid[] to Array<Long?> rather than Array<Blob?> (#196) (1a8bfc5)
  • map Postgres json alongside jsonb (#191) (941d89a)
  • match PostgreSQL's identifier character classes per lexical position (#219) (e0ac252)
  • narrow result nullability using WHERE-clause predicates (58f9029), closes #186
  • order schema replay the way Flyway orders migrations (22f6657)
  • quote the nullability stub's column aliases (#204) (01286ad)
  • recognize a star by its trailing alias, not by enumerating what may precede it (#215) (e500f3c)
  • resolve @property provenance through CTE bodies, correct-or-silent (b41b813), closes #229
  • resolve RETURNING nullability against SET-assigned values (#228) (431126b)
  • resolve unknown-nullability RETURNING columns by probing the target relation (#226) (0769c9a)
  • return a correctly sized array from batch overloads (#189) (db3d420)

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 09 Jul 20:11

0.4.1 (2026-07-09)

Bug Fixes

  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.8.0 (6494b3d)
  • deps: update dependency io.micronaut.sql:micronaut-jdbc-hikari to v7.0.2 (f0b2e87)
  • deps: update dependency io.micronaut.sql:micronaut-jdbc-hikari to v7.1.0 (b35c1f9)
  • deps: update dependency org.junit.jupiter:junit-jupiter-params to v6.1.1 (c43f3ad)
  • deps: update dependency org.postgresql:postgresql to v42.7.12 (cb4bcd4)
  • deps: update dependency org.postgresql:postgresql to v42.7.13 (c887ea3)
  • deps: update micronaut to v5.1.3 (9e7aae9)
  • deps: update micronaut to v5.1.5 (9f8b69a)
  • deps: update micronautdata to v5.0.5 (d6297ff)
  • pin codegen session zone to UTC instead of inheriting the host zone (6a62c0c)

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Jun 21:11

0.4.0 (2026-06-25)

Features

  • add Framework.MICRONAUT DI-only mode (8dde298), closes #137
  • Queries interface extends Transactable in no-framework mode (e082428), closes #136
  • Switch to targeting Java 25 (fa935db)

Bug Fixes

  • deps: split micronautTest version from micronaut core (9e38fe7)
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.7.0 (717e9ee)
  • deps: update dependency io.micronaut.sql:micronaut-jdbc-hikari to v7.0.1 (fa67872)
  • deps: update dependency io.micronaut.test:micronaut-test-junit5 to v5 (3197dab)
  • deps: update micronaut (6ed664e)
  • deps: update micronaut to v4.10.24 (d2c6c65)
  • deps: update micronaut to v4.10.25 (df7470c)
  • deps: update micronaut to v5 (e108b66)
  • deps: update micronaut to v5.1.0 (e8b6281)
  • deps: update micronaut to v5.1.1 (5f46b7d)
  • deps: update micronaut to v5.1.2 (454ffe0)
  • deps: update micronautdata to v5 (bdc0fbd)

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 28 May 14:02

0.3.0 (2026-05-28)

⚠ BREAKING CHANGES

  • Generated code for timestamptz columns now uses java.time.Instant instead of java.time.OffsetDateTime.

Features

  • map timestamptz to Instant instead of OffsetDateTime (a62b221)
  • support directories for schema and query paths (84c910a)

Bug Fixes

  • deduplicate reused named parameters in generated code (379cb75), closes #102
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.5.1 (94bcf86)
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.6.0 (9ca4508)
  • deps: update dependency org.junit.jupiter:junit-jupiter-params to v6.1.0 (98bcc37)
  • disable parallel test execution for Micronaut e2e tests (02573b1)
  • resolve compiler warning (12b0be0)
  • stop closing transaction-bound connection in Micronaut e2e tests (4a934c1)
  • stop dumping raw pg_node_tree text to Gradle output (bc5d3c7), closes #74
  • use a fixed version of Norm (2a98340)
  • use regular function types instead of extension functions in batch extractors (c66517c)

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 15 May 13:59

0.2.1 (2026-05-15)

Bug Fixes

  • ci: use block annotation for gradle.properties version; inline comments not valid in .properties (041a575)

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 15 May 13:39

0.2.0 (2026-05-15)

Features

  • add explicit transaction management for standalone (non-framework) use (fc233e1)
  • determine result column nullability from PostgreSQL query parse trees (#66) (6638cd7)
  • generate batch INSERT with RETURNING for CRUD-synthesized queries (d7317c3)
  • Improve code generation (600cf86)
  • speed up generation container with tmpfs and no-durability flags (1652374)
  • stop pushing postgresql driver onto consumers; document JDBC driver requirement (01bec9a), closes #49

Bug Fixes

  • apply column() type mappings to aliased columns in RETURNING clauses (0b29124)
  • ci: move extra-files into package config so release-please updates gradle.properties (335c87b)
  • ci: SNAPSHOT bump runs in release-please job, not separate workflow (fe8e183), closes #78
  • ci: use x-release-please-version annotation; remove unused search/replace (a321779)
  • correct GROUPING SETS/CUBE/ROLLUP nullability on PostgreSQL 16 and 17 (bf9f976)
  • deps: update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.5.0 (f539456)
  • deps: update dependency dev.detekt:dev.detekt.gradle.plugin to v2.0.0-alpha.3 (#47) (47c9a35)
  • deps: update dependency org.postgresql:postgresql to v42.7.11 (828c793)
  • deps: update micronaut to v4.10.22 (8eb7126)
  • deps: update micronaut to v4.10.23 (2902805)
  • deps: update micronautdata to v4.14.4 (e631255)
  • deps: update wire to v6.3.0 (2711d3b)
  • deps: update wire to v6.4.0 (39b3f19)
  • parseTargetEntry extracted fields from nested TARGETENTRY scope (bfa4fb7)
  • require Postgres ready log before accepting connections in e2e tests (169d235)
  • resolve 17 nullability analysis gaps found by end-to-end tests (1787410)
  • UPDATE SET nullable columns now generate nullable parameter types (cd0d57a)
  • UPDATE without WHERE now correctly inherits column nullability (4226c4b)
  • use PostgreSQL query trees for accurate outer join nullability (763dfe8)

0.0.2

Choose a tag to compare

@MariusVolkhart MariusVolkhart released this 18 Jan 06:22

Fix IO bug in sqlc plugin

0.0.1

Choose a tag to compare

@MariusVolkhart MariusVolkhart released this 05 Apr 01:28
0.0.1

Just the initial sqlc exporter