Release Notes
The complete release notes for every immudb version are published on GitHub:
v1.11.0 — 2026-04-23
immudb 1.11.0 is a major release focused on PostgreSQL compatibility, SQL feature coverage, and operational hardening.
Highlights
- PostgreSQL compatibility: deep wire-protocol and SQL coverage validated end-to-end against Rails / ActiveRecord, Gitea, Django, GORM, XORM, SQLAlchemy, golang-migrate, JDBC, and pgAdmin. Real
pg_catalogandinformation_schemasystem tables replace ~1500 LOC of legacy regex handlers. See the PostgreSQL Compatibility page. - SQL Diff Query: new
SELECT _diff_action, ... FROM (DIFF OF table) SINCE TX n UNTIL TX msyntax for transaction-range diffs against the immutable log. - Audit Logging: structured, immutable, async audit trail for every gRPC operation, queryable via the standard Scan API and verifiable like any other immudb data.
- AST-based SQL rewriter (beta): feature-flagged via
--pg-rewriter=ast, off by default. COPY FROM stdin: bulk imports throughpsql -fandpg_dumpoutput.
SQL grammar additions
FULL OUTER JOIN,LATERAL,CROSS JOIN,NATURAL JOIN,JOIN ... USING— see JoinsEXISTS,IN, correlated and scalar subqueriesWITHandWITH RECURSIVECTEs — see CTEsEXCEPT,INTERSECTset operations- Window functions
ROW_NUMBER,RANK,DENSE_RANK,LAG,LEAD,FIRST_VALUE,LAST_VALUE,NTILE, plus window aggregates — see Window Functions CREATE/DROP VIEW,CREATE/DROP SEQUENCE,ALTER COLUMN,FOREIGN KEY(parsed),DEFAULTvalues,SAVEPOINT/ROLLBACK TO/RELEASE— see Views & SequencesRETURNING,ON CONFLICT DO UPDATE/DO NOTHING,FETCH FIRST N ROWS,LIMIT ALL,NULLS FIRST/LAST- 75+ new built-in functions:
COALESCE,NULLIF,GREATEST,LEAST,EXTRACT,BETWEEN,ILIKE,STRING_AGG,RANDOM,GEN_RANDOM_UUID,TO_NUMBER,CONCAT_WS,REGEXP_REPLACE,LPAD,RPAD,SPLIT_PART,INITCAP,MD5,TRANSLATE,DATE_TRUNC,TO_CHAR,DATE_PART,AGE,CLOCK_TIMESTAMP, and more - PostgreSQL type aliases:
BIGINT,INT,INT4,INT8,SMALLINT,SERIAL,BIGSERIAL,DOUBLE,REAL,FLOAT4,FLOAT8,NUMERIC,DECIMAL,TIMESTAMPTZ,DATE,BYTEA,JSONB
Performance
- Per-session SQL parse cache; cached engine catalog reused via
Clone; prefix-fingerprint read-set - Hash-aggregate path for unindexed
GROUP BY - vLog fast path for
MaxIOConcurrency==1; tbtreenodeAtrestructure;Mutex → RWMutexon the hot path - Commit buffer + cLog entry reuse; appendable cache refcounted
Operability and security
- Path-traversal protection in archive restore
- Session invalidation on user / permission changes
- Token files written with
0600 - Correct IPv6 handling in per-client metrics
MaxKeyLenraised from 512 → 1024 (configurable via--max-key-length)- gRPC bumped to
v1.79.3
Verification helpers (SQL)
immudb_state()— current database state and transaction hashimmudb_verify_row(table, id)— cryptographic row verificationimmudb_verify_tx(tx_num)— transaction verification with proofimmudb_history(key)— full key history
Known limitations
- Generated columns (
GENERATED ALWAYS AS) - Stored procedures / PL/pgSQL
- GIN / GiST indexes (B-tree only)
ARRAY,ENUM, composite types- Arithmetic inside aggregate functions (e.g.
SUM(a * b))
Full changelog: github.com/codenotary/immudb/releases/tag/v1.11.0.