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 1vnnVp-00Brez-0F for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 00:46:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vnnVm-00ELay-3B for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 00:46:22 +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 1vnnVm-00ELaq-1p for pgsql-hackers@lists.postgresql.org; Thu, 05 Feb 2026 00:46:22 +0000 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vnnVj-00000000bVO-3Iel for pgsql-hackers@postgresql.org; Thu, 05 Feb 2026 00:46:21 +0000 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-352e3d18fa7so381206a91.1 for ; Wed, 04 Feb 2026 16:46:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770252379; cv=none; d=google.com; s=arc-20240605; b=jW9W+NLKhhvgB4d10a42FuaZOAgHUZ+Yx3T0aSoUWFJvJxBpMY65/soqP9XVu+vO4+ f9wvHPNjL9aGjGW8iAZOp0rOs7sAOJ4Ogdrt3Sin19j+cUKcQYFGY45L0J1dS8bISpz4 JFGXBbWjBh5g0CmU3bYVVNYpLNEh0WeCF82uIE91yvD0yYGwttypq4eOALoWsW0VNHZL V0Np9CyNCuf7puxdVIKA61l3zPnP62+IVMFGDD5YW7VRRnp10jsJbTyE9Pe2pG0Kpr2P JmHIHDM5fZx1OXBkOMorPTTkOzvnFEdwNtadoF1Gcz7SBNBwoQMV9KSUlXsz0a5k9eBz jnmw== 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=vIkzeQ1PcRmNftq10Ds/whVJcd95aw/pIatuthjm2ok=; fh=xz8qhgxjwQdB7EfkKhpNQdaiysMtmbbIN67J+/2Up2w=; b=aNeV0accE3Uhw51GT1YT88oNOatopBMcmDsXNUXrgvpGC7gKyjwZNNL5IKtt/X0zjP JWG8jSozcDD4ZUwUGnNVNE5Og9bv4nzM/Lm60l9nD1gfKnOWLRT0POU4oKJTE1md6RVT pXdYhQfrb1vfyOxlsOTifMsp+tISMzUQNtnMDhczfOcQNH8k8LFLH7HTlc/6uoSRoTQC vLv4Ca7+q1YsJowHovlEI2kLte1ctC5RvbWB7WM7meAQbd2CT1O5UlcDOvcFNIGAdT0J wCP0qe/YIM3pWFyjrDhYjZYQoped/HCuC9VXZp25Rwln4NyVLIjbyRf7HlCOlggqE8IP xomA==; 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=20230601; t=1770252379; x=1770857179; 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=vIkzeQ1PcRmNftq10Ds/whVJcd95aw/pIatuthjm2ok=; b=N16B/V6gYztAXQyttH4IaY6QzZHpeef/b82PFVYHfUFMOstGOfx1xNdmlpq/Yi/V5t d46UKKFt5cYhtNQnAXAPUrumM1RFBabaL1YScGKYsYl715tc+z8RRTkQxV3jRk0TzruI jEm+FdR6dJiYh7TQcieRTfy0Jm96hok95wZipnUBVOyZiZD2H6cu5Azekk851aNk49Og UVsl1mp5dhBMmFrbZpI6WIwACgyZax4vltLHCI6qBczqKKbVnWZXe4XwAJZaCxZGHLlp cMUyf6a17HnGqJF2RnQleGfSrz2NFZC+GmIw1Xrwcn3dCU0qBKCB0P7s614erLKc/O7Y Pfnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770252379; x=1770857179; 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=vIkzeQ1PcRmNftq10Ds/whVJcd95aw/pIatuthjm2ok=; b=Xs8m4oLAh7cX8FC9H8IK4I695HwIsHWR240hkltK2i9jDk7ZWvuu2aru9DNhDSeyaO Xr2ExvT+0ogz+7l9NkFas9Fyi5uJ1MK14FhUQ0OGLllICwFyVaK95daezB47bJgT28o8 QdvcNbQ3m2VdOKsdv/foT4w2JKk+3fvcRsBwEjMHHGEza/KNnEa9Xj2B1Li+i4BqfdUj 1Giqp6fc/nWNcf4LbniapsZqDL9vr6Yb5kwBbZIvYWHcakB9cmpKpK5bNMOOdWRiEvzG k9yXJ1kj4q98tFzkMVPx+KvjS4levIPiBn91v8dGMkTjq4e7p6ZN/DowyKQ0q/kf4kyD yeRw== X-Forwarded-Encrypted: i=1; AJvYcCUJrwxnnvEQVXUqzTcqIdLMk5dtDUUCP4Z9cVU+uvIQPzrzMvvqLlJ+tNYIa6j1OO/k7kebBH5zjbsFOdP5@postgresql.org X-Gm-Message-State: AOJu0Yx3OBe2xAySJGFKVF7Sw9MKyOgv8L5eq/O+hCnqYAi8QAazVECt 0Nb38JSMmaL4VwW0q9dntytl68T6NhgZLJWAeyT0q0mzde12bxRCYJcOOkWrJeyrip92/J0BJKV 6Ko4ZABQUhYgCCUvv/VtSHoeyP3aAijg04EZ1 X-Gm-Gg: AZuq6aLREbsmiJiZiOvkJBKAiqsKamOWAdVzBCvvdMkCPiO0KM9EeYWE3mju914bcjg 0dQbfgZet3AlRpo8HfHQIjp5ohgctGYaq2sSg0ZX8hHYrZS1IaVmD/O3TgmhuSdX3fvymfS3jjQ I+UbhaCkIdHZQPm5J45wNR17tdd+VggWhZ27ZMCaOOBGJ1TBbgiur0KZeY5V4Jc6/MRFkZSCU1I fPHZ6vKnM3T3PqQAzKRGFHM2hrgZ9I4KX2uECyVMmvX7fQ5RMnPAmHcIxduZvK/aunIsPhwHdOr JLwk6wdHur6hruRzaCWeZyVpdg== X-Received: by 2002:a17:90b:4c84:b0:34c:6d33:7d34 with SMTP id 98e67ed59e1d1-35487123756mr4083283a91.16.1770252378841; Wed, 04 Feb 2026 16:46:18 -0800 (PST) MIME-Version: 1.0 References: <20260204.090451.1095005750732720998.ishii@postgresql.org> <20260204.192222.892684621512920290.ishii@postgresql.org> In-Reply-To: <20260204.192222.892684621512920290.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Thu, 5 Feb 2026 09:46:06 +0900 X-Gm-Features: AZwV_QiXjitaLdWMPcmO3M7wQGkaog0tr3rnv1Io4WGcCA-DPHRl0j4DWqpQols Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, vik@postgresfriends.org, er@xs4all.nl, peter@eisentraut.org, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="000000000000343b34064a0900e2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000343b34064a0900e2 Content-Type: multipart/alternative; boundary="000000000000343b33064a0900e0" --000000000000343b33064a0900e0 Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, > Therefore, I believe it only makes sense to add explicit initialization > > for nfaStatesActive and nfaContextsActive, since these are the only two > > that release_partition() also explicitly resets. > > That makes sense. > Thank you for confirming. > ## Proposal for consistency > > > > /* Initialize NFA free lists for row pattern matching */ > > winstate->nfaContext = NULL; > > winstate->nfaContextTail = NULL; > > winstate->nfaContextFree = NULL; > > winstate->nfaStateFree = NULL; > > winstate->nfaLastProcessedRow = -1; > > winstate->nfaStatesActive = 0; // Add this > > winstate->nfaContextsActive = 0; // Add this > > > > Would you like me to include this change in the next patch? > > Yes, please. > Done. Please see the attached patch. Best regards, Henson --000000000000343b33064a0900e0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

