Re: Overlapping timestamptz ranges with priority

From: Ray O'Donnell <ray(at)rodonnell(dot)ie>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, 'PostgreSQL' <pgsql-general(at)postgresql(dot)org>
Subject: Re: Overlapping timestamptz ranges with priority
Date: 2021-06-29 19:49:33
Message-ID: 4244dbae-6387-0d3c-0862-c4c72e71af3c@rodonnell.ie
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 29/06/2021 20:43, Adrian Klaver wrote:
>
> An ounce of prevention is worth a pound of cure:
>
> 1) Install btree_gist
> create extension btree_gist ;
>
> 2) create table bookings (
>     booking_id bigint not null,
>     aircraft_id integer,
>     booking_time_start timestamptz,
>     booking_time_end timestamptz,
>
>     constraint bookings_pk primary key (booking_id),
>     constraint timestamp_exclude EXCLUDE USING gist
>         (aircraft_id WITH =,
>          tstzrange(booking_time_start, booking_time_end, '[]') WITH &&)

[...]

> This way the overlap is prevented and you don't have to deal with it later.

Fair point.... The idea of using overlapping ranges was to allow for
queued bookings, which is something we permit. In the old system (which
this one is to replace) queued bookings are kept in a separate table. My
idea was to have them in a single table, which would seem more elegant -
but by golly it's harder! Maybe I should rethink my approach.

Thanks,

Ray.

--
Raymond O'Donnell // Galway // Ireland
ray(at)rodonnell(dot)ie

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message George Tarasov 2021-06-29 20:21:08 PGDLLIMPORT: patch or not to patch
Previous Message Adrian Klaver 2021-06-29 19:43:48 Re: Overlapping timestamptz ranges with priority