Re: Calculage avg. width when operator = is missing

From: "Shulgin, Oleksandr" <oleksandr(dot)shulgin(at)zalando(dot)de>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Calculage avg. width when operator = is missing
Date: 2015-09-23 06:24:10
Message-ID: CACACo5TzCErFKsHEvqFAEa+Kv__q3ya0yGZgxb0FdTTgv+LNjQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Sep 22, 2015 at 11:17 PM, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
wrote:

> Shulgin, Oleksandr wrote:
> > On Sep 22, 2015 8:58 PM, "Andrew Dunstan" <andrew(at)dunslane(dot)net> wrote:
>
> > > Yes, "/revenons/ à /nos moutons/." You can set up text based comparison
> > > ops fairly easily for json - you just need to be aware of the
> limitations.
> > > See https://gist.github.com/adunstan/32ad224d7499d2603708
> >
> > Yes, I've already tried this approach and have found that analyze
> > performance degrades an order of magnitude due to sql-level function
> > overhead and casts to text. In my tests, from 200ms to 2000ms with btree
> > ops on a default sample of 30,000 rows.
>
> You should be able to create a C function json_cmp() that simply calls
> bttextcmp() internally, and C functions for each operator using that
> one, in the same way.
>

Yes, but I didn't try this because of the requirement to
compile/install/maintain the externally loadable module. If I could just
use CREATE FUNCTION on a postgres' internal function such as texteq or
bttextcmp (with obj_file of NULL, for example) I would definitely do that.
:-)

--
Alex

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Shulgin, Oleksandr 2015-09-23 06:27:40 Re: Calculage avg. width when operator = is missing
Previous Message David Rowley 2015-09-23 05:11:35 Re: PATCH: use foreign keys to improve join estimates v1