Skip to content

Commit 868fe72

Browse files
committed
Merge branch 'release-2.2.0'
2 parents 9826c9f + 66ae12d commit 868fe72

30 files changed

Lines changed: 278 additions & 85 deletions

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ body:
3232
attributes:
3333
label: Version
3434
description: What version of pg_tde and Percona Server PostgreSQL are you running?
35-
placeholder: pg_tde 2.1, Percona Server for PostgreSQL 18.0
35+
placeholder: pg_tde 2.2, Percona Server for PostgreSQL 18.0
3636
validations:
3737
required: true
3838
- type: textarea

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
PGFILEDESC = "pg_tde access method"
22
MODULE_big = pg_tde
33
EXTENSION = pg_tde
4-
DATA = pg_tde--2.0--2.1.sql pg_tde--1.0--2.0.sql pg_tde--1.0.sql
4+
DATA = \
5+
pg_tde--1.0.sql \
6+
pg_tde--1.0--2.0.sql \
7+
pg_tde--2.0--2.1.sql \
8+
pg_tde--2.1--2.2.sql
59

610
TAP_TESTS = 1
711

documentation/_resource/overrides/main.html

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,32 @@
33
-#}
44
{% extends "base.html" %}
55

6+
{% block announce %}
7+
<div class="md-banner" style="text-align: center;">
8+
Where the open source database community meets:
9+
Use code <strong>PERCONA75</strong> and secure your spot for Percona Live.
10+
11+
<a
12+
class="breakdance-link button-atom button-atom--primary bde-button__button"
13+
href="https://perconalive.com/2026-usa/"
14+
target="_blank"
15+
data-type="url"
16+
style="
17+
padding: 5px 20px;
18+
display: inline-block;
19+
margin-left: 10px;
20+
background-color: #005ed6;
21+
border-radius: 999px;
22+
text-decoration: none;
23+
"
24+
>
25+
<span class="button-atom__text" style="font-size: 16px; color: #ffffff;">
26+
Register
27+
</span>
28+
</a>
29+
</div>
30+
{% endblock %}
31+
632
{% block scripts %}
733
<script src="https://cmp.osano.com/Azqe5vTyLOSbN3OuT/49ad85b5-0418-4794-ab81-7599dddd534c/osano.js"></script>
834
{{ super() }}

documentation/docs/css/extra.css

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,14 @@
6060
font-size: 0.6rem !important; /* smaller font */
6161
color: var(--md-typeset-a-color);
6262
}
63+
64+
/* Percona live announcement banner */
65+
66+
.md-banner {
67+
text-align: center;
68+
}
69+
70+
.md-banner,
71+
.md-banner * {
72+
font-family: "Poppins", sans-serif !important;
73+
}

