pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alexander Borisov <lex.borisov@gmail.com>
To: Jeff Davis <pgsql@j-davis.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
To: pgsql-hackers@postgresql.org
Subject: Re: Optimization for lower(), upper(), casefold() functions.
Date: Sun, 16 Mar 2025 01:28:00 +0300
Message-ID: <e0bf02f7-d4cb-4bda-934e-9fcc79b7fb47@gmail.com> (raw)
In-Reply-To: <177451ea791a1f90039ea3047f1f890b1f9ae1db.camel@j-davis.com>
References: <7cac7e66-9a3b-4e3f-a997-42aa0c401f80@gmail.com>
	<12956299-1496-4455-b3ab-299cc0a87d7c@gmail.com>
	<340f2451-cd76-487b-a1e4-0f0a2fe91fba@gmail.com>
	<3ffb8b75b26e76624668c0883cac7886468c5d07.camel@j-davis.com>
	<5cf176fa-44b9-4019-b9b7-ee902352a844@gmail.com>
	<3080de9bcce916cf8720ac197f634e381c4de564.camel@j-davis.com>
	<1e3f4f6f-9b12-4109-b0d2-a4c52b5064f8@gmail.com>
	<d0dd50662da84f582c34247f4ed43061e8d86d34.camel@j-davis.com>
	<e9057c71-93ec-4a21-b02e-979c7da2b665@gmail.com>
	<f1d9edd497cc799720cdb49c50cd0067460a5443.camel@j-davis.com>
	<cc097475-8fc5-4d3a-8044-8438126933b2@gmail.com>
	<4f3772355e038acd3cfe0be43ae2c1aacae1794d.camel@j-davis.com>
	<be117144-0d26-4763-ae97-f12e87ee2741@gmail.com>
	<2c10910c21b16cb9a0e5f67d80589e3acae2b6ef.camel@j-davis.com>
	<44005c3d-88f4-4a26-981f-fd82dfa8e313@gmail.com>
	<2a9e520ba41b318df8ed396ef99ed1e3d3e4b5b6.camel@j-davis.com>
	<5b6a619b-58dc-4f55-8398-97595f559794@gmail.com>
	<177451ea791a1f90039ea3047f1f890b1f9ae1db.camel@j-davis.com>

15.03.2025 23:07, Jeff Davis wrote:
> On Fri, 2025-03-14 at 15:00 +0300, Alexander Borisov wrote:
>> I tried adding a loop to create tables, and everything looks fine
>> (v7).

[...]

> I prefer to generalize when we have the other code in place. As it was,
> it was a bit confusing why the extra arguments and subroutines were
> there.

Thanks Jeff for the review of my patch!

> Also, make_ranges() doesn't seem to do what is described in the
> comment: it produces a single range. I changed "> $limit" to ">=
> $limit", but then it generates 3 ranges, not two. I rewrote it to be
> more clear what's going on:

[...]

I had some comments, but since the patch is already committed,
it's fine.

> When looking around, I didn't find a lot of material discussing this
> generated-branches approach. While it's mentioned a few places, I
> couldn't even find a consistent name for it. If you know of something
> where I can read some more analysis, please send a link.

Unfortunately, I can't send any links. I came up with this myself, for
my project https://github.com/lexbor/lexbor. I saw that Postgres could
improve the approach to Normalization Form, then I noticed that case is
not all good either. That's why I took it up.
In other words, this approach is purely my idea, and it is showing well.
I really like Postgres and want to help you improve it, and I'm very
good at Unicode.

I feel like my knowledge will be useful for Postgres.

Thank you Jeff again for your time.


Regards,
Alexander Borisov






view thread (33+ messages)  latest in thread

Message-ID: <e0bf02f7-d4cb-4bda-934e-9fcc79b7fb47@gmail.com>
Permalink:  ../e0bf02f7-d4cb-4bda-934e-9fcc79b7fb47@gmail.com/
Also on:    postgresql.org/message-id/e0bf02f7-d4cb-4bda-934e-9fcc79b7fb47@gmail.com

 · 

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: pgsql-hackers@postgresql.org
  Cc: lex.borisov@gmail.com, pgsql@j-davis.com, hlinnaka@iki.fi
  Subject: Re: Optimization for lower(), upper(), casefold() functions.
  In-Reply-To: <e0bf02f7-d4cb-4bda-934e-9fcc79b7fb47@gmail.com>

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

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