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.94.2) (envelope-from ) id 1uZg7m-006apV-JK for pgsql-hackers@arkaria.postgresql.org; Thu, 10 Jul 2025 01:30:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uZg7j-006Ip5-Vz for pgsql-hackers@arkaria.postgresql.org; Thu, 10 Jul 2025 01:30:56 +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.94.2) (envelope-from ) id 1uZg7j-006Iox-HJ for pgsql-hackers@lists.postgresql.org; Thu, 10 Jul 2025 01:30:56 +0000 Received: from mail-japaneastazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c405::1] helo=TY3P286CU002.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uZg7f-006l2g-2w for pgsql-hackers@postgresql.org; Thu, 10 Jul 2025 01:30:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AmYZ2QFId40+1pc3gWWWR6O0lywc1wJqlAcdQHdrOAwJ2nwDs5nqzL6g/d7HYueRjJxfFtLD+vMJYAoq7ypq1yOgF5F6PK10zn47TyTNTL1PM0JtEXBmGlJGoEJ2PxfotSAG+76wL0tqdGlOThubHGZV8Pr54VSB3ov64GU8lb9NkySS+RADxGQgPR4i7tFbChwf/D6VOPPKTyLqAmAUmClHWx+9Qir8vCcY0livbQZoWPAgn4idjpW4FQwdL0HlQKerU4fcwup5RxV90o3b6PafG99HmZIDWDJI5uvHcobL9O7AanGXdOVeD8hgQxxGY53xPgD16x44327Na89EVA== 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=ClECVIb3KEVV76sWjSXgoQwWPX82yV2KjsWUe9awmSI=; b=Dbs70OJXs1RUFvej3nqTn7aaDKmxSo1ArcQ62YId9NT+JcODVR4nZStB8VKkERqM/gARb8lMJqUtmcDO3RZnvINMzriHS7tPz3cs8Zz5JS02NiGgOVDt5I8yEF0rx+BGA3H0Tde+NljRp6ez2nlyrdEkVpxS4/h8UmbuAOKukA9OhThWpWDtYrRFJIKI/Fz9c/ddemWseY2Hn4zsSuZBTtily4VCpaCfMChi/QkJGLLgv48tFP0Sbh6Ap63XxL1nBA0cQJl3sG0ujAFaZu8ZC/0/FS23S/D7QcXfciRlgpkuX0e5gd8OtMilSO9+5F0L3M9HUm+nYrl1NItIacV0dg== 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=ClECVIb3KEVV76sWjSXgoQwWPX82yV2KjsWUe9awmSI=; b=rRZvqN93zBkarRcAxJuX9WLb6pcJSkrxfml7qCQbDZtSEuDp4Q1gAN0ASNRGaOcEwtDf21k2te5YuWExHdpVUuwyAFLObmE21lbSvvsqzF3Cm/3t5oJ9/oZ9KkHczU5IEPJ55I2vWVETCxj6b0W1WiaLCcNXISxsNihkSImXpstjlJ3TGXfDrws+G7p55WNVG/UhMUnj8kEb/Agy0jo6wHKZLy17kYo9wLixKQP+Em+vO/zyIKSdEwmeMdXzD9OjhRo0DNqW27dL8ene1FG2T44tn+3wQ00exPPY9zzktEw0GYW9DzWNP1UZ/d9TBGyP5qq0VSWM6r/T8CBl1iZW4A== 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 TY4P286MB6294.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:332::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.22; Thu, 10 Jul 2025 01:30:42 +0000 Received: from OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::a4f:22fd:288:2dcb]) by OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::a4f:22fd:288:2dcb%5]) with mapi id 15.20.8922.017; Thu, 10 Jul 2025 01:30:42 +0000 Date: Thu, 10 Jul 2025 10:30:41 +0900 From: Yugo Nagata To: Fujii Masao Cc: Laurenz Albe , Nathan Bossart , Tom Lane , Subject: Re: Extend ALTER DEFAULT PRIVILEGES for large objects Message-Id: <20250710103041.f93be994017e4ab61b9b9c35@sraoss.co.jp> In-Reply-To: References: <20240424115242.236b499b2bed5b7a27f7a418@sraoss.co.jp> <3602391.1713930458@sss.pgh.pa.us> <20240424210839.GA863220@nathanxps13> <20240426175406.13e47ea3904de814afbfe496@sraoss.co.jp> <20240913161801.b1e60534d77fa9df447b775f@sraoss.co.jp> <9c0c4d7881d2450baf70edb0ae95415a81ac8cb1.camel@cybertec.at> <20250123192220.9bad2b9aec110bf335521276@sraoss.co.jp> <20250403230418.f41b23d155f6c6cb3cebcd92@sraoss.co.jp> <20250408122857.b2b06dde4e6a08290af02336@sraoss.co.jp> <20250611114937.b067c542192f8e5e740a2a4a@sraoss.co.jp> <20250611135737.bb7d3135141248819704ebca@sraoss.co.jp> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Content-Type: multipart/mixed; boundary="Multipart=_Thu__10_Jul_2025_10_30_41_+0900_+vbMe+39TnIY2O7J" X-ClientProxiedBy: TY2PR02CA0038.apcprd02.prod.outlook.com (2603:1096:404:a6::26) To OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2160:EE_|TY4P286MB6294:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a4884b7-04f3-4e42-1582-08ddbf516258 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|4053099003|4013099003|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Bo5zKH5Sl4OWZAr3KP8a3HfPGP0qBxQpiEEGh++KcDvK3t+MKSZEPrwG6FeD?= =?us-ascii?Q?VTpeNgFdq5K0/S1JDYA8GCGbAXy1GqwQj+GVmkk9WAavxtqFj8kSg5p9eHJI?= =?us-ascii?Q?ZCMeqqONvn41u+u7U0GIJURUK70pV65jV07G5lsVUuZZwzxspbl+kqnwXKui?= =?us-ascii?Q?vLCZsYVNw+En6iemb7KQ1N59qbAAp97kejxY4jMOpD13icv41ZPV9e7u5+k8?= =?us-ascii?Q?BGlJL4bUJcRL9rh5i5whdcx8db6SQNll32Fdy/STYCaCno3t3OCcZ3LGpltO?= =?us-ascii?Q?ERmCnNxsAytWTAoLe/olFt6MS7+LpPQSaSAs3bzKdMn9DnyULUWpvJnLOHQ/?= =?us-ascii?Q?ZxRnFhu2+WJQGQBNP7xVgjmXQPGHH4davVwxl38CXQovudrtrE38lHivvdfM?= =?us-ascii?Q?3d5uRGCYBoR/ZEYMiR9VqUhrEbgv5fCvddeGlr6c1mCLo+HtGVCtipEGN/4n?= =?us-ascii?Q?bpHyQHyS9NWhzHfksvogiXrBtpif1tqv7/vaUuC/+NArwyeUzMz8GMqg9jSt?= =?us-ascii?Q?4J8zfUmvBdAdsEgXiZGKYcuCEOcJbBXnczyWBNC8DsdeLS+LtAizJp3fM3Zv?= =?us-ascii?Q?eROFVG4yX9TCPngHSeHl30PKY+qEmE4BbjW5y5+jgPCT5ac7+Pt+MWLbjrnT?= =?us-ascii?Q?unRCavAiqt3vOWaMg223Yc+9ZG8aCUwr7yec7o2rTKbVKW1ZyrKFdpi/PPae?= =?us-ascii?Q?NXW3NbgJ8BxUE0q6tdHy9a4+QrKceVFkdJ3ZPxpt3pZ/b1XWem8ZS5q1CmDo?= =?us-ascii?Q?H3qIcF9lvCohSkIYcEnQlCniqsk7Lq7HpkjLe1KhOuxr5ibNIAVkr7opVsDL?= =?us-ascii?Q?+NTQMVA1utZt+DW/mnmNNfKjX/Mf7mkOd3MTDaRzbAkrm7f7zWml+wLdoY92?= =?us-ascii?Q?ii96nLn/l9a+VJ2Mtv+rOp1u+jiZ65jSlT/QRs1Uz2daQydbBEDPhx2HRhDT?= =?us-ascii?Q?ofhTukRO9AB78BhEyOB8syLPFOLvsPUx1vPjyIDigtDJCBYamsHCXFzYUrKl?= =?us-ascii?Q?ppodXn2XcxO5jZyVxZztqgic42msQbkBYin5FTEThaduBGd+mtmYiD3vPriJ?= =?us-ascii?Q?iYBSoEyYx5/8bZ5MOwy8xGUFD3jFhGtQTAYCWIL1gIIM9EYsWPFN5LmO6P6D?= =?us-ascii?Q?D9XL9eVNKsAfzGBxJmvumPTADlfgB407sgsKSoswZ1qsuk76GBFxVVz4NHVQ?= =?us-ascii?Q?Lnz2Lf2DeKVNE1E2xU1zCNVVx/Cie0xxpOA7Eoj1G6ouLDyag+WeDbVfg+lw?= =?us-ascii?Q?IZY29UnQiRBfnBZUEkWfiK9qtFFhvuM8heNKABptGwpFrpO1n8+QwTA6Zzwd?= =?us-ascii?Q?3qBDbjJ0bQmdsLpiBsqvErkwDvlOS3nARoZFV6TmA0Kjg0PkqxtN++CC0VHA?= =?us-ascii?Q?W9Wfyz4RzZdo3T7DZR3h4Cd51xuy?= 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)(1800799024)(366016)(376014)(4053099003)(4013099003)(7053199007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fsoXn0ojTe3zzpvvf5gAP2pULAQa2QimL5NtSmVdb4eqwsI0JW2nuZwS8/vc?= =?us-ascii?Q?EtYKfWXYz05fhh11WNYcZ7g2mRW8KKH10jd5xQ/A2t72iDOiwp4cWmz7Zgwg?= =?us-ascii?Q?BKWdI/CrSjCQdX/o0snIrz7Ztr7WHJvJJ+wpWALqwR/5TdH8ih2mc/2BM773?= =?us-ascii?Q?pUDtpJf+CQwKC76fSUc/mlwdcj3yjK5UN/X9XWrlww1jK/RzPXYM5ei3dOaa?= =?us-ascii?Q?pEKCwZHVjrX6Dp/IaKIXmxGNP8Js9ze2bauHVmvP0WGaxEKG3LdF+HUMLgo/?= =?us-ascii?Q?/8Zpfvy5mBZsfflPibSBr/+q9Jo07Y4WG6wmeGn6Ia5N4eT6f4wtafhox1GV?= =?us-ascii?Q?jbWSDF6bYyHC/O4EdYphIPV7LVdkeZKejRBQG6gHTXRf/7y7yvJ+X/ZFjZdr?= =?us-ascii?Q?hg1xwj/SxfoMMRVQCoh48FDySh9PQAt5OS513/n/+dpzWS+8ej5xlZRnPxky?= =?us-ascii?Q?A6qBGS7oTXGWDhlMnK5okpKdPvyR+UqmNPqfL/cAyRBGgEnC3y/ir1m5M5ln?= =?us-ascii?Q?q2UzXsvNbD6+5gySUw3/zJBX4owZtfOZfmBX2ITQoBn/1EcB5nARUreO8AS4?= =?us-ascii?Q?KYaD7WtPaMU4DOHC6vjF64XFj2yljLdwmbS+dkNE8K5W/W/0Oeo/71faxhFr?= =?us-ascii?Q?MhYrA/VKePRuFjCKlTjLsU+DBC9VZhr5Zf2HwFKd8OgpzJcv0JNFdUcUz78b?= =?us-ascii?Q?aXpsN2zPFK7DiY47wPmniUv5XprvNJOb0CBgFJ0zqVRll/k6gTErXEyG3UO6?= =?us-ascii?Q?NbBb5BI100Zp9GoUo5SbTzm8BG04wAwHCaVTG1lYkIm5sLVCMo8B8Uu0c31u?= =?us-ascii?Q?46vJdKidbZrkHims54PHNwV8jONTQZ7PGkt2fJPkg5CicQlHqAUrFSAH2Ubt?= =?us-ascii?Q?ZTx0ZSshvr3/KLUpbx3lF+uxPKm5/Emf56SEyRwb1tJfg5ODrVWBecatoCrR?= =?us-ascii?Q?W/yH4OcDrN7hkJTBy5UuyVYHyM+YkqRCPhjY7mKBm+CGzaalZKgQsNiC4btn?= =?us-ascii?Q?fdKL77WKqYZ6AZLiRKeTp1EGHyl128yo+4JJzj7DXVPukSJy7ih84yVQ00u8?= =?us-ascii?Q?7dlHtHHGzSDQatOXrPRaMTCJPA8Nv2sgMe+7GPlgR30JMymRd7g4lm+wOsfv?= =?us-ascii?Q?PzPNggMdTZ0dEXFsYNsZq3Kb7zh7MGe6xM3mZzGgM2DLUewvnWdsGYWq9226?= =?us-ascii?Q?hSu1WNwa55u9bgVQnBQ/XQowafSQXRBnaxTJmFYKbHTEpHlmE1geLSYaORPd?= =?us-ascii?Q?uNFR22ycIaePZqg+1cpYLaa+Q0NRQd3GTPTD3NguFlkVcGKJ5PXNfwCNspJL?= =?us-ascii?Q?9cfmPANxOojP5g8RTYEaAnKTxBRcSSyhxgydBhHRtLtr9jmFhIkXo1SOidCR?= =?us-ascii?Q?jHSqAxRNcHcXabO0dBb7DLiMlWEWWnaD4/4Ih9w2cvERCqx7xtjmIAfNwjXg?= =?us-ascii?Q?SgLEEdfK51qU6m9NzfIYngr73UyhqVGEFNxQfzfH3XaDI70UPjlqzamVd2K1?= =?us-ascii?Q?X6KN7np45udoaE7aw8F4Ww/hwrXmXBepoFIN8fPvsMhiA+R5sHBuL9p5qLRs?= =?us-ascii?Q?KVOfVqreXGAw+OGGtcQ5JXRnyFW8uC74ii489mPo?= X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 9a4884b7-04f3-4e42-1582-08ddbf516258 X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2025 01:30:42.2252 (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: 3mOPRB1s7eWjeLM8sh85wW0TlRDp638mJvRYTyggQyPs9s/u3ioeHw/zosNMj3F6CcHB/eBBbPURSaKw2BRX9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB6294 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --Multipart=_Thu__10_Jul_2025_10_30_41_+0900_+vbMe+39TnIY2O7J Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Wed, 9 Jul 2025 20:42:42 +0900 Fujii Masao wrote: > > > On 2025/06/11 13:57, Yugo Nagata wrote: > > On Wed, 11 Jun 2025 13:33:07 +0900 > > Fujii Masao wrote: > > > >> > >> > >> On 2025/06/11 11:49, Yugo Nagata wrote: > >>> While looking at the thread [1], I've remembered this thread. > >>> The patches in this thread are partially v18-related, but include > >>> enhancement or fixes for existing feature, so should they be postponed > >>> to v19, or should be separated properly to v18 part and other? > >>> > >>> [1] https://www.postgresql.org/message-id/70372bdd-4399-4d5b-ab4f-6d4487a4911a%40oss.nttdata.com > >> > >> I see these patches more as enhancements to psql tab-completion, > >> rather than fixes for clear oversights in the original commit. > >> > >> For example, if tab-completion for ALTER DEFAULT PRIVILEGES had > >> completely missed LARGE OBJECTS, that would be an obvious oversight. > >> But these patches go beyond that kind of issue. > >> > >> That said, if others think it's appropriate to include them in v18 > >> for consistency or completeness, I'm fine with that. > >> > >> Regarding the 0002 patch: > >> > >> - else if (Matches("GRANT", MatchAnyN, "ON", MatchAny, MatchAny)) > >> - COMPLETE_WITH("TO"); > >> - else if (Matches("REVOKE", MatchAnyN, "ON", MatchAny, MatchAny)) > >> - COMPLETE_WITH("FROM"); > >> + else if (Matches("GRANT/REVOKE", MatchAnyN, "ON", MatchAny, MatchAny)) > >> + { > >> + if (TailMatches("FOREIGN", "SERVER")) > >> + COMPLETE_WITH_QUERY(Query_for_list_of_servers); > >> + else if (!TailMatches("LARGE", "OBJECT")) > >> + { > >> + if (Matches("GRANT", MatchAnyN, "ON", MatchAny, MatchAny)) > >> + COMPLETE_WITH("TO"); > >> + else > >> + COMPLETE_WITH("FROM"); > >> + } > >> + } > >> > >> Wouldn't this change break the case where "GRANT ... ON TABLE ... " > >> is supposed to complete with "TO"? > > > > Sorry, I made a stupid mistake. > > > >> + else if (Matches("GRANT/REVOKE", MatchAnyN, "ON", MatchAny, MatchAny)) > > > > This should be "GRANT|REVOKE". > > > > I've attached update patches. (There is no change on 0001.) > > Thanks for updating the patch! At first I've pushed the 0001 patch. > > As for the 0002 patch: > > + if (TailMatches("FOREIGN", "SERVER")) > + COMPLETE_WITH_QUERY(Query_for_list_of_servers); > > This part seems not needed, since we already have the following tab-completion code: > > /* FOREIGN SERVER */ > else if (TailMatches("FOREIGN", "SERVER")) > COMPLETE_WITH_QUERY(Query_for_list_of_servers); > > Thought? You're right. I must have overlooked something. I think I saw "TO" being suggested after "FOREIGN SERVER" when no foreign servers were defined. The attached patch still prevents "TO/FROM" from being suggested after "FOREIGN SERVER" in such cases. But perhaps this corner case doesn't really need to be handled? Regards, Yugo Nagata -- Yugo Nagata --Multipart=_Thu__10_Jul_2025_10_30_41_+0900_+vbMe+39TnIY2O7J Content-Type: text/x-diff; name="v3-0001-psql-Some-improvement-of-tab-completion-for-GRANT.patch" Content-Disposition: attachment; filename="v3-0001-psql-Some-improvement-of-tab-completion-for-GRANT.patch" Content-Transfer-Encoding: 7bit