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 1wYamu-000M8f-1w for pgsql-hackers@arkaria.postgresql.org; Sun, 14 Jun 2026 02:41:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wYals-0051HP-2Q for pgsql-hackers@arkaria.postgresql.org; Sun, 14 Jun 2026 02:40:24 +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 1wYals-0051HG-1I for pgsql-hackers@lists.postgresql.org; Sun, 14 Jun 2026 02:40:24 +0000 Received: from mail-ua1-x929.google.com ([2607:f8b0:4864:20::929]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wYalp-00000000GsG-3veR for pgsql-hackers@postgresql.org; Sun, 14 Jun 2026 02:40:24 +0000 Received: by mail-ua1-x929.google.com with SMTP id a1e0cc1a2514c-9639b1ef167so848021241.2 for ; Sat, 13 Jun 2026 19:40:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781404819; cv=none; d=google.com; s=arc-20240605; b=lMECUo9omoZ9oFl7GQgyxsMT04+crCw1g4omUgv/BfR94bbRxvQCg2n5XDYTdzSrMH 50xOxD5nn9TE4H7wECuaGHoZS83ppFV/N46/izaXpFyNfDIZ86mEdVbPbGwkHWW1k5Zn aF8pG7UQU3Cy4/FlsTvqnyQEfOvjreqRiHMdXbIPzZUZ9de37sD1I+iEElf756+U9krF IWmh58yJKZSaw/43B32HGzIOiVTAk4Mned04zw/N+fh+Rr+Go8AwKHGrs1l33fxlF7S2 4bjvjrbkTFX4TRPlG2Qx4Q8GGv1Go/OBjt3MDZlSMQNlYmKTfY3kFkKXnk7aA2hhQc8K d4aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=uaREylETUSBjWLqfTGJ7ZfkeE7fyygu9dyI+kS1pp+A=; fh=WpkO1mEsSx0iaGTMJRB+pXZWmiu6PTFMfEIOhclHlEY=; b=GRNRilmgPs8+p+azq3P6p/msSlXVTbQlJoBQCwZUM8Gd/CaBQBmuFY/I6Xv2Lg7Lek VJfX2UeSyKALNkjaPN/j6l/y/I9lKMo9m+Qw1uRNKByMZ+FgOQn8UHRF32zeXQBikvR0 e8+rXMiuAWW7ztGXZggLLclIEqpcBeNvQsNLSVeVi0rSdHYobd4ZedtcxQfcKDnzczea aorVyLScaQfuFFn1XfREh9zyH3PCPm1mugs2oYWr9w0FoUaTOOUt3tIk0KGMNXSGNqm0 H23SsDXyl8RBPUF+y7lks5gwcQUA1Qn0ofwJY9O+v4fGKWUu8EF42R/7/f+IiRic1R2c 1boA==; 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=1781404819; x=1782009619; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=uaREylETUSBjWLqfTGJ7ZfkeE7fyygu9dyI+kS1pp+A=; b=iLnUwSVabYchI7pS4vRDerD5V1Q+kJEZl5EXPNhyMaj/WcvldUkjoY4W9QQrSQLhf1 O7PTZICQna4voWaWheBvQrH+gC3qzNuUrcIfOQCu6+Jxe+6zvDvKn4dP/sE7v3fM1YTq fQboln4X5zP8XQ14GzCvyP8wQp3TySY6kXwarW5S0RlBJcoW3J1hY0fzg9BSIUvY4k0/ Wdkrdx8S4u2kHkjHqj2a4UQCwfxGAJVst3qFeM1Ofdxm1Hg/ViPpOwlrpEmGgVDUEplq vvOUS4b3kmWHVq71cxWGuvI6ehffswtN2ldyFO+knmG800qbgp0k77rsTwZSqVezfAfZ 8cEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781404819; x=1782009619; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uaREylETUSBjWLqfTGJ7ZfkeE7fyygu9dyI+kS1pp+A=; b=pz5uHJJDJw3lwsdo7iOG4rlhXNkKCh50LtMjIm1ygO/mRtTHASkGj16sileCO9zJl4 72bEaWITqwCBgbt1SqSEo4HSwnDZc5SKmP6jRz0rO2koCf9dRMzuxVvN0BPz2RqOTCQ4 faEeDKCDd9dO+tV7fpwUlR96CrXMjqLKpgXAwhZSuHNvE99nuJ6Uw7jzkPbI1Yrcgo/x OKmkZ3IbDuUHemb3iBxHR3sdaDNcWcvxU8zpEq8xg8HDR4PeuR8L5ybpXddMotnOEzCe tYYtFhkZNNaghl1Oh95xMF/BPJZ9THk7iNsHHieIER+L0ERWjxNT0O1067nZEF+0g8pp z83Q== X-Forwarded-Encrypted: i=1; AFNElJ+07nTLSyDRmU1PCHlmrpI/rN8oSm/lxSiq10s5Ok8dZFQ0ykGnw+10nlkJ90AihyS+EJROKGc7h8VHVBvv@postgresql.org X-Gm-Message-State: AOJu0YyZp5qf7Cnaam7GVmaHSRlVDIY1cszS3IjzE2AvU2hzS4RED+Q8 /Z36cDVO5Gctg/7CqiqKxeuSz6P0eZhk1i4ybT/wYD7XKmB1eNJ3zmTjUC956dETkoqpgnNscxt Q6ZXANaTvbCTzf+KpqSnWF/rS9Rp4tUQ= X-Gm-Gg: Acq92OFdIk6Mrod3vh6WvzQb1JFCq1XzpLrszg142LH033qNEBMUZkqAvvOlMKYvV0d ktxZwK76T3XhKYf01T2OgJ8SaKRwun2W1zpkpg6cN2WEZeqDgEUGe156Vt6vjgHBhgcplTlgkfe 4Qlp1lRMBkuZeU0fmKJlw76SCmjVnQDm3EtpHRznbV0ly6ttnQoa+uJCw5P82u3RS2LBmox0lWH mne680deEolBef76gvVHhhBi5KD1H8/3RtTa6ltPEJm+JM2nSZdvaQUi/gkIutY2zZmoaAfpt/Q iIM2U41JSGFWW3BZ5IYzv2DMwsPkPn/DCKcHeNw68zhy0yPP92niCPTA5sOnlRFvuuA1LQV7cEy LDQAdwZGfERS504c9g+3ZAvT8pT3VNgzUnoCtgNDu/VWY1vF2PdL6BMmIc1DJTMzzPgYEUU9Z7o QvRS1ai5qP0XtpbIcBE9/hP8ftNA== X-Received: by 2002:a05:6102:32c4:b0:6c2:e290:cc69 with SMTP id ada2fe7eead31-71f60e0fc5bmr3464600137.23.1781404819131; Sat, 13 Jun 2026 19:40:19 -0700 (PDT) MIME-Version: 1.0 References: <20260613.212530.63949290085162247.ishii@postgresql.org> In-Reply-To: <20260613.212530.63949290085162247.ishii@postgresql.org> From: jian he Date: Sun, 14 Jun 2026 10:39:42 +0800 X-Gm-Features: AVVi8CeRLIsnjAcY2oUEgeRqZtpWZPoeBNvmcNMeqzgQFyK0H_Qpig1xsMAloiY Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: assam258@gmail.com, zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, li.evan.chao@gmail.com, pgsql-hackers@postgresql.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sat, Jun 13, 2026 at 8:26=E2=80=AFPM Tatsuo Ishii = wrote: > > I have created v48 RPR (Row pattern recognition) patches based on the > attached incremental patches against v47 patches. I have briefly > looked through all the incremental patches. If I have missed > something, I will follow up later. The patches are based on the > commit 3e3d7875e95 on the master branch. > get_windowclause_startup_tuples do we need some comments for WindowClause->defineClause src/backend/executor/README.rpr (2) Transcription to WindowClause - Copies rpPattern, rpSkipTo, initial fields In transformRPR, we did this: ``wc->rpPattern =3D windef->rpCommonSyntax->rpPattern;`` Since this is an assignment, not a copy, is "Copies rpPattern" incorrect? ISO reference typo: most occurrences use {ISO/IEC 19075}, but rpr_integration.sql and some places reference 9075-2:2016 instead of 19= 075. We may need check all occurrences to ensure consistency. In struct ResultRelInfo, we have fields like {ri_CheckConstraintExprs, ri_WithCheckOptionExprs}. Similarly, I want to rename WindowAggState->defineClauseList to defineClauseExprs I think the comment on function contain_rpr_walker can be removed, since transformWithClause already explains it. Is "judgment" really the right word? I don't fully understand the purpose of eval_nav_offset_helper now. Also, the branch where (isnull =3D=3D true) and (offset < 0) appears unreachable; it's never hit in the regression tests. We should add some regression tests for these scenarios. -- jian https://www.enterprisedb.com/