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 1sXF2y-002eiy-Fv for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Jul 2024 07:07:24 +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 1sXF2w-0076YV-Vo for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Jul 2024 07:07:22 +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 1sXF2w-0076YN-Ho for pgsql-hackers@lists.postgresql.org; Fri, 26 Jul 2024 07:07:22 +0000 Received: from mail-japanwestazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c406::1] helo=OS0P286CU011.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sXF2u-001WvR-Be for pgsql-hackers@postgresql.org; Fri, 26 Jul 2024 07:07:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wc87be/xXHHcu7jyOgdDPBdBd12N9eHrAFUixEUjvwRhHt1e86REzOMggGmnCi7wHwXQkbFwUtcUB/kJ5yJPWiPx8Zadg2r7SYY8BnS6hBQ1xLkvt0prJnsQJCRgJ7G3g5VnA5s90o87qs6EorOXrS0yuE9T2ULqu6EarJ6Q9V2J/OPcDhgPehgh0yxg5yCnE/B/CFtacFsMsA9Db3/rpXUwScl7Pq1+Trr0ZS2GT2QfgEdvy3UfM5Go7a6Q6JFkNdWxUKwHEofgX5Rcdy8n4tqHt55z/2oonrxK/NdnCyEPNcjEBb1SpAhA/vjGqAEFLxqdbc4n7mtAK8HVmeRonw== 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=5K+BbjJEORvGoCpZaJkUibBCYVoN5qCoCZKLhBSEJNY=; b=GkOazw4Mwp/J+0svauT/zMMAa0ij2OQA17vsbviXxwkcfKDhbvyXlYxKnhqNTgsAF6YKTgtvA0EHoTT/O50tTdrFyPvLEJPFeM1h2AIY4ROD0NAR5uEplQtTbi/3VbSdnafcv4hGWCodcN9tOWddsKDCpzuH/ypmKy4NLyE2VpPs0wTLnexcDe1Wzcil4OGjMoVWLiBUKqTqP/LZccC6WDSeU1EBsRbmV3/y4+oYuwb2nHJ9mw16c5usPCos12mXSbsJn6HgDdh32npfOjbTDQP/WRtiCZ7f0lj6ZsIGPdSs2v1OW3XkD8/hbt5+qPT5PyriCU7XflQAw1MN8587Lg== 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=5K+BbjJEORvGoCpZaJkUibBCYVoN5qCoCZKLhBSEJNY=; b=YDhMqwsfQlT2cQQy+tKLPyAuaQ+fVXK7nh2jWlf16GqYUhWSSjKyytmiAHxlMHBySdv1OL0QOzf62kcASczae+lQnnphr6NDyfhewVFRqQWQL/MZu0/cYC611nB+WQOMFOAF6HE/gB7u6sDSpJSj6lKIGKgOAXvGDpbt9XnUDnOak7zJ6rax9HvKEABPWKFHKp0WEfPd5Z4Mf0cc1+YBXVHnld324sLGE8OIAzMox5QgFAag3TbrBMgrahN1rVz1ijmkS0mzSQ2z9NExGXzKkMgd6vP3zlweoL/3F/8rD8fgLtmxbElxTiAr5lXM+J/tqgE5n/uODmBlU0MXVCcuCw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=sraoss.co.jp; Received: from TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8026::10) by TYRP286MB4915.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:13c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Fri, 26 Jul 2024 07:07:14 +0000 Received: from TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM ([fe80::42e3:e942:b68d:dfac]) by TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM ([fe80::42e3:e942:b68d:dfac%4]) with mapi id 15.20.7784.020; Fri, 26 Jul 2024 07:07:14 +0000 Date: Fri, 26 Jul 2024 16:07:14 +0900 From: Yugo Nagata To: pgsql-hackers@postgresql.org Subject: EphemeralNamedRelation and materialized view Message-Id: <20240726160714.e74d0db579f2c017e1ca0b7e@sraoss.co.jp> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Content-Type: multipart/mixed; boundary="Multipart=_Fri__26_Jul_2024_16_07_14_+0900_nNG3cwxTyTVMvGey" X-ClientProxiedBy: TYCP286CA0286.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c8::18) To TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8026::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYBP286MB0111:EE_|TYRP286MB4915:EE_ X-MS-Office365-Filtering-Correlation-Id: 123ff4b0-fdf5-4d96-2c55-08dcad4193cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?X90OtFIaQAnVvGel6iSUpQGqzlk+E7jglom2ggySjmGyKg28HsqzXvxZ/N26?= =?us-ascii?Q?jVzHc3JXw+qmHr2/LGu/DpxZCh0xAH09VLlMnWLi/h5MrUPr3nxusPokaQCz?= =?us-ascii?Q?ecpxAsMIW1F+ksWnWWtWOOGzlKt4lqKcsfUX/WeO4C96GzGL76zUtork0xg2?= =?us-ascii?Q?9643Rtn0fDzK+zSXuvKSl0qLc90QXF3E8KlA+NI6HeOmRXZxRwpKVM9n8mHA?= =?us-ascii?Q?kxFwWS6LCJzsRWCeWTRNvwENW2wVeOK+CFPrpv0chhIxviYB1x9cbWTgc7d6?= =?us-ascii?Q?zzZhwQFa6rvk/EEU65a1ji9ig/HBveE+RA4mATK2MrTfK2LsNppHUitwfo61?= =?us-ascii?Q?6gnQo3mKYUWV38nJSTD6QoQVfxF60zHvXlKV8mj65Vk+tw8KNYi5h3msPuIM?= =?us-ascii?Q?6zsOo4LD/oUE+Ptg23FruFA56EWUi+PN4zIitSJezVy8KLYKGcg9XAJn5IbW?= =?us-ascii?Q?SBBFaumb46q1ZIwFmYXV7K7B9jnQ5V0ar/RSKgJGy7rs3dPX+RS/zZHBOle4?= =?us-ascii?Q?KhoDR0QvjTvBMibqyAnb+A+P5Cdh52IPUH4HOlWh8AGnyIXrX6IAsSlOq42B?= =?us-ascii?Q?dLoQvzJiImC1xyd1vqeccLfEsEnyOPZVA8FKKrWAtnsmjBjYOKG+Q4xBHqd9?= =?us-ascii?Q?HjI1/EORMFv5TCDWR8l+SsEHLbkfLC3U9z13dT96dQZPgL2pl6V6EF5el4N+?= =?us-ascii?Q?nNUzzsWcTYYdoGD4neAhDpacE7PFW2mEqXPUuovblM9zUui5DdyJysO9303B?= =?us-ascii?Q?Tslj7XHrNiPKz64p2hSaUP5dcakVeakJpuQHf243vTvL0BF7B4SKTgMrBmqq?= =?us-ascii?Q?1fy86XKxYPcHrTvU0pQvIeJLq5om8xRfYKtLj1DgYRxyqewcgKzCzmg4/YN9?= =?us-ascii?Q?kFCFv2EU++zTwztsA8xE6S68/ydXLm4SmhHR7hrHOL2xTKWQ0YzB5/fQrOXb?= =?us-ascii?Q?22iVJSVEk7gD6Xm2bdfSyDjcYdRGxMHI5wgQQKs1boKzAqXepArMuhuBNbzV?= =?us-ascii?Q?YLcJhqKcgKJRKIAkFo0xCJJYSq1KPzYXmbTUorfey3IHIBfG3KDVniW0wODk?= =?us-ascii?Q?prgYACDNkkhOpzqoo9I5KPrLBQq+1FvmQ2AnUjRUEAW78uNDM1Nz8CdRedWB?= =?us-ascii?Q?u8hNRzS3yMxNZPH0VOhOCAmrP+y8qdRNypLFzjzvSlPbuyNhzMRgwxTZMOqD?= =?us-ascii?Q?t4nEn9vB9fWReb2QbRFO/2eyJpyhidUBVi09uVNqAYMkYM0GrGgXry+8OkqS?= =?us-ascii?Q?yI8RQFB8L9+dPKdZtuTZTLeQDq/UkMY5KmeyAg+XAxAMbo7XPywfNw6rM71u?= =?us-ascii?Q?35J1gHaobOVbdH9PITNhwf4WRa7xMhSPJOphJ2FBmrlXWg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Lec4AtAIsGJgzYfcUggcK1pqR4kJoAgBz/IeetNoFCfYjjWKY0ztzL6UtAGG?= =?us-ascii?Q?YjxfGE5nJ/k/fq9i7R78QoUsbNWr1Xtz8M6EW+W2KOl87HUOP+C5NGc8OFYv?= =?us-ascii?Q?REo15KUzphzY9/YVVrwHiFrYIOkXZaHOVUyKz3PQd+vntXg91T3mwwqyA/6f?= =?us-ascii?Q?Ff6rWrHsOfuD44NIdWF/9DyB5cjRrLy1BC+1MLrZT22j/6uPk/DrbtY8D0qj?= =?us-ascii?Q?/qMzBS752woSH1ZrPps/izL4SeM50H/uf4p+4mK4gcCa0dqrDyMnHJ58u2ap?= =?us-ascii?Q?AoDnrmcT9uPMxabMeiz5/qxWB70e2kZsMlncG1i0cEgSpkKnxSIGqZ5RCKvW?= =?us-ascii?Q?M1FwDM3TM/AvN6yXS5OGP/Q8BO/6dhjHtUkcb9tZHEtCxTPhp8DzYQ2s+Zw5?= =?us-ascii?Q?SCxdPzjkZNJgV4Va2KOoREZhUIBmNJeIVRHcl2a3mUFOn2D3KwLMwjfURYKG?= =?us-ascii?Q?bX6guYIdK0MRrpAKWvZN1gUj9KdNr32HU3VDsdsX7Ck8LLXkp/l/1y0bye/N?= =?us-ascii?Q?LyQNOJ/JI6iX1DWP7PuSie7DM1CXHsJCxT5vi5sBwNiO4yc0XkH3R4lZAEz4?= =?us-ascii?Q?fwwcOsLbB1+opw9szUT0h+kTFD41Npwn/Ur2TupPsMd85SrCemN9/Cgk/rW2?= =?us-ascii?Q?u1bb5NRBfmLOVm/7j80qDwTYo1aCtbMmLTzlClmQ7MK80dTORjDDRFlYRJa/?= =?us-ascii?Q?FpdtcCxs9vMyUCv5u5aoiOPmLf+bQUPrS4Walpog+tX9SaQ6tII5PV5fxgzH?= =?us-ascii?Q?Clb3qHvAB2MuK7rXmTMPn8DVj9ZIrk69WEtD/gRELefSnR7WCYSYkRqY/rYG?= =?us-ascii?Q?KbKTXWql64bqvmrE3EqHBfIIZkCmWL3XESOCAGg1P3bjBWzNd3DHHCPCe3gL?= =?us-ascii?Q?v7YM0xKSCa3Ung/EOljVvmp4vuTj4lXFPR9HJQMYUqtRJfrvZxQoxLJ1Ibz0?= =?us-ascii?Q?ZOCXBERozvTQ8yQBSO74Z1feFwvd9AaneCj+vYNHcHgpX++A1betPjjjakoR?= =?us-ascii?Q?NxVcAd/FBjvCi3Fl/z4okhKB8kXLmLviMpC3gk0zpOGNNlfNkB5/lw3aSQE7?= =?us-ascii?Q?VAP3AuPwuaGL8oa2oLlLRTmrZ3HHMjxBiFPA6zy7n2S46Bdy6Ko6lV7J+h/p?= =?us-ascii?Q?7QaxWBS9d0KN3T3aNPB4W9lYwhsUirrC+2JPFxj8bongFR9lVcwANfbNpvNI?= =?us-ascii?Q?f4wyGVDHFMVi+znxlXVMkkNEsOfBwAHGhaLD9ScFFU/2o3u74IyacezXFhrF?= =?us-ascii?Q?xgIsnvx+ZJ5NGvISs7APk10224n6hIhb0MYFwqs6brMscEt0z8+Ks0CNF8a0?= =?us-ascii?Q?kJuSi4Ew+YyyAMRgTWXTqKQlOB18Hp5LkZNQkCT4PmRBJZYSBWFgFJ+c30jM?= =?us-ascii?Q?AVge7LqKNiVlqHRGEm5YcNBY4aA9B4k/E3xtrRbFcZJOvHongFsqSVJaJjiQ?= =?us-ascii?Q?pKk4hlkFpNyM7EbweoxgfMdezTOqDK9I2HDWV57dkTwQQt1Om10X0EZSCNLc?= =?us-ascii?Q?r5g3Qlr9TQ8cNYYSeHuXe2w1GNbR8XbSnTuRcCgl3ffiEbglFog7w2QEs0hP?= =?us-ascii?Q?KJGvlwY8qMiKi6s+4x67bSj+ZdVoN37dMA5prIDEykePZSHvHsoDIETqf1jg?= =?us-ascii?Q?DuWE+JHogv1KJgQEfJhf/5zBMXc2tQRNf8aygzqUNWGz?= X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 123ff4b0-fdf5-4d96-2c55-08dcad4193cc X-MS-Exchange-CrossTenant-AuthSource: TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2024 07:07:14.6161 (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: KfiJskARLLFvYN32MnvnwtUL0EvYWDgTxm6ZKpgvPpGrBI8p+HIPK6BVdklouAztVfCHvqStv3CVAWSvLRAT6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRP286MB4915 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --Multipart=_Fri__26_Jul_2024_16_07_14_+0900_nNG3cwxTyTVMvGey Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi, While looking into the commit b4da732fd64e936970f38c792f8b32c4bdf2bcd5, I noticed that we can create a materialized view using Ephemeral Named Relation in PostgreSQL 16 or earler. postgres=# create table tbl (i int); CREATE TABLE ^ postgres=# create or replace function f() returns trigger as $$ begin create materialized view mv as select * from enr; return new; end; $$ language plpgsql; CREATE FUNCTION postgres=# create trigger trig after insert on tbl referencing new table as enr execute function f(); CREATE TRIGGER postgres=# insert into tbl values (10); postgres=# \d List of relations Schema | Name | Type | Owner --------+------+-------------------+-------- public | mv | materialized view | yugo-n public | tbl | table | yugo-n (2 rows) We cannot refresh or get the deinition of it, though. postgres=# refresh materialized view mv; ERROR: executor could not find named tuplestore "enr" postgres=# \d+ mv ERROR: unrecognized RTE kind: 7 In PostgreSQL 17, materialized view using ENR cannot be created because queryEnv is not pass to RefreshMatViewByOid introduced by b4da732fd64. When we try to create it, the error is raised. ERROR: executor could not find named tuplestore "enr" Although it is hard to imagine users actually try to create materialized view using ENR, how about prohibiting it even in PG16 or earlier by passing NULL as queryEnv arg in CreateQueryDesc to avoid to create useless matviews accidentally, as the attached patch? Regards, Yugo Nagata -- Yugo Nagata --Multipart=_Fri__26_Jul_2024_16_07_14_+0900_nNG3cwxTyTVMvGey Content-Type: text/x-diff; name="prohibit_use_enr_in_matview.patch" Content-Disposition: attachment; filename="prohibit_use_enr_in_matview.patch" Content-Transfer-Encoding: 7bit diff --git a/src/backend/commands/createas.c b/src/backend/commands/createas.c index e91920ca14..fda1e4d92b 100644 --- a/src/backend/commands/createas.c +++ b/src/backend/commands/createas.c @@ -327,7 +327,7 @@ ExecCreateTableAs(ParseState *pstate, CreateTableAsStmt *stmt, /* Create a QueryDesc, redirecting output to our tuple receiver */ queryDesc = CreateQueryDesc(plan, pstate->p_sourcetext, GetActiveSnapshot(), InvalidSnapshot, - dest, params, queryEnv, 0); + dest, params, is_matview ? NULL : queryEnv, 0); /* call ExecutorStart to prepare the plan for execution */ ExecutorStart(queryDesc, GetIntoRelEFlags(into)); --Multipart=_Fri__26_Jul_2024_16_07_14_+0900_nNG3cwxTyTVMvGey--