> Th= erefore, I believe it only makes sense to add explicit initialization
> for nfaStatesActive and nfaContextsActive, since these are the only tw= o
> that release_partition() also explicitly resets.

That makes sense.

Thank you for confirm= ing.

> ## Proposal for consiste= ncy
>
>=C2=A0 =C2=A0/* Initialize NFA free lists for row pattern matc= hing */
>=C2=A0 =C2=A0winstate->nfaContext =3D NULL;
>=C2=A0 =C2=A0winstate->nfaContextTail =3D NULL;
>=C2=A0 =C2=A0winstate->nfaContextFree =3D NULL;
>=C2=A0 =C2=A0winstate->nfaStateFree =3D NULL;
>=C2=A0 =C2=A0winstate->nfaLastProcessedRow =3D -1;
>=C2=A0 =C2=A0winstate->nfaStatesActive =3D 0;=C2=A0 =C2=A0 =C2=A0 = =C2=A0 // Add this
>=C2=A0 =C2=A0winstate->nfaContextsActive =3D 0;=C2=A0 =C2=A0 =C2=A0 = // Add this
>
> Would you like me to include this change in the next patch?

Yes, please.


Done. Please see the attach= ed patch.

Best regards,
Henson
=C2=A0
--000000000000343b33064a0900e0-- --000000000000343b34064a0900e2 Content-Type: text/plain; charset="US-ASCII"; name="nfa_init_consistency.txt" Content-Disposition: attachment; filename="nfa_init_consistency.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ml8qjrz90 RnJvbSBkMDY1MjVkYjc4MWMzNDMyZDQ4ODcwNjc1OWM2NTNkMDBhNWUxOTgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDUgRmViIDIwMjYgMDk6NDE6MDMgKzA5MDAKU3ViamVjdDogW1BBVENIXSBJbml0aWFs aXplIE5GQSBwZXItcGFydGl0aW9uIGNvdW50ZXJzIGluIEV4ZWNJbml0V2luZG93QWdnCgotLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDIgKysKIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5k ZXggMTE3NmRmMDRiMmMuLjFlMDg4NjE1ZDE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRv d0FnZy5jCkBAIC0zMDU0LDYgKzMwNTQsOCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cg Km5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT5uZmFDb250ZXh0 RnJlZSA9IE5VTEw7CiAJd2luc3RhdGUtPm5mYVN0YXRlRnJlZSA9IE5VTEw7CiAJd2luc3RhdGUt Pm5mYUxhc3RQcm9jZXNzZWRSb3cgPSAtMTsKKwl3aW5zdGF0ZS0+bmZhU3RhdGVzQWN0aXZlID0g MDsKKwl3aW5zdGF0ZS0+bmZhQ29udGV4dHNBY3RpdmUgPSAwOwogCiAJLyoKIAkgKiBBbGxvY2F0 ZSB2YXJNYXRjaGVkIGFycmF5IGZvciBORkEgZXZhbHVhdGlvbi4gV2l0aCB0aGUgbmV3IHZhck5h bWVzCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000343b34064a0900e2--