public inbox for [email protected]  
help / color / mirror / Atom feed
From: Tom Lane <[email protected]>
To: Laurenz Albe <[email protected]>
Cc: Dominique Devienne <[email protected]>
Cc: [email protected]
Subject: Re: Latest patches break one of our unit-test, related to RLS
Date: Fri, 12 Sep 2025 21:53:17 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <CAFCRh-8NwJd0jq6P=R3qhHyqU7hw0BTor3W0SvUcii24et+zAw@mail.gmail.com>
	<CAFCRh-93hsRvoJqQCwXq06=AJJJ_s783gVsGHKc-QjgOO6jGVg@mail.gmail.com>
	<[email protected]>
	<CAFCRh--DPWEHpRmdr-Jfw4guYqjc9TM_QyVH7SR4B=Le5gGe3Q@mail.gmail.com>
	<CAFCRh--M1y2YpJJMb6undzvyvhd4geKtRWFkDyr1shHvvoOkpQ@mail.gmail.com>
	<CAFCRh-_OBKtabe8MO0vUocNSq_O3_b852AXknPiNhL0tNUBGQg@mail.gmail.com>
	<CAFCRh-_U+8fmRoc-sYM5ahp=9dNjs=Dri1LFLcHCgEJX8Zq_oA@mail.gmail.com>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>

Laurenz Albe <[email protected]> writes:
> On Fri, 2025-09-12 at 20:12 -0400, Tom Lane wrote:
>> Should not we be setting charclass_start to 1 after incrementing
>> charclass_depth?

> What I call "charclass depth" is misleading, I am afraid.
> Really, it should be "bracket depth".  Only the outermost pair of brackets
> starts an actual character class.  Example:
>   []abc[:digit:]]
> A caret or closing bracket right after the inner opening bracket wouldn't
> be a special character, and I think it would never be legal.

Ah, got it.  But this logic definitely deserves more comments.
What do you think of something like

            if (pchar == ']' && charclass_start > 2)
            {
                /* found the real end of a bracket pair */
                charclass_depth--;
                /* past start of outer brackets, so keep charclass_start > 2 */
            }
            else if (pchar == '[')
            {
                /* start of a nested bracket pair */
                charclass_depth++;
                /* leading ^ or ] in this context is not special */
                charclass_start = 3;
            }
            else if (pchar == '^')
            {
                /* okay to increment charclass_start even if already > 1 */
                charclass_start++;
            }
            else
            {
                /* otherwise (including case of leading ']') */
                charclass_start = 3;    /* definitely past the start */
            }

> Perhaps s/charclass_depth/bracket_depth/ would be a good idea.

Wouldn't object to that.  Maybe we can think of a better name for
"charclass_start" too --- that sounds like a boolean condition.
The best I'm coming up with right now is "charclass_count", but
that's not that helpful.

			regards, tom lane






view thread (9+ messages)

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Latest patches break one of our unit-test, related to RLS
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox