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 1wNkhe-0012Cp-1i for pgsql-hackers@arkaria.postgresql.org; Fri, 15 May 2026 05:03:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wNkhb-00GNv8-2h for pgsql-hackers@arkaria.postgresql.org; Fri, 15 May 2026 05:03:11 +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 1wNkhb-00GNun-1R for pgsql-hackers@lists.postgresql.org; Fri, 15 May 2026 05:03:11 +0000 Received: from mail-japaneastazlp170110002.outbound.protection.outlook.com ([2a01:111:f403:c405::2] helo=TYVP286CU001.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wNkhY-00000000hAs-48gY for pgsql-hackers@postgresql.org; Fri, 15 May 2026 05:03:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KdO6Lbs8Y3/ploSJXyX5RHmE2NOuAyghCkaT4/LfKDIXEHQGBbJxqRtDno29At1HDfv0Gp0qud5Co+6hB6xw3iqG8VBK28X6OMnYwdSqTmj785kKnHmtoQFUlN4v0eSvs/hI0otWbFIW4IJn/Nga+IZUAH7zmNv5f1Brp6a0fOdksjq9apiMKQ2iWoMNhe2zcQQisr3KgA0RX36oLgJ3y63jtZGbEDrd3C4DnNMdJSFw5T7eQeRuU2uXhKIQY4eFMZ0q8R7eQEf9iHJi7p8Q9d/Penb9EW0WLNL1Vg4EbdSxUAha0LKsap6VDHnko4CBQjAQsnPgcisoAqUzDeGt6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9MH9LKQVtioxnkDcGRkzBpZkaXA+lsFiXwUSICiELEs=; b=Ik8lEDWccvhO1JyEe6zw2zOO+YCI7Dzfc9fmfKIoYXQHSo9XhAe7JBqW28pbw2fwTf9lIS0eGr4xS2XwInia8YD49tCFyANbSg884sK7V33pNuKth7KvROvorXcakMi0H9ErIMrds5hOG7tBdpXyX7FRjR1N8TPR5GxQyNIbJ7kdymgN364Eqt0zOxc/SA2ifb8fv0aOywHMeP8e6tqqQS7QRaseDNJhNGVMjTsX44g6cA3AKrSaEWXiuwHWXh9X0NDCeKQ+eA4pgs2Oof+t69+gvpR1wPYeWBpHo9xk8xejHYTQ5I6xwqPRnEeKEv8NQpPklV2uVhjN2NwalrnZjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sraoss.co.jp; dmarc=pass action=none header.from=sraoss.co.jp; dkim=pass header.d=sraoss.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sraoss.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9MH9LKQVtioxnkDcGRkzBpZkaXA+lsFiXwUSICiELEs=; b=Uzq8Gezmpzbjx6oord8PnFUIu3IN9GCViUEP3BppfrxwJwLZCAcFSM7XA6DnXVfYPwbhq33TvF/Iz4bVnlfo38ewlO4S0tJBREGm4kxe6pzBL30WLxakFJdkNxfqckZ5sC7TRXBdokA3yNknH6lIGPKPTPUz/ENqnzLEi5KVjOE5IQFnHE/Ymf5weUWsilPjSVi1yZ7+vSwJKUh1ipPsvcW5CpZAmpnbaFu9JZ4tZJHkTGJiA1tZktkmV4/WDHjReafxeHBvoP7NMIWsTnV6sm5TAO3/GSejX1STfQxwYUaBumUnXliFF3Pf6gAxZfIc61za1MP6KaeJyyIPBD3szA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=sraoss.co.jp; Received: from OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) by OS7P286MB6842.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:432::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May 2026 05:03:02 +0000 Received: from OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::406d:15ce:1e21:6f81]) by OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::406d:15ce:1e21:6f81%4]) with mapi id 15.21.0025.016; Fri, 15 May 2026 05:03:02 +0000 Date: Fri, 15 May 2026 14:03:02 +0900 From: Yugo Nagata To: Sami Imseih Cc: Zsolt Parragi , Michael Paquier , Pgsql Hackers Subject: Re: Track skipped tables during autovacuum and autoanalyze Message-Id: <20260515140302.5a532dfa246817a0b28854f7@sraoss.co.jp> In-Reply-To: References: <20260324151133.7940a5c1f2ebd594d54da481@sraoss.co.jp> <20260325012847.e026ba1860c07288efe3e97d@sraoss.co.jp> <20260326192203.e6dbb8d80f8d27dc15ceee59@sraoss.co.jp> <20260327163549.b5df519c0099970ddbb3412d@sraoss.co.jp> <20260328161802.f35b5a3e739566ffd7c1053b@sraoss.co.jp> <20260413170551.5ec43ba5a2c848f0d46c6a0b@sraoss.co.jp> <20260427203207.32aa6ca37f2a18a05508dfda@sraoss.co.jp> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-ClientProxiedBy: TY4P301CA0093.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:37a::11) To OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2160:EE_|OS7P286MB6842:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f12492d-5173-4e0b-2f6b-08deb23f3dfc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|376014|1800799024|18002099003|56012099003|22082099003|4143699003; X-Microsoft-Antispam-Message-Info: QBTRJ4aR0iaBDnhwfFtHwWLAjlcZjb7n+ihKK5FrxVVyVJ77QO6NLLbPfICuBwkGgxbI6Ek1gkQoqZsLty6/5KEdmw+ysbMvFNaZDKL/QS/wPnDFjPgVyYFHBT9VOaWtDt2PxELlTim4l/sNqQtDfW/VgDSQN2z8GFJCRMZZ8hMgzQDqFCt3CE5ZVHNwh4/xorblf/I2Ktw3XG3lfFXmznq91O8zOyTL9r5quOwKTNXPPBlqk7RukhmfFUgUO2kXq/V+iSXVQL/sjUoLQBJb58p4KCmO7pKCl/iHVMn/V1NYt/9PIuWmI+IruVO7eER1SAri9p0/xLsUAF04bqAtzktV7283cTTqRq4DFUOg+s/RbKjnMtPiOuqsXKk6wFGQdOriZw1gQYgvhLs+OckHPO/chgXW3MbGkcQ5YZ8GrG1Qh4IQzzzVVosWH+gHLapPLgSiwGxn7out3gyrhfmqilGNfwYsh/oPS4dFtnFsW3LD95hf1rQ9PggW8bHQdg9z3wmsRmtlmEAsA7z4gXX17omnz5HQdpF16SlU08JSeAafwpmmeScV92++cieWgr6pvmZWIeglI4WQgj3Sf3fRNS5h81hmx0QibojHsgr+prfUTjn2xLCilR5giU17Z4WmFnt2phGXmqiz70Nh1Ea0IC6sOYzxb4rL08uBMJop7RsIlcXm2g8MXGZQWLHQbOwX X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(10070799003)(376014)(1800799024)(18002099003)(56012099003)(22082099003)(4143699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hKclz6vTgxFci02fLI4dxv2BvaQETgvF5W0gh6jdmVtSlCj56fR3Uz9Osjlh?= =?us-ascii?Q?BYokHM9ts+zXkKApfA74vOQh0Wv+eIOHYxQoRSzHAZMT0w2tP5E0GK+EiTbk?= =?us-ascii?Q?AdMy6DYg/mkxX6ubzTjR/mqMw/WHdeAMtaQh2F2TAlgGHRI138cNVcrCS2N1?= =?us-ascii?Q?JXGNAehHvPkxJgFejGgJjSDSxx2zhG2rSBooTvXgpoDaVHQqAq0fZ8d6UiR9?= =?us-ascii?Q?tLxqT+Pk1SiMjQavYFZ+Clbje03J6r/t9/yLd/iA7fuQhOUtwNZXTlrJ21kp?= =?us-ascii?Q?dBjNLCshQe1ZF3iXT4ChWmNO0U80sz3+1lO7MOavuPXovbLpHU5B9xqAV39S?= =?us-ascii?Q?hp2+l3KOLNb+Rkkik0go5nN1+TGarQf54nRf1jfmejDc2aE5tMAxiIFT/go4?= =?us-ascii?Q?ZBlh76cqbvi3M7wRNQpyF1pFOmOgh5i3Hffz9bq0N0rgiTdFzb2we4bG+eq9?= =?us-ascii?Q?0WaNg8CFwM6+uIgnKp++exGAM8L+wDm/V8AJ5n3506b0rffrgnBqXx5NPQV+?= =?us-ascii?Q?uhACbxXgXHpfDLa8Bs2nbiQq2gqJ2nzU8o+pq+hD8McKY/kKm+chgRiNyglm?= =?us-ascii?Q?9SD3/NJB75PS+nbYAFhgJNKneUq4o33/fUtkgfpAT6D7tH84ni/f4rTvMB6w?= =?us-ascii?Q?108FflujO3v2kLBx3UjkzJStIMf65Z2or/jbn/Vxq2xufR/V5bXZBIqSuMWl?= =?us-ascii?Q?aU48sj+07bp0lOcwlhV0hJtf37NPVpYkp6sxKARv+XySyUehL/NzrpzgzsUw?= =?us-ascii?Q?tY4Bjdl5FXlOVqigjt+EISvl4xqrxmCql57Z3tQawhE0xiahwIz2Hk/D6l2y?= =?us-ascii?Q?YrHMZzgahmQU2Q4VEMKwjZ9UBxBK566KjBSH98efwpu/M1lNfzeyV892hZeX?= =?us-ascii?Q?kzdHXd8QsyQJFeJ6gYHO+Kw+DMzQpd6XWJMFlc6uehpEK3eUO1t9nf+tqTHE?= =?us-ascii?Q?Bgd8/IPLjHIJiPGBSxEO2nIHbBWuoxqF29Q7pohmMg0oaSNb+3OtVH3wdJQZ?= =?us-ascii?Q?w4/ausyaThbOspaIjfqfGOwh2+XAkOE8FdC22Sk/qH3yVb/NYTCoutrAjuVu?= =?us-ascii?Q?eZuC/Fb1qndF2LiFsT8Rvce7Q3COlEdgrqH4txa6xDN/16R8LqHxnxpfdOEl?= =?us-ascii?Q?hrDnS05HYhUkufXStqUuYpv+GgN0wapynJCv5JCkbDhqYYXnIbibCVCsfJ4/?= =?us-ascii?Q?cR2mB7tN7nZRogBMtpvPJY9szc2XkU4zXTl1b9AljcWV7NW1/Lqrax2fPF/N?= =?us-ascii?Q?HnWt0CKrw/1GC/1BjDIvXLkoIxNJr5ePYMJcw92gkPXht4g3pwzAvoOBBrEZ?= =?us-ascii?Q?6SgOsdpSIyGbbgiS1fkwf4axkHWYNsysW/+c0ODt322JfxVG5jROZ0GpIbNq?= =?us-ascii?Q?0SFzUx7HtisZSNyicMODq+nvfPCipRXtKW2gQeFJLaRt4QkMXNl0rqZCFdn0?= =?us-ascii?Q?HdbAEqHtdWqJpsVJJU0gZ0EqtYzm4GtYPY1DTtcUJXxv+qnrHA79ECQTqeCZ?= =?us-ascii?Q?y+ZQCQUNYzKNEERYzgYxHAU3EzXV/nMHww0yH0CUeIifkPU8JeIoKyCgg7TO?= =?us-ascii?Q?D++qvnqAbazKxjWJEcwl3P1oMfPiypbhWsJSQMfI0KwLC0JQwFnQH0FnYsbj?= =?us-ascii?Q?6W+lQ2q6uPxp2Y0Q832F9uDIwQSODfqLm/V7tU3LKcZW3lddGEd9bxSy4Xgf?= =?us-ascii?Q?e7qmi2ragTMvzi7ZG6l4a+Wwk44fFnCJdAMjr9BgzZBhELIZ2RCzO6SDpz2v?= =?us-ascii?Q?PFRys9rsvyqReaQP6ALhZy6K7cL7Q9IPACwnN2F9mTmGYs7NTz80CYPqL989?= X-MS-Exchange-AntiSpam-MessageData-1: A0wrzzQoaczpRg== X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 8f12492d-5173-4e0b-2f6b-08deb23f3dfc X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 05:03:02.7337 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 75db6c32-352e-4063-ae79-cafb8623f6db X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1ROWGetT7jat2Vl4CAJMWqGv9K0Um+BVs62HLhtP1dEmRdPKyUYghbLK/9vK0hTJLoYHvt5EW56E3rgnXsHUpQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB6842 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Thu, 14 May 2026 19:59:18 -0500 Sami Imseih wrote: > > Doesn't these also require a PGSTAT_FILE_FORMAT_ID change? > > right. that was missed. Fixed in the attached. Thank you for updating the patch. > > > There's also an asymmetric case for the skipped counters, is that intentional? > > > > | Command | `skipped_vacuum_count` | > > `skipped_analyze_count` | > > |-----------------------------------------|------------------------|-------------------------| > > | `VACUUM (FULL, ANALYZE, SKIP_LOCKED) t` | 0 | 1 > > | > > | `VACUUM (ANALYZE, SKIP_LOCKED) t` | 1 | 1 > > | > > | `VACUUM (FULL, SKIP_LOCKED) t` | 0 | 0 > > Yeah, this is because vacuum_count and last_vacuum also skip VACUUM FULL. > That was mentioned earlier in the thread. Right. > > > Initially, I was concerned that something might go wrong if a concurrent > > > session performed DROP TABLE or ALTER TABLE RENAME between RangeVarGetRelidExtended() > > > and RangeVarGetRelid(), but I could not find any actual issue. Even when the table > > > name is changed, the correct statistics entry is updated correctly. > > > > A DROP TABLE can cause a missed skip in statistics, which is > > reproducible with a custom injection point and tap test, see the > > attached patch. The race window is quite minimal, but it exists. > > If the table is dropped, there are no stats to update. right? In my analysis, even if the table is dropped or renamed just before calling RangeVarGetRelid() (at the injection point you added), RangeVarGetRelid() still returns the table's OID. So it seems possible that the statistics entry is updated locally, but it would be released shortly afterward and thus eventually becomes invisible. However, I'm not entirely sure whether this behavior is always guaranteed. Could anyone clarify this? Regards, Yugo Nagata -- Yugo Nagata