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 1wC6Mb-001fGA-1S for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Apr 2026 01:45:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wC6MX-0042gZ-2a for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Apr 2026 01:45:18 +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 1wC6MX-0042gQ-1T for pgsql-hackers@lists.postgresql.org; Mon, 13 Apr 2026 01:45:18 +0000 Received: from mail-vk1-xa35.google.com ([2607:f8b0:4864:20::a35]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wC6MW-00000000lAi-07zG for pgsql-hackers@postgresql.org; Mon, 13 Apr 2026 01:45:18 +0000 Received: by mail-vk1-xa35.google.com with SMTP id 71dfb90a1353d-56f44072569so745907e0c.3 for ; Sun, 12 Apr 2026 18:45:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776044714; cv=none; d=google.com; s=arc-20240605; b=RLMrLZ2dU+FG+XwmChsCdLD+wZDL3cO1WRduV0LJ0kJR4CsTSNxRMVqqcDhyc4Nr7P PGj/e212++dxYe8dE1tFsQlRc2F+4umSC9ofSAVusU8zJUWD6uDmmShsVxLfUvT7T4Nq TiqOnHMus40qofITqBDe26L8WGb6biKb7eC6/FhIy4/OpWR8oieIRKo46UHfmpdizCFy a9pBbqPYn0ew3bl53bfuisuTYrI6re1fyxi1xXbezno27P5CF560j2fC60Y6042oK9YP buwXYy2dhx/CK1rstxLUfgBXsAD4CCflsDipw/YRAqj5UdYX1HkCVWNzQbZeMof6JBa4 Wunw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=N+yhSrJLQvZyXMqJNnVeCvab4Q3eN8tnMqv4PD28IY4=; fh=FIa6CnAOcDlblDMIqVQXhn30ONA1aoHzZ0tfczHgg8I=; b=fvTMAZ4mioozWP1SIJnd5nW6svSRzEtrbXUBuKSMxO4FSeOjnX6nMkuC7WRwRTv+rR bLPCnTNq40TmwlsVduNSamJuVrPP2eE0/c0V8JjSBAOd7oVFJczVEdXR7j8PpTAyEJH3 g/x4mQSJQK6Jb1NKPTt7IWpDXQFU+pVA+J//fSKfk3S3vso2L4KjnWUqAuxbtCHabewn uGc5Ke87WAvy+tFoysJZ6I2gqm7IiUMZOvr9Y1VWjHEYrQEtHDBWlBM5wbx4wZ6LbmO9 EJi86CghJFrpsmS9iDFcJXfsBLt/v4lD7fOQ7l2/wluKZIZpOHNu+SVs8uVTL2DPTfkM ol2g==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776044714; x=1776649514; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=N+yhSrJLQvZyXMqJNnVeCvab4Q3eN8tnMqv4PD28IY4=; b=SHh6k4fTna294n3insRIqvYG4PpQ0QqX0lBE2Wt+Yk+kU9OKVahj0WaPQNT5b1iS+y Nwb8oSevbXn8Pwuq3QQkKiJax6IVAfFNWIDk1Z02fxhSliwC2UeM+r8FQfkJCBlRfug/ XB93vU8N2HSGtN+RZ3tDZhrSWotdSom4FBA2LOPgABZFIGhu44fMh0CjBRHiM7/hEbqj k0cTRihWFgusVVmLL+TSzdiLM4KyEebRtAv/ZrEgWN5CbHHEM4vIegb8vrPQJ7i3tya2 YxsXImhS/bcuY3CUqMd/ejk6sDyxo7fhLpuZ4/2rfT7yHl6PzBJEp7A+iPKekR1L6yie +kjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776044714; x=1776649514; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=N+yhSrJLQvZyXMqJNnVeCvab4Q3eN8tnMqv4PD28IY4=; b=AE5+TiGceYXN5OJhXOP7I8lVPe+DOAU7IjaMbGljicBNZlfsPQ74gxjBA2Z4uonLbm Rm+T+3SoTepKp8k4L7EYxAG5/G4H+fmIfqB5UVFxcLy7nnd3g+KySUf+s28rM7JSHm1C 3cxUL6I6n5uVgI+u/r3BWsLUS78Z2NQGe+X1+l/D4Kj2sXTVBYarCYaynIMnhBj2QGOU +viMEtyVQ6LDwVnZyoTerBUInE6/Jl5NLoAMp609n8YPTm94Ux+GKcs7kl8a7lGpZNUH 1bZl7VPRcvz6oAIyxn24mbyq963NayHLC/ZEuhw2UgbdOe9xiOpVm0nbZjH/yVkFXBw2 ry2w== X-Gm-Message-State: AOJu0YyJhGSWswSewPwP64WQkQkuRSEkkJ/CDzynVpJcJJjwpne4H8NF HBaIoj9XBqM03hQE2mxjV6UdgMU+mQJCxjnoV/3Obce1aRkt5sUqV6UDEuPMyddqwvMh4yJHi4a cMtc0fBq7QI8IIO96rrXIhEJWNHtRYIloatUP6XlUlg== X-Gm-Gg: AeBDieulLDEUtgI3qPrnLQlyFDctA1wcYD8Tqan5vHcNtOjU9Y4Rdc5auc3qON2ic9I uvvTIBW9Ph5gWXxH00G/Ja61oKqVY4TvoGQAcgCyG5gYR9w/la4XDy9CiePLT7K3o6xpT8KNKQS DlD6Ly/3QJraD4zjpnd0RYjkLKhuQQVIGThCm3SaoucyJ35B7Az7CUECfnQNWrflkGQTawKAyEK GrE93bgmELrIlzRFSMSpWPrQmziMH5VQeRfQlgk2QtBUTyYjZiESJnLXk7CdA7jO/A8T1VJOf7W yX6AziVsVmS8/x75teagywwWWbnERtGprqKQ5+zNEg2WvWIiqY77obG669XltalouYN6rMwLZC4 yMSaH6R196p5tVXUsWeZ/+OZL7teASTmSwSGAoub2X9M4jiIc1lfRXXWnZc76Deyl22OjlHgLIh /njcYIgw0N883xyC4CQU8Q X-Received: by 2002:a67:e7c1:0:b0:609:5101:d668 with SMTP id ada2fe7eead31-60a01066b0fmr4248394137.30.1776044713863; Sun, 12 Apr 2026 18:45:13 -0700 (PDT) MIME-Version: 1.0 From: jian he Date: Mon, 13 Apr 2026 09:44:38 +0800 X-Gm-Features: AQROBzDt-5y9zauiUGv8KOl0N6tlisPBgl3UFnB6JBWLn8nwk-va0i94dgQZnWY Message-ID: Subject: DELETE/UPDATE FOR PORTION OF with rule system is not working To: PostgreSQL-development Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi. https://git.postgresql.org/cgit/postgresql.git/commit/?id=8e72d914c52876525a90b28444453de8085c866f DELETE/UPDATE FOR PORTION OF with rule system is not working, and there are no RULE related regession tests. in gram.y, RuleStmt, RuleActionList, RuleActionStmt RuleActionStmt: SelectStmt | InsertStmt | UpdateStmt | DeleteStmt | NotifyStmt ; So far, I found 2 errors, and one crash. There might be more bugs, I didn't try all the cases. drop table if exists fpo_rule; create table fpo_rule (f1 bigint, f2 int4range); INSERT INTO fpo_rule values (1, '[1, 10]'); CREATE RULE rule3 AS ON INSERT TO fpo_rule DO INSTEAD UPDATE fpo_rule FOR PORTION OF f2 FROM 1 to 4 SET F1 = 2; INSERT INTO fpo_rule values (2, '[2, 12]'); ERROR: range types do not match \errverbose ERROR: XX000: range types do not match LOCATION: range_minus_multi, rangetypes.c:1260 CREATE RULE rule4 AS ON DELETE TO fpo_rule DO INSTEAD UPDATE fpo_rule FOR PORTION OF f2 FROM 1 to 4 SET F1 = 2; DELETE FROM fpo_rule; ERROR: no relation entry for relid 3 \errverbose ERROR: XX000: no relation entry for relid 3 LOCATION: find_base_rel, relnode.c:556 DROP RULE rule4 ON fpo_rule; CREATE RULE rule5 AS ON UPDATE TO fpo_rule DO INSTEAD DELETE FROM fpo_rule FOR PORTION OF f2 FROM 1 to 4; UPDATE fpo_rule FOR PORTION OF f2 FROM 1 to 4 SET F1 = 2; -- server crash As of now, we should try to ban CREATE ROLE with UPDATE/DELETE FOR PORTION OF. -- jian https://www.enterprisedb.com/