documentation/docs/index/tde-limitations.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,6 @@ Limitations of `pg_tde` {{release}}:
4242
ERROR: 16 invalid pages among blocks 15..30 of relation "base/16384/16438"
4343
```
4444

45-
## `pg_upgrade` and encrypted relations
46-
47-
!!! danger "`pg_upgrade` is not supported with `pg_tde`"
48-
PostgreSQL clusters that use `pg_tde` cannot currently be upgraded using `pg_upgrade`.
49-
50-
The `pg_upgrade` tool does not properly handle the internal encryption keys used by `pg_tde`, which prevents the upgraded cluster from decrypting encrypted relations.
51-
5245
## `ALTER DATABASE ... SET TABLESPACE`
5346

5447
!!! warning "Changing a database tablespace has limited support with `pg_tde`"
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# pg_tde 2.2.0 ({{date.2_2_0}})
2+
3+
The `pg_tde` extension, provided by Percona, adds [Transparent Data Encryption (TDE)](../index/about-tde.md) to PostgreSQL and helps protect sensitive data at rest.
4+
5+
[Get Started](../install.md){.md-button}
6+
7+
## Release Highlights
8+
9+
`pg_tde` now supports 256-bit AES encryption and introduces [`pg_tde_upgrade`](../command-line-tools/pg-tde-upgrade.md), a utility that simplifies the upgrades of encrypted clusters. For more details, see the [Changelog](#changelog).
10+
11+
!!! warning
12+
`pg_tde` 2.2.0 is not compatible with Percona Distribution for PostgreSQL older than 17.10 or 18.4.
13+
14+
### Documentation updates
15+
16+
* The [Limitations of pg_tde](../index/tde-limitations.md) topic is updated to include a new section on known incompatibilities with Citus and TimescaleDB, and a clarification of the `ALTER DATABASE ... SET TABLESPACE` behavior, the command can be used but with restrictions when `pg_tde` is active.
17+
* The [Backup with WAL encryption enabled](../how-to/backup-wal-enabled.md) topic is updated with a clearer description of the key rotation limitation during backups.
18+
19+
## Known issues
20+
21+
* `pg_rewind` and `pg_tde_rewind`
22+
23+
Using `pg_rewind` or `pg_tde_rewind` between diverged nodes in clusters that use `pg_tde` may lead to corrupted tables or indexes due to internal encryption key differences between clusters.
24+
25+
Queries may fail with:
26+
27+
```bash
28+
ERROR: invalid page in block 0 of relation "base/..."
29+
```
30+
31+
This behavior is a known issue.
32+
33+
For more information, see [pg_tde limitations](../index/tde-limitations.md).
34+
35+
* The default `mlock` limit on Rocky Linux 8 for ARM64-based architectures equals the memory page size and is 64 Kb. This results in the child process with `pg_tde` failing to allocate another memory page because the max memory limit is reached by the parent process.
36+
37+
To prevent this, you can change the `mlock` limit to be at least twice the memory page size:
38+
39+
* temporarily for the current session using the `ulimit -l <value>` command.
40+
* set a new hard limit in the `/etc/security/limits.conf` file. To do so, you require the superuser privileges.
41+
42+
Adjust the limits with caution since it affects other processes running in your system.
43+
44+
## Changelog
45+
46+
Changes introduced in `pg_tde` 2.2.0:
47+
48+
### New Features
49+
50+
- [PG-1968](https://perconadev.atlassian.net/browse/PG-1968) - AES-256 encryption support, `pg_tde` now supports 256-bit AES encryption, providing stronger cryptographic protection for encrypted tablespaces.
51+
- [PG-2017](https://perconadev.atlassian.net/browse/PG-2017) - AES-256 compatibility for `pg_tde_resetwal`, the `pg_tde_resetwal` utility has been updated to work correctly with AES-256 encrypted data.
52+
- [PG-2018](https://perconadev.atlassian.net/browse/PG-2018) - AES-256 compatibility for `pg_tde_basebackup`, the `pg_tde_basebackup` utility now fully supports AES-256 encryption, ensuring consistent backup and restore behavior for databases using the new cipher.
53+
- [PG-2240](https://perconadev.atlassian.net/browse/PG-2240) - Introducing `pg_tde_upgrade`, a utility that automates the steps required to upgrade a `pg_tde`-enabled cluster, making the upgrade process more convenient.
54+
55+
### Improvements
56+
57+
- [PG-2278](https://perconadev.atlassian.net/browse/PG-2278) - Storage manager (SMGR) encryption has been optimized to reuse OpenSSL cipher contexts, reducing overhead and improving throughput for encrypted I/O operations.
58+
59+
### Bug Fixes
60+
61+
- [PG-2240](https://perconadev.atlassian.net/browse/PG-2240) - Fixed an issue where `pg_upgrade` would fail when run against databases containing encrypted data.
62+
- [PG-1895](https://perconadev.atlassian.net/browse/PG-1895) - Resolved a bug where performing WAL key rotation or SMGR key rotation during a `pg_basebackup` operation could prevent the secondary server from starting successfully.
63+
- [PG-2125](https://perconadev.atlassian.net/browse/PG-2125) - Fixed key creation failures that occurred when `pg_tde` was configured to use HashiCorp Vault via the KMIP protocol.

documentation/docs/release-notes/release-notes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ This page lists all release notes for `pg_tde`, organized by year and version. U
44

55
## 2026
66

7+
* [2.2.0](release-notes-v2.2.0.md) ({{date.2_2_0}})
78
* [2.1.2](release-notes-v2.1.2.md) ({{date.2_1_2}})
89
* [2.1.1](release-notes-v2.1.1.md) ({{date.2_1_1}})
910

documentation/mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ nav:
201201
- faq.md
202202
- "Release notes":
203203
- "Release notes index": release-notes/release-notes.md
204+
- "2.2.0": release-notes/release-notes-v2.2.0.md
204205
- "2.1.2": release-notes/release-notes-v2.1.2.md
205206
- "2.1.1": release-notes/release-notes-v2.1.1.md
206207
- "2025":

documentation/variables.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
#Variables used throughout the docs
22

3-
latestreleasenotes: 'release-notes-v2.1.2'
4-
tdeversion: '2.1.2'
5-
release: '2.1.2'
6-
pgversion17: '18.3'
7-
tdebranch: release-2.1.2
3+
latestreleasenotes: 'release-notes-v2.2.0'
4+
tdeversion: '2.2.0'
5+
release: '2.2.0'
6+
pgversion17: '18'
7+
tdebranch: release-2.2.0
88

99
date:
1010

11+
2_2_0: '2026-05-18'
1112
2_1_2: '2026-03-02'
1213
2_1_1: '2026-01-22'
1314
2_1: '2025-11-28'

expected/version.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
SELECT * FROM pg_get_loaded_modules() WHERE file_name IN ('pg_tde.so', 'pg_tde.dylib');
22
module_name | version | file_name
33
-------------+---------+-----------
4-
pg_tde | 2.1.2 | pg_tde.so
4+
pg_tde | 2.2.0 | pg_tde.so
55
(1 row)
66

77
CREATE EXTENSION pg_tde;
88
SELECT pg_tde_version();
99
pg_tde_version
1010
----------------
11-
pg_tde 2.1.2
11+
pg_tde 2.2.0
1212
(1 row)
1313

1414
DROP EXTENSION pg_tde;

0 commit comments

Comments
 (0)