From: | Arthur Zakirov <a(dot)zakirov(at)postgrespro(dot)ru> |
---|---|
To: | Ildus Kurbangaliev <i(dot)kurbangaliev(at)postgrespro(dot)ru> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Prefix operator for text and spgist support |
Date: | 2018-02-19 12:06:51 |
Message-ID: | 20180219120650.GA2142@zakirov.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Justin Pryzby | 2018-02-19 12:16:02 | Re: [doc fix] Correct calculation of vm.nr_hugepages |
Previous Message | Laurenz Albe | 2018-02-19 12:03:51 | NEXT VALUE FOR sequence |