Re: EXCLUDE, Gist and integers

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Ken Tanzer <ken(dot)tanzer(at)gmail(dot)com>
Cc: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: EXCLUDE, Gist and integers
Date: 2015-07-16 05:03:01
Message-ID: CAECtzeWjUgfZOLPGz9J5s-GBjam8DfKyFBPYNWx8OveCr5y8Zw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

Le 16 juil. 2015 2:23 AM, "Ken Tanzer" <ken(dot)tanzer(at)gmail(dot)com> a écrit :
>
> Hi. I'm looking into adding daterange exclusions to some of my tables.
Following the documentation, I can do this no problem to prevent any
records from overlapping:
>
> CREATE TEMP TABLE foo (
> client_id integer,
> start_date date NOT NULL,
> end_date date,
> EXCLUDE using gist (daterange(start_date,end_date) with &&)
> );
>
> But what I really want is no overlapping records on a per-client basis.
I optimistically tried this:
>
> CREATE TEMP TABLE foo (
> client_id integer,
> start_date date NOT NULL,
> end_date date,
> EXCLUDE using gist (daterange(start_date,end_date) with &&,client_id
with =)
> );
>
> But Postgres responds thusly:
>
> ERROR: data type integer has no default operator class for access method
"gist"
> HINT: You must specify an operator class for the index or define a
default operator class for the data type.
>
> Can someone tell me what's the easiest way to make this work? Thanks in
advance!
>

You should install the btree_gist extension.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ken Tanzer 2015-07-16 05:19:10 Re: EXCLUDE, Gist and integers
Previous Message Tom Lane 2015-07-16 03:25:08 Re: utf8 encoding problem with plperlu