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 1vzipJ-001Fnk-1u for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 22:11:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzipI-000zVn-0A for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 22:11:48 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vzipH-000zVe-2W for pgsql-hackers@lists.postgresql.org; Mon, 09 Mar 2026 22:11:48 +0000 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vzipG-00000001M9O-2LHW for pgsql-hackers@postgresql.org; Mon, 09 Mar 2026 22:11:47 +0000 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-4042905015cso4441722fac.0 for ; Mon, 09 Mar 2026 15:11:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773094306; cv=none; d=google.com; s=arc-20240605; b=OY93he7dm27rdISLLkojBe9Yv64EPWkcaEzAE7kFSFfQNGzjJX7/DXNPyW0UXX7rI+ m4MwGgqUGdnZsXOP9hbM3PRDB5cGVb/eaFqLsk8Ld9ZWgsNEfPSpKL5Qhq16R3GCKPZ/ q4SMk8rUuuezO/I613X44Fw1N29sQIxfeBQW1ks3qAGCfP7UKS92qwwNL+usPorQsA/q MpwZb72rj7mHAfjYCApyGSSOnu69FDQQUnskCLfWylHpVNz0wJInyj2QTPlG/IyZJPDW TxX0E8jHGs2W0JHsBQrkBb4AOpRRvrL06VImkwv3bjJvmXfcSYKAufq+IcIbsTjOL6nX Rdrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=p8Lse+98RQD1p2cA4ztEpvG5CzCjdNTWXaOG2LzdUiw=; fh=FIa6CnAOcDlblDMIqVQXhn30ONA1aoHzZ0tfczHgg8I=; b=C+aDnG8lTTZu/gAjThybKGvS1lfKaale4t0wcnBsMbg53q4mzyNC08zcxo72DQ13uq PlLMk0h5ojNY53e0+rJWwRGCgxc2LnAmJEVM1AOgiRCFqJBFHLu2YhGLm2LZdyNsbCna PZRkQFeXNK2C9ppLCIYvUmYSuN8EIee7zb3DPqvNeEaBCrsjZYh4weUGJ0hhK4phVWg0 MsMMNdzzTRJ8pDiGoIYXeB64zpDYj5MZzNeJaR7iqQCqq9rBYCNqHeIdssAA8RY6yNTG Q97Zp422k8H4RLG/ElOxAu5YZ0u2KrsLaB+boN9ROgjHWVKO/H09YtXWlLPO/xMZWAFO 0+aQ==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773094306; x=1773699106; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=p8Lse+98RQD1p2cA4ztEpvG5CzCjdNTWXaOG2LzdUiw=; b=WJkyQg5M03l0polVH1HmJ4JwC+bQgVNzBq/tDdu+0U0eHWwQcSpx79znNMPCQ/oMdG qw7nX84nwuY/T/quKLhb/BuXwinRzAvdCdPN0uvOOwItuL0WWWDeApLIc4kI0jLqsXQV dexUdh3h5N2YgOM+/nDZEy7aJO5QBuBgOcnVIoHAYhLb+C6Q/RU955kJHQJKArv3fkWo 7llxRcSnRydrdVnHz4+HKbT0HWObe79zAGHSehkpuWttjeq2j5tMUXLE6Kp3/3uhvD8o NQgfBFuOwnGjuZkutrwPcbSjEEzF5o/FXefDZYj8hDxd5aHgt3gn7JLWp+8y1G+oFf80 b7Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773094306; x=1773699106; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=p8Lse+98RQD1p2cA4ztEpvG5CzCjdNTWXaOG2LzdUiw=; b=LpHaE9s7MDy3L0zAhRV5EhTYi/edKqwu2VJ0pPqFjkNrjpYbmw4gHfro20vYEsmzHc hAFOBMroVJeXzdWGmTnqHnxkt6uWyA13lmXmGtYbzIfUuevdKUG3xBvGVfWskG7H4iJw qx74yPjAFuGj2notB9vOewYOSw/zbnVbcX/grEqcK6WB4cKCc+OZR2GuyQWD4JXZoqdy E42pevPR3b8H/VE8IWYhK7leGqEjf4I4GFblA9Dv8g40fm9yEeZxzv2rqv4Ig2Zm4yoi QAXVkCpTzBO54ac76KIAgOUJdFzCbjTiHxAe7LSRo2u6xZ0kd1eFtqODOH1cQ+6JkTvK 5P/w== X-Gm-Message-State: AOJu0YwLtQOCN1aMcBe9huHOV4pitlfPd2Dj0IsXAuV8JK6xPSvMclxv xgpdqZ8cj575SDtuSHC5tLldj3HIaTxzCBFuod79RdS+qBEuZq3Wxvwpg1MG3oheYuJlnke7XCT YPO1J2AmJX7vIS+dfyYSuUhrBtM++AMEMT+mJ X-Gm-Gg: ATEYQzxxAqFsDs6KBEoVRM5kJTUx/5x+UKASgy0to/GYWxDt9nJLes7mL72RaE2LiMR 2OZKf5xyNZ6A5d+fRwbc0dlUoCCLe9ZyvqXJ0Iry6M8atoW7McXE4ee+4JyKiDJNKVv7sx14y3P /jWAyahNBXLdRirGR+V44mzD0lG3gu0jEQIC+U5A0o0J1Nrhmy4fJVlg1jwbgpqUtJdtm27yj8e ZoRnm9nuj6NQBrdJBHMHdoecKR/U7je7Af8Y7O7UVP+O0pKXq/EUkWw5CuBVyHLZic+GhuJgCmI 7JLcig== X-Received: by 2002:a05:6870:6487:b0:417:5105:a734 with SMTP id 586e51a60fabf-4175105d470mr1168873fac.48.1773094305775; Mon, 09 Mar 2026 15:11:45 -0700 (PDT) MIME-Version: 1.0 From: shihao zhong Date: Mon, 9 Mar 2026 18:11:33 -0400 X-Gm-Features: AaiRm53jw0mCa8nxPdio5Eu_Z2ZBYEo2lggbCFmWzZzIl25st1d-zCiA-QnyCAE Message-ID: Subject: Add missing stats_reset column to pg_stat_database_conflicts view To: PostgreSQL-development Content-Type: multipart/mixed; boundary="0000000000003fd5a3064c9eb0d9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003fd5a3064c9eb0d9 Content-Type: text/plain; charset="UTF-8" Hi hackers, Currently, pg_stat_database and pg_stat_database_conflicts are decoupled into two separate views. However, there is an inconsistency: pg_stat_database_conflicts is missing the stats_reset column. Implementation wise, both views expose data from PgStat_StatDBEntry and share the same reset lifecycle when pg_stat_reset() is called. For now, users monitoring recovery conflicts have to get the reset time from pg_stat_database. I would like these two views to be purely decoupled to avoid such confusion. The attached patch adds pg_stat_get_db_stat_reset_time() to fix this inconsistency. Please let me know your thoughts. Thanks, Shihao --0000000000003fd5a3064c9eb0d9 Content-Type: application/octet-stream; name="pg_stat_database_conflict.patch" Content-Disposition: attachment; filename="pg_stat_database_conflict.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmjqjduz0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsCkBAIC0xMTA5LDcgKzExMDksOCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2RhdGFiYXNlX2Nv bmZsaWN0cyBBUwogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3Qo RC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90LAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29u ZmxpY3RfYnVmZmVycGluKEQub2lkKSBBUyBjb25mbF9idWZmZXJwaW4sCiAgICAgICAgICAgICBw Z19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBjb25mbF9k ZWFkbG9jaywKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90 KEQub2lkKSBBUyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QKKyAgICAgICAgICAgIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90KEQub2lkKSBBUyBjb25mbF9hY3RpdmVfbG9naWNh bHNsb3QsCisgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9zdGF0X3Jlc2V0X3RpbWUoRC5vaWQp IEFTIHN0YXRzX3Jlc2V0CiAgICAgRlJPTSBwZ19kYXRhYmFzZSBEOwogCiBDUkVBVEUgVklFVyBw Z19zdGF0X3VzZXJfZnVuY3Rpb25zIEFTCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xOTA0LDcgKzE5MDQsOCBAQCBwZ19zdGF0X2Rh dGFiYXNlX2NvbmZsaWN0c3wgU0VMRUNUIG9pZCBBUyBkYXRpZCwKICAgICBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9zbmFwc2hvdChvaWQpIEFTIGNvbmZsX3NuYXBzaG90LAogICAgIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihvaWQpIEFTIGNvbmZsX2J1ZmZlcnBpbiwKICAgICBw Z19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKG9pZCkgQVMgY29uZmxfZGVh ZGxvY2ssCi0gICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3Qob2lkKSBBUyBj b25mbF9hY3RpdmVfbG9naWNhbHNsb3QKKyAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dp Y2Fsc2xvdChvaWQpIEFTIGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCwKKyAgICBwZ19zdGF0X2dl dF9kYl9zdGF0X3Jlc2V0X3RpbWUob2lkKSBBUyBzdGF0c19yZXNldAogICAgRlJPTSBwZ19kYXRh YmFzZSBkOwogcGdfc3RhdF9nc3NhcGl8IFNFTEVDVCBwaWQsCiAgICAgZ3NzX2F1dGggQVMgZ3Nz X2F1dGhlbnRpY2F0ZWQsCgo= --0000000000003fd5a3064c9eb0d9--