Re: Worthwhile optimisation of position()?

From: Thomas Hallgren <thomas(at)tada(dot)se>
To: Thomas Hallgren <thomas(at)tada(dot)se>
Cc: Tim Allen <tim(at)proximity(dot)com(dot)au>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Worthwhile optimisation of position()?
Date: 2006-03-24 07:19:11
Message-ID: 44239D6F.6010409@tada.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thomas Hallgren wrote:
> Tom Lane wrote:
>> Tim Allen <tim(at)proximity(dot)com(dot)au> writes:
>>
>>> Thomas Hallgren wrote:
>>>
>>>> The position function must look for 'ch' everywhere in the string so
>>>> there's no way it can use an index.
>>>>
>>
>>
>>> I think the '= 0' bit is what Chris was suggesting could be the basis
>>> for an optimisation.
>>>
>>
>> Yeah. AFAICS the transformation Chris suggested is valid. I'm really
>> dubious that it's worth expending planner cycles to look for it though.
>> LIKE is something that everybody and his brother uses, but who uses this
>> position()=0 locution?
>>
>> regards, tom lane
>>
> The documentation says: position('om' in 'Thomas') == 3 so i assumed
> that the returned index was 1-based and that a zero meant 'not found'.
> If I'm wrong ,perhaps the docs need to be updated?
>

The docs are correct so my initial point was correct. "position('ch' in user) = 0" is
equivalent to "user NOT LIKE '%ch%'" and there's no way you can index that.

Regards,
Thomas Hallgren

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2006-03-24 07:23:02 Re: pgNixInstaller: Making PostgreSQL relocatable
Previous Message Christopher Kings-Lynne 2006-03-24 06:58:54 Re: Worthwhile optimisation of position()?