BETWEEN SYMMETRIC/ASYMMETRIC patch - Mailing list pgsql-patches

From Christopher Kings-Lynne
Subject BETWEEN SYMMETRIC/ASYMMETRIC patch
Date
Msg-id GNELIHDDFBOCMGBFGEFOKEBBCCAA.chriskl@familyhealth.com.au
Whole thread Raw
List pgsql-patches
Hi,

This patch implements the TODO item:

* Add BETWEEN ASYMMETRIC/SYMMETRIC

I have added a regression test to select.sql - I don't know if this is the
correct place.  Someone should run their eyes over the results in select.out
to make sure they are correct.  There are some "non intuitive" results...

This patch makes ASYMMETRIC and SYMMETRIC reserved words and this should be
mentioned in the release notes.

I used the not(a and b) = not(a) or not(b) expansion to derive the
expressions.

Chris

This is what the SQL99 spec has to say on the matter, I believe this patch
adheres to the spec:

----------------------------

<between predicate> ::=
     <row value expression> [ NOT ] BETWEEN
       [ ASYMMETRIC | SYMMETRIC ]
       <row value expression> AND <row value expression>


Syntax Rules

1) If neither SYMMETRIC nor ASYMMETRIC is specified, then
   ASYMMETRIC is implicit.

2) Let X, Y, and Z be the first, second, and third <row value
   expression>s, respectively.

3) "X NOT BETWEEN SYMMETRIC Y AND Z" is equivalent to "NOT ( X
   BETWEEN SYMMETRIC Y AND Z )".

4) "X BETWEEN SYMMETRIC Y AND Z" is equivalent to "((X BETWEEN
   ASYMMETRIC Y AND Z) OR (X BETWEEN ASYMMETRIC Z AND Y))".

5) "X NOT BETWEEN ASYMMETRIC Y AND Z" is equivalent to "NOT ( X
   BETWEEN ASYMMETRIC Y AND Z )".

6) "X BETWEEN ASYMMETRIC Y AND Z" is equivalent to "X>=Y AND X<=Z".

Access Rules

   None.

General Rules

   None.

Conformance Rules

1) Without Feature T461, "Symmetric <between predicate>",
   conforming SQL language shall not specify SYMMETRIC or
   ASYMMETRIC.

2) Without Feature S024, "Enhanced structured types", no subfield
   of the declared type of a <row value expression> that is simply
   contained in a <between predicate> shall be of a structured
   type.

Attachment

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: unknownin/out patch (was [HACKERS] PQescapeBytea is
Next
From: Bruce Momjian
Date:
Subject: Re: FW: [HACKERS] decode() function for PostgreSQL