From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Ray O'Donnell <ray(at)rodonnell(dot)ie>, 'PostgreSQL' <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Overlapping timestamptz ranges with priority |
Date: | 2021-06-29 21:10:37 |
Message-ID: | 5ae0e40a-0d60-3c96-7b63-0856077a8307@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 6/29/21 12:49 PM, Ray O'Donnell wrote:
> 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.
The queued bookings are for a particular aircraft or a particular time slot?
>
> Thanks,
>
> Ray.
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Ray O'Donnell | 2021-06-29 21:30:30 | Re: Overlapping timestamptz ranges with priority |
Previous Message | Tom Lane | 2021-06-29 20:49:33 | Re: PGDLLIMPORT: patch or not to patch |