Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vLerj-006HV6-0k for pgsql-bugs@arkaria.postgresql.org; Wed, 19 Nov 2025 09:52:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vLerh-00BuQ1-0Z for pgsql-bugs@arkaria.postgresql.org; Wed, 19 Nov 2025 09:52:41 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vLerg-00BuPs-2e for pgsql-bugs@lists.postgresql.org; Wed, 19 Nov 2025 09:52:41 +0000 Received: from lahtoruutu.iki.fi ([185.185.170.37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vLerf-000L2B-0A for pgsql-bugs@lists.postgresql.org; Wed, 19 Nov 2025 09:52:40 +0000 Received: from [10.0.2.15] (unknown [130.41.208.2]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4dBGxD599Cz49Q3q for ; Wed, 19 Nov 2025 11:52:32 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1763545953; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=R4pK4tU2ei4BZOjSuUXXeAdnV1XUmVVQ4hM1/y91db4=; b=tf75OOfnQYE1VUVfYGhOEUFbpQVqM+uEK407pDtX7dae8kzJ29Jm3Ci5Nm8O+z9JLApj50 qTtLCRWik1zispXYW7zmYv3lG39BU9ApPoDH5UP4at7JmcIcAkTaXqK8zHLFGgxspMpeGl wDCtHn/TpM2a2yNp//kBG3yq87v0cWTxGfehgE+5vR75nIgS64ZWAay+HukplHzJrZasTW uTQiSv6YBe4ghh4Uj/OANpk8U2OTzI1bp8PHkbuMDh5XX3hTs1eiXG5nAGEuxOu++hGp25 2dSjO7ZpEk5+Y/gL3vsqazt07beNXt9xANUWWazCE8sM11oLz4+TO3H5VCf9ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1763545953; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=R4pK4tU2ei4BZOjSuUXXeAdnV1XUmVVQ4hM1/y91db4=; b=AaMX0ULI/+39nfbeNAvdtwl27582Nwn4ehYFdUoDEQ7UtIuzrDDuHE78VyntMRjlqfUsyi X/jVZ+RvFGBm74GCjN9rDogz/pnATmsqTzZXjYHcu5EgPEpO1xmUo2wztu7ObEdYeTOrZw sJXino7MMirG/BRJL13nSkXklv4jBaH1uGu93gHQDjJI3CFzPh9Ci9hAJZMer8svMflsNF baD+VC38sjp3ncxT6U80dsCV8HX27V0XZJIYIPzMxybgddulXpkrvamdNHidEWhxzUu7zJ +1z4+R5QCViLyXGBY0Y4jszqDBlLmh61C9QxHt8qxBtEmk9GkqIibYrwqUqH3A== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Seal: i=1; a=rsa-sha256; d=iki.fi; s=lahtoruutu; cv=none; t=1763545953; b=VNfuSF1M5oe8agFE779TTKTfCEyd5yzJNFEZT0YAMlomm1HZh1/DGJwbv9FsieakjzRTCb FSuDICGU9GX+gAEFwRCa3PwnjmVpkFNi8zk0r1adlLZ+3Ik2FbokIl5XDpxCYUalc+hxKU H1M6oeCuVBLLiqYM8RulolUITP9DSSnnhegrdkhDGozCA6wv601XbGfDPmFU5YWDKfLy2e 5FlvDct2TSYNhr7Uzx5kaVWpQnMkbtIGEDxzEXZy4Ki6edoIieD0sSKYCTtSoLeyEvI/He iP086OD6gsqKZwprDrlYQYyVykF+LotwMMwxw42aOLOL72d/S3dBc9Bg0XqngQ== Content-Type: multipart/mixed; boundary="------------kO0561aOu9CcDpLDz8T2Elgq" Message-ID: <5461bc85-e684-4531-b4d2-d2e57ad18cba@iki.fi> Date: Wed, 19 Nov 2025 11:52:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Heikki Linnakangas Subject: pg_resetwal prints new OldestXID in wrong circumstances To: "pgsql-bugs@lists.postgresql.org" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------kO0561aOu9CcDpLDz8T2Elgq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit When the --oldest-transaction-id option is used, pg_resetwal doesn't print the new value like it does for other similar options. For example, if you use --next-oid and --oldest-transaction-id, only the new NextOID value is printed: > $ pg_resetwal --dry-run -D data --next-oid 10 --oldest-transaction-id 100 > Current pg_control values: > > ... > > Values to be changed: > > First log segment after reset: 000000010000000000000005 > NextOID: 10 Printing the new OldestXID value is incorrectly tied to whether the --next-transaction-id option is given, so this prints it, even though OldestXID is not being modified: > $ pg_resetwal --dry-run -D data --next-oid 10 --next-transaction-id 100 > Current pg_control values: > > ... > > > Values to be changed: > > First log segment after reset: 000000010000000000000005 > NextOID: 10 > NextXID: 100 > OldestXID: 744 > OldestXID's DB: 1 This seems to have been an oversight when the --oldest-transaction-id option was added (commit 74cf7d46a91d). Before that, OldestXID was reset when the --next-transaction-id option was given. Fix attached. Barring objections, I will commit and backpatch this. - Heikki --------------kO0561aOu9CcDpLDz8T2Elgq Content-Type: text/x-patch; charset=UTF-8; name="0001-Print-new-OldestXID-value-in-pg_resetwal-when-it-s-b.patch" Content-Disposition: attachment; filename*0="0001-Print-new-OldestXID-value-in-pg_resetwal-when-it-s-b.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0M2MwZDI2ODUyZjlmZDFiMGM3ZjBiMjc0YWNiNzJiYzY5ODU0MTRmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgMTkgTm92IDIwMjUgMTE6NDg6MzAgKzAyMDAK U3ViamVjdDogW1BBVENIIDEvMV0gUHJpbnQgbmV3IE9sZGVzdFhJRCB2YWx1ZSBpbiBwZ19y ZXNldHdhbCB3aGVuIGl0J3MgYmVpbmcKIGNoYW5nZWQKCkNvbW1pdCA3NGNmN2Q0NmE5MWQg YWRkZWQgdGhlIC0tb2xkZXN0LXRyYW5zYWN0aW9uLWlkIG9wdGlvbiB0bwpwZ19yZXNldHdh bCwgYnV0IGZvcmdvdCB0byB1cGRhdGUgdGhlIGNvZGUgdGhhdCBwcmludHMgYWxsIHRoZSBu ZXcKdmFsdWVzIHRoYXQgYXJlIGJlaW5nIHNldC4gRml4IHRoYXQuCgpEaXNjdXNzaW9uOiBY WFgKQmFja3BhdGNoLXRocm91Z2g6IDE0Ci0tLQogc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19y ZXNldHdhbC5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jIGIvc3JjL2Jp bi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jCmluZGV4IGEzMWU3NjQzY2YwLi44ZDVkOTgw NTI3OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jCisr KyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYwpAQCAtODM5LDYgKzgzOSwx MCBAQCBQcmludE5ld0NvbnRyb2xWYWx1ZXModm9pZCkKIAl7CiAJCXByaW50ZihfKCJOZXh0 WElEOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICV1XG4iKSwKIAkJCSAgIFhpZEZy b21GdWxsVHJhbnNhY3Rpb25JZChDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0WGlk KSk7CisJfQorCisJaWYgKHNldF9vbGRlc3RfeGlkICE9IDApCisJewogCQlwcmludGYoXygi T2xkZXN0WElEOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAldVxuIiksCiAJCQkgICBD b250cm9sRmlsZS5jaGVja1BvaW50Q29weS5vbGRlc3RYaWQpOwogCQlwcmludGYoXygiT2xk ZXN0WElEJ3MgREI6ICAgICAgICAgICAgICAgICAgICAgICAldVxuIiksCi0tIAoyLjQ3LjMK Cg== --------------kO0561aOu9CcDpLDz8T2Elgq--