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 1sYfM5-00DB5q-CF for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jul 2024 05:25:01 +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 1sYfM3-005vQT-As for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jul 2024 05:24:59 +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.94.2) (envelope-from ) id 1sYfM2-005vQL-Q9 for pgsql-hackers@lists.postgresql.org; Tue, 30 Jul 2024 05:24:59 +0000 Received: from mail-japanwestazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c406::1] helo=OS0P286CU011.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sYfLy-0029fw-51 for pgsql-hackers@postgresql.org; Tue, 30 Jul 2024 05:24:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yIiB1Tko79udx/9H1vCo4W17kA5z0KgaETdAtmwVmfdecxSkYxDuteIQX2yfoagIVfk7gg1e1VK/+k3hsIEZMO1MsHiN4ho3/7tidD6MsCtp23YWi8+q6i/1gDmlnrQV0pItF7sdXsKwMW4WiVgjQwcHAz9qi5I0n9Mg6h8CuKjSsUctW1ojoPXdwzCZkEIuVELV/mpJ37KSfQcaCtmla9jStE7vPF2MncV0umJWjvEOYNnEBoT5hn9yKteKU96gI/bORMacTJVdSHJIo6ytpJd3xDz2y1H7h+COgH4FQAJZWbI+I7Pq2/bh5IwTxiic7rC1/aS2q5mDBNeDyGh7/Q== 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=2isLt/JLjZLEYRPN57ZC1Y0gBb9QcuksxMNH+JEfJ4w=; b=TY6fsYAv5QwNh5Urj10nusS0fsdulbpD/9vFVw1kFlb6aWc9WrSyjZzMaPy3CRdONxpHq1M8VjiMbzB9fj685ddqrybanL6BpR+sO/iQ7bzGeLKg7WU5iHxyNz4KzIH+xG3m3hm/HMIhbIjsheU548KynNWavm7SPUCVkgaOHjqpJgDYAYgD+yEUypqxShnvNpy9OpGhDjqsvlKxl4CSoTnJFZwLRlB3W3y1KwBmRmdbSH8IYZmmbOCodLinZKhN41TXnBDhfEwhMSM3Rl1tWxlm/f8A2SeJ9BDJZcY3qq4kMsRxDFJjqvnRJw6N2UqJMlTGvs5F4DHj6cPIylQ4yg== 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=2isLt/JLjZLEYRPN57ZC1Y0gBb9QcuksxMNH+JEfJ4w=; b=bjZQJgx+yvZDGUV9u9RI1CLA0dnJHqIBVULzJn8wtd1v6Xf/igo004rSolpKJnAI3PKdMtZyq9qiXCMfNdiDfpVOycB+9AgzemA5MovwmLjNPM9+Tr9GIoUzX6zQdsPjFvRaH9OecHO/Ix6THbkXigih8jKlZUbXegjH1IMTrQnU/3MOfvW0APucWZGBildhK13mKNkaj5uoUgIYf+JXmx8r85Z3srSe8XRldGi+BS5LG1fTb5UML/KS4yjjJBVnF2Fwn44w4Fm0t8FejvP5MCLa6SGsxbtGCqaeaJcb3l0JK1nV9L5HWXLaZP9f+ysnF9et4B6itqEM4VmukFblOA== 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 TYWP286MB2404.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:16b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.28; Tue, 30 Jul 2024 05:24:48 +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.7807.026; Tue, 30 Jul 2024 05:24:48 +0000 Date: Tue, 30 Jul 2024 14:24:20 +0900 From: Yugo NAGATA To: Kirill Reshke Cc: Peter Smith , jian he , Tatsuo Ishii , pgsql-hackers@postgresql.org Subject: Re: Incremental View Maintenance, take 2 Message-Id: <20240730142420.34a9ad7c249aecde88cd45fb@sraoss.co.jp> In-Reply-To: References: <20230828115252.c1b018605b9a0756a30c3382@sraoss.co.jp> <20230828160530.adde1e20f257d7d345989163@sraoss.co.jp> <20230902.204634.955758704959569058.t-ishii@sranhm.sra.co.jp> <20240123162327.c2803162619dd7634cca0b6c@sraoss.co.jp> <20240304115846.2275fb44fd904e8789d43590@sraoss.co.jp> <20240329234700.73ff2e28c9248d29f8fa6a66@sraoss.co.jp> <20240331225931.712683cecb26862b73b2b822@sraoss.co.jp> <20240702170311.1ddb417759a48ff12c555b92@sranhm.sraoss.co.jp.sranhm> <20240711132357.fe3f78c184cfa99159208178@sranhm.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: TYCP286CA0019.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:263::13) To TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8026::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYBP286MB0111:EE_|TYWP286MB2404:EE_ X-MS-Office365-Filtering-Correlation-Id: 74d7cca7-4231-4f98-1779-08dcb057ee06 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?I7wwME0HHaxB51czXIaMSuAHwjKtbVw/1i8HxL/AvGndInH4bxo5jWyGqrty?= =?us-ascii?Q?ebE2trhWZfts94IyMBSpEv/MH/c18chDq9+cfP7RGclS1o7t4nP1EXH0Y7t5?= =?us-ascii?Q?9RZ5Zz4pVuDPssQyVMauAn5C1GGAfMlJ/TnAANrBygrAtepE2QDqlCovhVmh?= =?us-ascii?Q?Go0JogUe3T5wJ/yBPZ/7Iz8n2Vpaqfuxcpv67PwRxpUz6tjkLZXiZsLd1NBO?= =?us-ascii?Q?ScJbnCHTsNDQC1lynpI2ha4Y0au3jO2W4NVM9UEpEb8TGb/iHWEzu6i9bQx/?= =?us-ascii?Q?PHmOEFeOO3joB+kDYaFHlZoSY9x4uPNDPRa2NHpAxrWKehbB1cNDXMerE2Ky?= =?us-ascii?Q?8geLvK+wnVfAzlKlaJd42/McR6mvainVswg0AH6uxSXsPdpNpziNV4iSZnwq?= =?us-ascii?Q?x8lFJKKb03qj6ayuWeg0yy2wTfJnvsXqKdI85dwlMxA6zMH+S/lcPWCRVN8+?= =?us-ascii?Q?9XK1r92LSDIvRx4fARjEVyGg8U/N5MtxcpLGxfsJQ0kBSugE+SZFw9dzYBOI?= =?us-ascii?Q?Ko8GJ8nYfH0/V+aSJTL0GE/bxo2odTeoGlggg06dFtTejJtwgpLGDCa7zr4Y?= =?us-ascii?Q?P89XgjoKun7ITRTFHoewWQi2dzedmF+XpdZxn5UzgtqeofAw6YyowbZW4Nu3?= =?us-ascii?Q?PO9GK9ycgqtwEdeMkrr6nLcfSSOPu3Vz7U2/8Cg8CXKFKVzsGQhWvQIK2CZ1?= =?us-ascii?Q?tzT+UfmoPVCbse4x7dQVuz8U93FQNbwjQ74Wh+/FbJdKCyVHq1V70H0jz/UN?= =?us-ascii?Q?sVDy9fT+4xJ4lFNgiMerT+jg8qBxOBHNwiU2dIGqM8xn2v5hAgQW0KxBrkCu?= =?us-ascii?Q?iid4cJdlLCqOMKFuHNm5HmNPs9/qffD6cy8c3y9TDhAbY2cyUoQaCylRlMPZ?= =?us-ascii?Q?A742YIBpc8j7vYCNmU9ibEvDCAmJtbkOGhJQUCeatcqPs7jjDGPVEB1ooqjr?= =?us-ascii?Q?PSldGuSY6fu3Q8VBYVmbIzc2O4bf17QPw3KmH1r2M+AZH464pbLRMZ84bfcV?= =?us-ascii?Q?JJqVWmKLeNlgiFXzFp5W0oJhvbE3MCWhL8Wa+CPKxKiOKF4JRWctWD74PTmz?= =?us-ascii?Q?fCdft6gVG6zlVTNdxwqJ5stQegXyLsbt1vq1rKejaXecR1ka1BUlkWg1WNpy?= =?us-ascii?Q?i1npcz89wr4/5WHmVuPrzavLH88d8vFNIiiTMzEdF93l2cTEoDLh8qNR2a6/?= =?us-ascii?Q?aYg0F3mjVAcJU2hcE8wjN+I1eaQ9m46Eyvb7QX9pjIoO8ID94rA9ZlOGMeMP?= =?us-ascii?Q?tuxkyGUkS5aR+7oJN6APjEiw9mXIXqmyWnnD+W2s9vq/gVOGtgvjJpC6EOXO?= =?us-ascii?Q?8DM=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)(366016)(376014)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GHBPLVBITN8da4JeM4O+7NZURnw5oFR75K/0v2538tKgzwr30eWyzr3ztGSw?= =?us-ascii?Q?YYss7zYoG2SE4KdSedlqAGNgstrgFBCuRcVyLe7wYWbFmme+AtfRgLXQvFGy?= =?us-ascii?Q?g3vW9zi8qEryyHqP71smT/Vgi1Wy3aFH1hYFBuBBGN0HFaucbolCJ2A26TQf?= =?us-ascii?Q?LbDPpntG/zmOOzkM69z4FaZOIAxX4ExvPwpRfREIJZWWYIFUIfsLeZ8cv8I+?= =?us-ascii?Q?aF8O89kkG9NAw9rXDTRt+OTLITMjUYTGdPZ6ZsBK/z3y7+7dWq69vEZzzy2M?= =?us-ascii?Q?AiZ8+kjlT32Y9IwXmdlFB89N9+VIbWEDRgp01KJXo+f9RC86rDLVYvB5oyhg?= =?us-ascii?Q?4C0IU+nq2Tt7bOl5SrBh3ZM5TeEBqYZOfPNV4s18mOMS4u0LBdLeHz6H/aoT?= =?us-ascii?Q?3xD6kJwI6dBXdQJKyohuyQOkOSY7HUHacJYTeIdYPceN1/QX9C7KQXnNCinx?= =?us-ascii?Q?JG5GUYvDTSWdd+6yzJJjUIV6Q0qxLacxKqfwiRLBXHHt91Sh9QwB5uF0aFSb?= =?us-ascii?Q?Uxdf+kUsmvDsJv/TdRmDeR1O0dVW1zyRjcnwJZcfRDU4z63Y7KmMOJOo6hXW?= =?us-ascii?Q?1qlKqZ07W7xV4a9AsOtN/GollXx5XSowUCDVkDf5JrXO7UvIqErAUd3Aibla?= =?us-ascii?Q?dhyQ5bYXWzRLS7Q2ZwYR8FAVwdtBdDiA0jjegxHXumAmd4oVnbleSuelCqsB?= =?us-ascii?Q?JsGBv0rjr2iQqzFeyzmSO1kbRo9h/HIb9/PPJbpjA6tVAdJbsNv+fcSpeAxR?= =?us-ascii?Q?0QlweFSXWmNCTek5UmTKRTj0oXw7O4SC2YP3eKUYxUM3FNuVc9+S6nsDifnF?= =?us-ascii?Q?epvXLv8ytis9bVc9QndeRaAH+J6eKna09MQC+Z8521EqIrisJifuwPatTP+l?= =?us-ascii?Q?oAJH2etEHKB6yWI2BHjvjnOyfmogbjL12nhFQqdoJ+Ikic3rRJZS1Qfuse2/?= =?us-ascii?Q?073q5qRnQO0qvN+gqNKPPr/6wa3XFqD45YS5USEeRcFGOHfeuz1ovLe7CogL?= =?us-ascii?Q?ant3KOAHTftuJFe1qp6dCRvYztcZ4hF4D4Wu6YoZwEFR4gPplKqjKqrwUOCO?= =?us-ascii?Q?gzE5ObfxRlkVWa9W6f30D0nv1DH+1arnh4UPKWUkXPPb9IeZ58Hfio+PFb0v?= =?us-ascii?Q?8wpltRCgOLoPtsOOuKRXuObIrDDO/8Gn65sI9iNz6EOez/Vj/f8c7Cvv2X9i?= =?us-ascii?Q?XDYwebXi7VJoqVEWMUEgDm0g7z2ZCECXgft1pagaP877OVM3BmSIOCWEktKD?= =?us-ascii?Q?DId1f9GPgylSf+wWCiCpEQkchYuLHcaxZlCmuW9gA0xDKUrmNlS0jQiTUgii?= =?us-ascii?Q?QDm4ulUiKPVvSxOhJpZ0BKLOE1qPIg2bDRCyLCgp7MyO7SpbMcB8rfvMQFB+?= =?us-ascii?Q?raxoVW1KLt1PW93yGlOSik5Iaeu2/9iw1/s692rvNGRxxXLWWpTjOPCkf/dO?= =?us-ascii?Q?nQjX4jl4IOOx20AjR0ia1/4j9OgvvHHbzGAknc31HA3J6bTCe2BCwJWctn5J?= =?us-ascii?Q?M/evb/bWhwRxP6eE/2SR9w6B9H04kP2TD2ACvXcxWZBmktys6/WX4wNvIU3X?= =?us-ascii?Q?nkkr9fv8vZyZw8NJjfgE3bhJZRg/DfWpd4TFrjQlKA4m8Pc/nyZKk6QIn3nn?= =?us-ascii?Q?mSFQUMuhJePbDTSnjP3DPk8v403EcrTdls0wp3N9uw03?= X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 74d7cca7-4231-4f98-1779-08dcb057ee06 X-MS-Exchange-CrossTenant-AuthSource: TYBP286MB0111.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jul 2024 05:24:48.3736 (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: LCoFYcaCUKCkLb1eOllZntFfPG6fVegWBJudv3/QwxqDzf3w5WwV6gFM4s8ZRc0Zpo/ySGgdbSUh7WTEDh9oGw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2404 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On Tue, 30 Jul 2024 03:32:19 +0500 Kirill Reshke wrote: > On Sat, 27 Jul 2024 at 13:26, Kirill Reshke wrote: > > > > Hi! > > Cloudberry DB (Greenplum fork) uses IMMV feature for AQUMV (auto query > > use matview) feature, so i got interested in how it is implemented. Thank you so much for a lot of comments! I will respond to the comments soon. > > > > On Thu, 11 Jul 2024 at 09:24, Yugo NAGATA wrote: > > > > > > I updated the patch to bump up the version numbers in psql and pg_dump codes > > > from 17 to 18. > > > > Few suggestions: > > > > 1) `Add-relisivm-column-to-pg_class-system-catalog` commit message > > should be fixed, there is "isimmv" in the last line. > > 2) I dont get why `Add-Incremental-View-Maintenance-support.patch` > > goes after 0005 & 0004. Shoulndt we first implement feature server > > side, only when client (psql & pg_dump) side? > > 3) Can we provide regression tests for each function separately? Test > > for main feature in main patch, test for DISTINCT support in > > v34-0007-Add-DISTINCT-support-for-IVM.patch etc? This way the patchset > > will be easier to review, and can be committed separelety. > > 4) v34-0006-Add-Incremental-View-Maintenance-support.patch no longer > > applies due to 4b74ebf726d444ba820830cad986a1f92f724649. After > > resolving issues manually, it does not compile, because > > 4b74ebf726d444ba820830cad986a1f92f724649 also removes > > save_userid/save_sec_context fields from ExecCreateTableAs. > > > > > if (RelationIsIVM(matviewRel) && stmt->skipData) > > Now this function accepts skipData param. > > > > 5) For DISTINCT support patch uses hidden __ivm* columns. Is this > > design discussed anywhere? I wonder if this is a necessity (only > > solution) or if there are alternatives. > > 6) > > What are the caveats of supporting some simple cases for aggregation > > funcs like in example? > > ``` > > regress=# CREATE INCREMENTAL MATERIALIZED VIEW mv_ivm_2 AS SELECT > > sum(j) + sum(i) from mv_base_a; > > ERROR: expression containing an aggregate in it is not supported on > > incrementally maintainable materialized view > > ``` > > I can see some difficulties with division CREATE IMMV .... AS SELECT > > 1/sum(i) from mv_base_a; (sum(i) == 0 case), but adding & > > multiplication should be ok, aren't they? > > > > > > Overall, patchset looks mature, however it is far from being > > committable due to lack of testing/feedback/discussion. There is only > > one way to fix this... Test and discuss it! > > > > > > [1] https://github.com/cloudberrydb/cloudberrydb > > Hi! Small update: I tried to run a regression test and all > IMMV-related tests failed on my vm. Maybe I'm doing something wrong, I > will try to investigate. > > Another suggestion: support for \d and \d+ commands in psql. With v34 > patchset applied, psql does not show anything IMMV-related in \d mode. > > ``` > reshke=# \d m1 > Materialized view "public.m1" > Column | Type | Collation | Nullable | Default > --------+---------+-----------+----------+--------- > i | integer | | | > Distributed by: (i) > > > reshke=# \d+ m1 > Materialized view "public.m1" > Column | Type | Collation | Nullable | Default | Storage | > Compression | Stats target | Description > --------+---------+-----------+----------+---------+---------+-------------+--------------+------------- > i | integer | | | | plain | > | | > View definition: > SELECT t1.i > FROM t1; > Distributed by: (i) > Access method: heap > > ``` > > Output should be 'Incrementally materialized view "public.m1"' IMO. -- Yugo NAGATA