From: Jeff Davis Date: Thu, 5 Sep 2013 06:30:27 +0000 (-0700) Subject: Improve Range Types and Exclusion Constraints example. X-Git-Tag: REL9_3_1~34 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fb843b2679d959a63f48c2f4ad52243053e1a5d4;p=postgresql Improve Range Types and Exclusion Constraints example. Make the examples self-contained to avoid confusion. Per bug report 8367 from KOIZUMI Satoru. --- diff --git a/doc/src/sgml/rangetypes.sgml b/doc/src/sgml/rangetypes.sgml index 8dabc833e9..d1125618b4 100644 --- a/doc/src/sgml/rangetypes.sgml +++ b/doc/src/sgml/rangetypes.sgml @@ -451,7 +451,10 @@ CREATE INDEX reservation_idx ON reservation USING gist (during); range type. For example: -ALTER TABLE reservation ADD EXCLUDE USING gist (during WITH &&); +CREATE TABLE reservation ( + during tsrange, + EXCLUDE USING gist (during WITH &&) +); That constraint will prevent any overlapping values from existing @@ -459,14 +462,14 @@ ALTER TABLE reservation ADD EXCLUDE USING gist (during WITH &&); INSERT INTO reservation VALUES - (1108, '[2010-01-01 11:30, 2010-01-01 13:00)'); + ('[2010-01-01 11:30, 2010-01-01 15:00)'); INSERT 0 1 INSERT INTO reservation VALUES - (1108, '[2010-01-01 14:45, 2010-01-01 15:45)'); + ('[2010-01-01 14:45, 2010-01-01 15:45)'); ERROR: conflicting key value violates exclusion constraint "reservation_during_excl" -DETAIL: Key (during)=([ 2010-01-01 14:45:00, 2010-01-01 15:45:00 )) conflicts -with existing key (during)=([ 2010-01-01 14:30:00, 2010-01-01 15:30:00 )). +DETAIL: Key (during)=(["2010-01-01 14:45:00","2010-01-01 15:45:00")) conflicts +with existing key (during)=(["2010-01-01 11:30:00","2010-01-01 15:00:00")). @@ -479,6 +482,7 @@ with existing key (during)=([ 2010-01-01 14:30:00, 2010-01-01 15:30:00 )). are equal: +CREATE EXTENSION btree_gist; CREATE TABLE room_reservation ( room text, during tsrange, @@ -492,8 +496,8 @@ INSERT 0 1 INSERT INTO room_reservation VALUES ('123A', '[2010-01-01 14:30, 2010-01-01 15:30)'); ERROR: conflicting key value violates exclusion constraint "room_reservation_room_during_excl" -DETAIL: Key (room, during)=(123A, [ 2010-01-01 14:30:00, 2010-01-01 15:30:00 )) conflicts with -existing key (room, during)=(123A, [ 2010-01-01 14:00:00, 2010-01-01 15:00:00 )). +DETAIL: Key (room, during)=(123A, ["2010-01-01 14:30:00","2010-01-01 15:30:00")) conflicts +with existing key (room, during)=(123A, ["2010-01-01 14:00:00","2010-01-01 15:00:00")). INSERT INTO room_reservation VALUES ('123B', '[2010-01-01 14:30, 2010-01-01 15:30)');