Skip to content

Release 1.3.2: plxgo fmt.Sprintf fix (code-only patch) - #6

Merged
jdatcmd merged 1 commit into
masterfrom
release/1.3.2
Aug 24, 2026
Merged

Release 1.3.2: plxgo fmt.Sprintf fix (code-only patch)#6
jdatcmd merged 1 commit into
masterfrom
release/1.3.2

Conversation

@jdatcmd

@jdatcmd jdatcmd commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Code-only patch (no catalog changes), following the 1.3.1 procedure.

What ships

The plxgo fmt.Sprintf fix from #4. In expression position fmt.Sprintf passed its Go format string straight into SQL format(), which understands only %s, %I, %L and %%. Every other verb raised unrecognized format() type specifier when the function was called, so fmt.Sprintf("%d", n) transpiled cleanly and then failed at run time.

Also carried: make differentialcheck, doc/MIGRATION.md, and the vtable refactor from #2 and #3 that had been sitting in Unreleased (all no-ops).

Mechanics

  • plx.control default_version and META.json to 1.3.2
  • plx--1.3.2.sql, identical to 1.3.1 since no SQL object changes
  • plx--1.3.1--1.3.2.sql, version-advancing only
  • Makefile DATA updated with both
  • CHANGELOG [Unreleased] folded into [1.3.2] - 2026-08-24

Verification on PostgreSQL 18.4

Clean build with no warnings, 13/13 installcheck, differentialcheck at 374 matching / 14 documented / 0 unexplained.

The upgrade path was exercised the way a user hits it, installing the previous release first:

 installed_before        1.3.1
 after_upgrade           1.3.2
 sprintf_works_after_upgrade   user bob has 3 items
 fresh_install_default   1.3.2

So ALTER EXTENSION plx UPDATE TO '1.3.2' applies, the fix is present afterwards, and a fresh CREATE EXTENSION plx installs 1.3.2. META.json re-parsed as valid JSON.

Tag and GitHub release follow once this merges.

🤖 Generated with Claude Code

Code-only patch (no catalog changes) carrying the plxgo fix for fmt.Sprintf
emitting a format string SQL format() rejects, plus the differential check
that found it.

In expression position fmt.Sprintf passed its Go format string straight into
SQL format(), which understands only %s, %I, %L and %%. Every other verb raised
"unrecognized format() type specifier" when the function was called, so
fmt.Sprintf("%d", n), the ordinary way to format an integer in Go, transpiled
cleanly and then failed at run time. Go's verbs now become the %s that format()
understands, and a % that starts no directive is escaped rather than passed
through.

Bumps default_version and META.json to 1.3.2, adds plx--1.3.2.sql (identical to
1.3.1) and the plx--1.3.1--1.3.2.sql version-advancing upgrade script.

Verified against PG18.4: clean build with no warnings, all 13 installcheck tests
pass, differentialcheck clean at 374 matching and 14 documented, the 1.3.1 ->
1.3.2 ALTER EXTENSION UPDATE applies and carries the fix, and a fresh CREATE
EXTENSION installs 1.3.2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jdatcmd
jdatcmd merged commit 3f74de2 into master Aug 24, 2026
6 checks passed
@jdatcmd
jdatcmd deleted the release/1.3.2 branch August 24, 2026 23:50
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.

1 participant