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 1wUPpy-0018rv-1T for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jun 2026 14:11:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wUPpx-00Ehmw-0v for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jun 2026 14:11:21 +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 1wUPpw-00EhmQ-3C for pgsql-hackers@lists.postgresql.org; Tue, 02 Jun 2026 14:11:21 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wUPpu-00000000ksy-3QZb for pgsql-hackers@postgresql.org; Tue, 02 Jun 2026 14:11:20 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-68cec9f4c6cso4304110a12.0 for ; Tue, 02 Jun 2026 07:11:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780409477; cv=none; d=google.com; s=arc-20240605; b=BROtgf43VNQ6Kiosm6jAIww5ufzBMale4gnTVtdNhaGl5b8285KImWrEGav5CaWZqi 44yR3A7P8IqFzR66CYjCqUQcNCSDwAngy4uLVsoPe3wMNBc6EwKjwwH1dcyxLiimbKOu Fw7uzWzwhIyo8QCiNHtQhB5f9j3tY8VpL4uiS007D6Pj81A6tUK8ANXjjOY1/obgaH70 SVUi+Dxa4zGBlf81LUEjalL6m8onb7zI6ADDJqKIblBbgusYJgxRl67dryw7NMqH6Rqa qMCfPLgFhVIAE5o51bgIahL7vLRv/co4j+8Ugq9wMhXUnSj9hzY7nRNDKsMV6OAadM0A a/Gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=pYisqFKi65bMQgUjbau+UZDRg9g4pa5Fl2oT0Z+8m/g=; fh=OEHsDpcFCKjFMzkJKO1dtUK9Bon32i/LiUj8mPUiA50=; b=ChkKUCR6GeiPHI/NqeA1RnWTeFayxYSUypPwIBbS6s8+800W1RBfLz6BZGtuLPjadQ VKdmdCarL5X1gwFm4LukLWOA22yak28IRhgvrGeXMjf8zMb3UTgXVhogAdaJ1tsNqIal V1C8diHnhSPvcPyb6mMbs/WNryGRIuotXXvfHAy6A6FDAaC6LDYLe9pIyrl3jJuwlDVE lhRxC69WHbk1Rr4R1HG2Qv6TGU8sD3F3toAPCQWVABP/aX/YgFgu9ECFGjrp9cG7v2Yo c42NLHtygInhMhfuDfI5r9l6kCEjYT6PRHe4ZbHpPG+b+MEeB9vV5iDkGNRRf6ox96Eo yNWQ==; 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=1780409477; x=1781014277; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=pYisqFKi65bMQgUjbau+UZDRg9g4pa5Fl2oT0Z+8m/g=; b=hUw1lchmNXzPT3n/ux/F9mpz4/HHVt1/Gz+VOaayLQWhtnjsyiSVZkGrvv+9w5yerI 9QGEu7z1R9KZ1EpWSJQ2KSF3AeR3NpSnB5NX8Fo9CSDkZsf2tSc9OIm73nO2lHfFLhW3 IP4Y6aM/9KwIuA1w2n6vPe9GLwPSzsRDgKdSTTvyTQPI/rTK3dQRPhtMTkCpPi+SHUOz HgtQIOn7BSqWalqRgZmp/pED8yLQ1kI9amt8l8P8Cg1niKL6a9A7xEe4NxIvh2M7AlTX 7UFtfy1mhswzDsqzpGfrBVVRzsnyjwFP7kEfmrY5z8RDqMH9+7V/5UBqOi/s53bUO6ei WL/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780409477; x=1781014277; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=pYisqFKi65bMQgUjbau+UZDRg9g4pa5Fl2oT0Z+8m/g=; b=nPSYa5PtP3b6rfxCI5f6orAC4J/1PtsXeKhJ9Jar3vNNqKckrAvNDttGzJ5+fGXWiD 9vZfPAvnG/b9mQ77zv1ZOhZoeqFp+6bmt5U57IMUS0BH6XHh625IqkshUgMcrAtHSojy qiEJchc902I4o6aqMRuU7djX6bkS7A8o26d1PhP+zISXnLEUXQCIY8EAalFA5Ffgu5go 6hTJolNoP0b5RxxVntCdryulKAGKUtZAgHuiCowUHHdlqYwr0js1wqhUkXLIrsxZuJi1 FA/pAVApDgOOcf6YBMiHY7foOqyNJQjQRHMNQZ43716QocMEnAoH2Z8fFLLEg+CDEwH4 NCjQ== X-Forwarded-Encrypted: i=1; AFNElJ+0TDtclLUs0KFNqnjJhNadgnmoFo4yEOgkNhuzphaj+2Wf3X+emoyOaOLv1O07qR9TBFRyoL+9pfNQsutt@postgresql.org X-Gm-Message-State: AOJu0Yxs1DDn/rmGK8mqGcvjl9Ve6eHZ0rR9v0EEtoTka6CWfJs781V/ lTHiCPQbMZqOroMeu5VJvZJ0lttMuuH0jfgCQT2MLFRUgqJFqXPPSf5h6uA98uovVdUWgbB9iJS jDFRDObnZYMTQh/KeFD/guPX0oV1dAGk= X-Gm-Gg: Acq92OGH/P9iaPGdz4BHFC0gyX+49XE1SRuRoAKlumAthLcuYs7vu1+QyySyoKHPyP+ mPHgCkppZGCaWnHxaWvpobtNXvPHc1CzU4bTIi4WtyoRJoyjPWHEMC6zPIqvY9u7Md4d8BBuS74 7tMSCUiCTKcsdB8qWWfOyBBi0A1hvE7sRu/WO+co3Ko8wIACTM6twuFfobyuVdfc6sHqjjRpK+a cD50XBFOV05YwwQBSeBjPaGr9GsNnfxTlFzBhh1HskiVfR2YyXM5SuCNwqxcKrsuQZveJfHHJpP 2TUdtIIsXr2iI4N3buvoxX1hvWwtZLxrIQb1iZ4q6m++Q0brw8A= X-Received: by 2002:a17:907:689d:b0:bef:d3a1:5076 with SMTP id a640c23a62f3a-befd3b09992mr103084366b.19.1780409476918; Tue, 02 Jun 2026 07:11:16 -0700 (PDT) MIME-Version: 1.0 References: <20260602.142009.1903449512796629664.ishii@postgresql.org> <20260602.142356.343550180613194547.ishii@postgresql.org> <20260602.191912.1197273977474107705.ishii@postgresql.org> In-Reply-To: <20260602.191912.1197273977474107705.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Tue, 2 Jun 2026 23:11:05 +0900 X-Gm-Features: AVHnY4KoVG005YIUzDsqhTbMGzAKEfmRgnThKGBK9JR7Nz0aw7OU68-aD0mJcZQ Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: jian.universality@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: multipart/alternative; boundary="0000000000006d340c065345e293" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006d340c065345e293 Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, Catching up on today's notes -- all straightforward, so I'm folding them into one reply. > I'd prefer (3). Yes, I agree that 240 pattern variables is enough. Then (3) it is -- and with Jian on the same choice, that closes it. I'll go ahead with it. Since it's a narrowing it's only free pre-release, so it goes in the v48 core rather than a later follow-up. > static void > nfa_reevaluate_dependent_vars(WindowAggState *winstate, RPRNFAContext *ctx, > int64 currentPos) > > This function does not have a forward declaration. Moreover, it is put > in the "API exposed to nodeWindowAgg.c" section. [...] I suggest to add > a forward declaration for it and move it before "API exposed to > nodeWindowAgg.c" section. Agreed -- that was just an oversight. I'll add the forward declaration and move it out of the API-exposed section. > nocfbot-0025-...:55:+ (errcode(ERRCODE_WINDOWING_ERROR), > Maybe this is the only one worth to look into? Right -- I'll update 0025 in the next posting. Thanks, Henson --0000000000006d340c065345e293 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

Catching up on today's notes -- all = straightforward, so I'm folding them
into one reply.

> I&#= 39;d prefer (3). Yes, I agree that 240 pattern variables is enough.

= Then (3) it is -- and with Jian on the same choice, that closes it. I'l= l
go ahead with it. Since it's a narrowing it's only free pre-re= lease, so
it goes in the v48 core rather than a later follow-up.

= > static void
> nfa_reevaluate_dependent_vars(WindowAggState *wins= tate, RPRNFAContext *ctx,
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 int64 curre= ntPos)
>
> This function does not have a forward declaration. M= oreover, it is put
> in the "API exposed to nodeWindowAgg.c"= ; section. [...] I suggest to add
> a forward declaration for it and = move it before "API exposed to
> nodeWindowAgg.c" section.<= br>
Agreed -- that was just an oversight. I'll add the forward decla= ration
and move it out of the API-exposed section.

> nocfbot-0= 025-...:55:+ =C2=A0 (errcode(ERRCODE_WINDOWING_ERROR),
> Maybe this i= s the only one worth to look into?

Right -- I'll update 0025 in = the next posting.

Thanks,
Henson
--0000000000006d340c065345e293--