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 1wQLRe-001TJU-2L for pgsql-hackers@arkaria.postgresql.org; Fri, 22 May 2026 08:41:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wQLQc-00CiG1-0f for pgsql-hackers@arkaria.postgresql.org; Fri, 22 May 2026 08:40:23 +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 1wQLQb-00CiFs-2K for pgsql-hackers@lists.postgresql.org; Fri, 22 May 2026 08:40:22 +0000 Received: from mail-japaneastazlp170110002.outbound.protection.outlook.com ([2a01:111:f403:c405::2] helo=TYVP286CU001.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wQLQa-00000000FEN-0QHp for pgsql-hackers@postgresql.org; Fri, 22 May 2026 08:40:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Bra6MioMc3licAn+vQ7ijEIA3PQD7gPYjwGdf+odKHArg8wSA5SI4adFdJbKYkvJRiZCfSbJNs6fZi2SnJcG8y7LIyphBkfCnxtvZEgrGEDuqrCQH85dkMSAbBGP9/IuHqsHlccQK84+kYxWe8MYtdF7Vx6ZoK3MeqRSXolIpHNrrj/Z/E014QkDaJZL6wlhCZMiRPOngb7HYKaWSYcw5awF+ii28QcThVRbvE7QOBbNPNvKe4k/lUmLSHwetDktrOIxwJJnQ3wG5Qe7RcVo2W9QopCRh/SXQynrHrm16R361cIah0u1yy0oucASK3BFsr/FUfg6PbdPlUiqeI08wQ== 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=6t7cvmEXcr6ddr6BH6BH/2cHDVUSNCwquGelmwIyoBk=; b=hy41nalW3CTaCsEeOD3ZPcDm3doCU9I/yKHA1QYIDQmCo7NUViTSLwTX0q9l4kkIqAz5idkc4dO1lOPJZ2dWcPWhnVd6+7dv0AimtHdi6gZZp3cNhohkl6Iiw8fkKgcJsw7d9VSXimcOuVizQThdTbEe04gJOJ/o7Tw+IQM2Gi7a9CHj0Agg6Ce8v9mnGLkQtHBzT61yrXEPgc10t44YGt2BpuCnwWHtGNKdG+zoUE0RNj8BgvdQk+FySv8dTKfrOrOcU6Y6UuML6e2128FCoxWprT0bIjUmp7wgypOdjxGngAZDDbcAKn4hmdpqOmIQvd9pF0dT9zDaCuLtVapTVg== 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=6t7cvmEXcr6ddr6BH6BH/2cHDVUSNCwquGelmwIyoBk=; b=BKE8l+bjbexomwUI7Am+UJ2x22Us5QzreF2jHHmZQRoKZxyVoG1/4CYGs7eUfdgZpgzTrXWfBQ0TCfjXsVfCahVLuY1VrlBa5v52Revn5U/EydvOHHribOpzVH4d+r4lhsciXdiqfKRfNmDyKXN+ntMp7acDFXYctRjo94VcN1TAh3zxyNonSEyZnIU4Z3B9sa8a22lkG2AYdKYluLapAJaXKCoqUqTAVm0KKCKrssu00YShj6/FQXjkXkMMH5Wk7+5z1SsVoT8+hPbC7E5PID056d/rBJ1XMKkzHNZFyVMyhu97K/Y5UC5DfQlS5KmabSgA7B/hDfub9A9FxXAoqw== 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 TYYP286MB5551.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:1a2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May 2026 08:40:13 +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.023; Fri, 22 May 2026 08:40:13 +0000 Date: Fri, 22 May 2026 17:40:12 +0900 From: Yugo Nagata To: Zhang Mingli Cc: Kirill Reshke , Peter Smith , jian he , Tatsuo Ishii , pgsql-hackers@postgresql.org Subject: Re: Incremental View Maintenance, take 2 Message-Id: <20260522174012.1640555cc2e4736e6a9d0490@sraoss.co.jp> In-Reply-To: References: <20230828115252.c1b018605b9a0756a30c3382@sraoss.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> <20240730142420.34a9ad7c249aecde88cd45fb@sraoss.co.jp> <20250830050403.73fd450cd2712acca11494a8@sraoss.co.jp> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: TYCP301CA0063.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:7d::8) To OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2160:EE_|TYYP286MB5551:EE_ X-MS-Office365-Filtering-Correlation-Id: 34ba79e2-22c2-47eb-f4a1-08deb7ddbd85 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|376014|18002099003|22082099003|56012099003|6133799003|4143699003; X-Microsoft-Antispam-Message-Info: 1xa0DWZDPzQAmhqsiVydv1i2ezIiLWBc826fh/F5W+frzfaCFSw5+IE0BpTqhPbRfXNk8LwpfEZV2Gz2kddXdG2yWZuWgvIxROMvlGc+XxK4TML0OHJ32H1BWguAcFpXywdsvHlCexUc+lsTZCluriTgfAtt1alb6PijBAgQTLhyKMDIv2qZwzH7HoXqzzwbbGcuHZxGzlLBaM+5boDolpDtGm990o32KP1uR5OD6miCEM+TuUQ7jjBsCXsBTjjfZjw7CaV4lxmxGf+EKtMZPNs1YbqXTgqKDwy2FljEcCBXFGBdH/iO8vPVIGG664svcYCcUIqwO6SKlI5ZjoWkKn6YjO0rukFfweVlQXVaN/vexyVT0yV4TRvXiQjmp61Y9MX8CxDX7JOkKm7v686hXhBPS5Tkxpt8F1nDpnzsPdgDX4znIEYYClM72xKYzOWwhMCRlWE0ryi602kaZCRotglznbGVxvGRv9+Ko/dsy8NZnKJ7ozmqhMdvXr14GE1LOD54jcbj/xNPnH3I9Hcy2MPMh+AFWCE8UHMAYOEK9Y3PmyQZ1NJ0wVSDrJP2OgPZ2qLvYXwdOvrzr3xOXMPH3udoTdAossJajTR6tT4D6mlhzYzc6Llp0SjuArFFXvxkjYu5YTpEnh7LY2ZUIxjZZE+2NAAF7s2WKZCXEj9tiMFisERs85hVpbaVU3yiUPqG 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)(1800799024)(376014)(18002099003)(22082099003)(56012099003)(6133799003)(4143699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MUF4NnFpSURpR3pUMklzNVhudXpocUl5RUlTWFZ5NzMrMDRjb01DNnRDV0Zu?= =?utf-8?B?R1llWkg1Ym8vZXg0dmZHa0xFR0xQT2VmOGpiaGpZditKN1U2NVFhU1krYkRl?= =?utf-8?B?TVc5VW93NGdMRWw4WWFFbTVzU1BUTldJYWJHaml5M1Y3U1lMSW9DdnpjWlly?= =?utf-8?B?dGcvV2RYNTVpRFFxSzZteUUxUWVzc01qazROWnBFb0c3SWpxQnY3MjhQNUl2?= =?utf-8?B?SGNxUGZnNXh6NGx3MDBCSXZlb0lVRmFXeEJYV3h0SzRZVnoxMXZUVFk2alQ1?= =?utf-8?B?OVg2TmZRdEd6Nzdqc3BKMDFaQzJxdHdlanB4QlFFdGZ1Wmtmd1ArTit1WkFs?= =?utf-8?B?NGltYi9CVFRuNnNWZFVreU0rRGRZNkQwQzVCS0VVNXBsSXdhbzNmOUVHZjU4?= =?utf-8?B?WGhwVUlucnVYY2l6UVVROWF3MEkzMVhHa251UXVYZUdZdjBHZkJsUDNsZlQw?= =?utf-8?B?clRKak9TYXRSanBCVWJzRDl3UmJDK2FFSkVyRVRPNG1jaFlYM0tsQS92YjFX?= =?utf-8?B?Nyt6M0JlY3d2SS9Fcm83dHBTVkYvSlZ1bDNYd3ErYlRIV1g5d1dQMjZBY2xP?= =?utf-8?B?MEdydUh2SUxrZDlqMGNSejhLR1VNbkxPaWRVR2tCY3FFOXBuTmYyU1lMR1Vz?= =?utf-8?B?K1lqK3lMTFZkOUNqT0JHM05ZZHdSMVFKREtIS1g1RFNNMnEzKzREcG96MlFP?= =?utf-8?B?YmMzZnRLYmVzRTdsZ3pmZGV1V053V0hNdVBLaWxzNjRrVEhXK1BzUW1aVUhH?= =?utf-8?B?Q2RvNWsyWFlHaGZyMVlyTy93VnBZc01jMTJmUUZkOUltR2cvd0ZkZkR6YmFH?= =?utf-8?B?bkRHcGYyN2lqdEh4T1lxMUp0WG1iQktVcnNTV04xVzhXVzBFY3dMcjV5VUJm?= =?utf-8?B?b1ZIWTF4RG5VdCt3b3pqRXpQclpXWXlGVzdFMTBmdXh6NEg0dFM0NmZzQnRj?= =?utf-8?B?NUlpNGhSWWtxNnhCV3dnNWFqSmNtWnNHMEdYSndkNThPeEljNnRzQnZ0Rytw?= =?utf-8?B?d3FIVWxVd1R4dGEyaEZGbC83Wk9STC9FcmVzSU5sbTJ6eGFLQU8zNjN2S29D?= =?utf-8?B?a2pPWmFuT0tlb0NhM29FQ3ZwekJqQmY4T3d4bWpHV0FZYnVhcTVuUzhldDJ6?= =?utf-8?B?TC9yTEk1RGwvMTdHdnlaT0JWSXJ0RTdLLzhhMXQyNFg4WjVRWVAwVkk2ekdW?= =?utf-8?B?bEhlWDQrTm9RblJFY1FWeXJiQ2NFMjNRZUhUVXdFL3BjQ0NLdkU1UjZuaXBU?= =?utf-8?B?bnBUTmJtVTdOeVpxL2Y0OU9iUDdVc2hWb1dwWXlPdWpPKzFsMzk5OFp3MmxN?= =?utf-8?B?YjlOV0I5NlJCN1hxelpCZi9NQXN3WVl2RVNFN3pzb3B1eWxXczE1WXA1dHR4?= =?utf-8?B?QXEzUk85Q2hXRG5XaUFxVUt3N05INWpFQ2tCeFBKVndBZ1RueWFXZmcyVFh1?= =?utf-8?B?VTBxS2ROS2pCSHFvWTAvT2kvbnRaTnFYdXRUemJ2NjEvOTJiTHNmZzJCbzJi?= =?utf-8?B?ZGJXRXorQ3g3S0R3TWtaeUs2aWxmQjkyVGtKdStkK0VVMXJFdlVhZ29uQmpp?= =?utf-8?B?ZmhKc2ZtV0l6dTBKdEQ3V01BdnIva3hQZTh1a2ZhOW5URnRRcHJhMmNMZmxD?= =?utf-8?B?azFaeXBiT2tiL3hzYVRUdFRCNW50dmRlWnRtaU1TNTVyWitpVk9LK29QekRY?= =?utf-8?B?NnErUDdEYzFHK0srSG4reXpPczRkVnVIOTBjdTZ0blJxN3BSSzFxMUlYazFI?= =?utf-8?B?cHJYZW1yU3NvRi92ZStER0Y2aEN6WlZySUc2amIzckFxam1rU0M3M0tQRlVy?= =?utf-8?B?cWdYclo1ZURGK2tvVUlQS3ZNL040bDV6M3FFSU9IbWZKRU1sa2tyMTM2MDVn?= =?utf-8?B?RC9jWTNjWjBLcitOVmI0bm5walh2R2dENzY1Vnk2cFdCWFVTK1JkbGM0cmpD?= =?utf-8?B?UXpsdHFZeE9ucWNzZ3cvQllBMHZXc25iZHNxdXgwMkdGTmdyQjZJWWxuMy9s?= =?utf-8?B?a0xwam9yZk40WHpKdTc2a2NxMXc1R0RJL3BIV05NcmVTbFR3NFFhS1BSM3V3?= =?utf-8?B?NXgreWwzL3E5RFJIMnVuK1RKQXFKMG9GMXZNRFhLTGloU2c3ZFZ4Q1k4ajVN?= =?utf-8?B?Z3p1OFVzRk1tVDd4dXcrbWFLZ0hPZDNyUjVHUFdqQTdydjBua3lKVjk2bFBq?= =?utf-8?B?dVBDY0VwazRMSEtTQytJUVBxQnE4RGZLNnZpSUplY0NGRXdNSk5ZVnJiK2lF?= =?utf-8?B?WWZSSXo0YXowUzh1cXZNTUU2bW1DZHZQTTVVUVNmRTFrSlZZWWpxM25xdzk5?= =?utf-8?B?MUxSdmhJUERuMDRVMGszMHVJcUR1V0REVEFZUS82VS9uYzVMQ3E0VXZuYS9n?= =?utf-8?Q?U8C6EtPqbXFDUVSh30eLTGxTExUyKcfzocad75j9f2sA2?= X-MS-Exchange-AntiSpam-MessageData-1: ok4++BRzfLIaUw== X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 34ba79e2-22c2-47eb-f4a1-08deb7ddbd85 X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 08:40:13.0244 (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: SKMzRhMa+jEt6t/AlqtLf7JAUBCtCZIxSk+WzNEGO+08ItnOP84qeLayOeH6p6de5XO+KHYXWoiQVbaQcRSbSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB5551 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Fri, 12 Sep 2025 14:09:47 +0800 Zhang Mingli wrote: > Hi, all > > On Aug 30, 2025 at 04:04 +0800, Yugo Nagata , wrote: > > > > Anyway, I will start rebasing the patches, reorganizing the patch set, > > and applying fixes made in pg_ivm [2]. > > First of all, we would like to express our sincere gratitude for your continuous efforts and contributions to the IVM feature. > Our AQUMV (Answer Query Using Materialized Views) functionality in Apache Cloudberry is built directly upon your foundational work. > > > We recently encountered an issue in one of our customer's production environments. > The problem occurs in the function CreateIvmTriggersOnBaseTablesRecurse(), where a Bitmapset relidsis used to record rte->relid. > > ``` > case T_RangeTblRef: > { >  int rti = ((RangeTblRef *) node)->rtindex; >  RangeTblEntry *rte = rt_fetch(rti, qry->rtable); > >  if (rte->rtekind == RTE_RELATION && !bms_is_member(rte->relid, *relids)) >  { >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_INSERT, TRIGGER_TYPE_BEFORE, ex_lock); >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_DELETE, TRIGGER_TYPE_BEFORE, ex_lock); >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_UPDATE, TRIGGER_TYPE_BEFORE, ex_lock); >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_TRUNCATE, TRIGGER_TYPE_BEFORE, true); >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_INSERT, TRIGGER_TYPE_AFTER, ex_lock); >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_DELETE, TRIGGER_TYPE_AFTER, ex_lock); >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_UPDATE, TRIGGER_TYPE_AFTER, ex_lock); >  CreateIvmTrigger(rte->relid, matviewOid, TRIGGER_TYPE_TRUNCATE, TRIGGER_TYPE_AFTER, true); > >  *relids = bms_add_member(*relids, rte->relid); >  } > } > ``` > However,  the Bitmapset structure is typically designed to store small integers (such as relation index), whereas rte->relidrepresents the Oid of a relation. > For instance, when a table is created immediately after initializing a new cluster, its Oid might be 17019. Storing such a value in a Bitmapset consumes approximately 0.2MB of memory when creating an IVM. > > (gdb) p bmsToString(((Bitmapset *) relids)) > $13 = 0x5643d7bbb070 "(b 17019)" > (gdb) p *((Bitmapset *) relids) > $14 = {nwords = 266, words = 0x5643d79d1bd8} > > This memory usage becomes even more significant when dealing with larger Oids. > Moreover, a more critical issue arises when the Oid exceeds 0x7FFFFFFF. Since Oid is an unsigned integer, but the Bitmapset expects signed integers, an assertion failure will occur in such cases. > > > We have encountered similar requirements in our own scenarios and eventually switched to using a HTAB implementation. Hope this proves useful for your work. Sorry for the late reply. While reviewing the discussion around reworking this, I noticed that I never replied to this comment. That makes sense. I'll update the patch accordingly. Regards, Yugo Nagata -- Yugo Nagata