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

From Arthur Zakirov
Subject Re: Prefix operator for text and spgist support
Date
Msg-id 20180219120650.GA2142@zakirov.localdomain
Whole thread Raw
In response to Prefix operator for text and spgist support  (Ildus Kurbangaliev <i.kurbangaliev@postgrespro.ru>)
Responses Re: Prefix operator for text and spgist support
List pgsql-hackers
Hello,

On Fri, Feb 02, 2018 at 06:03:27PM +0300, Ildus Kurbangaliev wrote:
> Hi,
> 
> Attached patch introduces prefix operator ^@ for text type. For 'a ^@ b'
> it returns true if 'a' starts with 'b'. Also there is spgist index
> support for this operator.
> 
> It could be useful as an alternative for LIKE for 'something%'
> templates. Or even used in LIKE queries instead of ~>=~ and ~<~ in the
> future. But it would require new strategy for btree.

I've looked at the patch. It is applied and tests pass.

I have a couple comments:

> +    if (ptype == Pattern_Type_Prefix)
> +    {
> +        char    *s = TextDatumGetCString(constval);
> +        prefix = string_to_const(s, vartype);
> +        pstatus = Pattern_Prefix_Partial;
> +        rest_selec = 1.0;    /* all */
> +        pfree(s);
> +    }
> +    else
> +        pstatus = pattern_fixed_prefix(patt, ptype, collation,
> +                                       &prefix, &rest_selec);

I think it is better to put Pattern_Type_Prefix processing into
pattern_fixed_prefix() as another case entry.

Secondly, it is worth to fix the documentation. At least here [1]. Maybe
there are another places where documentation should be fixed.


1 - https://www.postgresql.org/docs/current/static/spgist-builtin-opclasses.html

-- 
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company


pgsql-hackers by date:

Previous
From: Laurenz Albe
Date:
Subject: NEXT VALUE FOR sequence
Next
From: Justin Pryzby
Date:
Subject: Re: [doc fix] Correct calculation of vm.nr_hugepages