Re: Prefix operator for text and spgist support - Mailing list pgsql-hackers

From Alexander Korotkov
Subject Re: Prefix operator for text and spgist support
Date
Msg-id CAPpHfduzc_6G0yqJfji7NxfJ6ML5nODDx6+A15GNis5zgRho+Q@mail.gmail.com
Whole thread Raw
In response to Re: Prefix operator for text and spgist support  (Teodor Sigaev <teodor@sigaev.ru>)
Responses Re: Prefix operator for text and spgist support  (Ildus Kurbangaliev <i.kurbangaliev@postgrespro.ru>)
List pgsql-hackers
On Thu, Mar 22, 2018 at 7:09 PM, Teodor Sigaev <teodor@sigaev.ru> wrote:
Patch looks resonable, but I see some place to improvement:
spg_text_leaf_consistent() only needs to check with text_startswith() if reconstucted value came to leaf consistent is shorter than given prefix. For example, if level >= length of prefix then we guarantee that fully reconstracted is matched too. But do not miss that you may need to return value for index only scan, consult returnData field

In attachment rebased and minorly edited version of your patch.

I took a look at this patch.  In addition to Teodor's comments I can note following.

* This line looks strange for me.
-			if (strategy > 10)
+			if (strategy > 10 && strategy != RTPrefixStrategyNumber)
It's not because we added strategy != RTPrefixStrategyNumber condition there.
It's because we already used magic number here and now have a mix of magic
number and macro constant in one line.  Once we anyway touch this place,
could we get rid of magic numbers here?

* I'm a little concern about operator name.  We're going to choose @^ operator for
prefix search without any preliminary discussion.  However, personally I don't
have better ideas :)

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company 

pgsql-hackers by date:

Previous
From: Pavan Deolasee
Date:
Subject: Re: Changing WAL Header to reduce contention during ReserveXLogInsertLocation()
Next
From: Simon Riggs
Date:
Subject: Re: Changing WAL Header to reduce contention during ReserveXLogInsertLocation()