--- /dev/null
+QUERY: CREATE TABLE ABSTIME_TBL (f1 abstime);
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Jan 14, 1973 03:14:21');
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Mon May 1 00:30:30 1995'::abstime);
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('epoch'::abstime);
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('current'::abstime);
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('infinity'::abstime);
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('-infinity'::abstime);
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('May 10, 1943 23:59:12');
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 35, 1946 10:00:00');
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 28, 1984 25:08:10');
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('bad date format');
+QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Jun 10, 1843');
+
+QUERY: SELECT '' AS eleven, ABSTIME_TBL.*;
+eleven|f1
+------+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |Mon May 01 00:30:30 1995 PDT
+ |epoch
+ |current
+ |infinity
+ |-infinity
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+ |Invalid Abstime
+ |Invalid Abstime
+(11 rows)
+
+QUERY: SELECT '' AS eight, ABSTIME_TBL.*
+ WHERE ABSTIME_TBL.f1 < 'Jun 30, 2001'::abstime;
+eight|f1
+-----+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |Mon May 01 00:30:30 1995 PDT
+ |epoch
+ |current
+ |-infinity
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(8 rows)
+
+QUERY: SELECT '' AS eight, ABSTIME_TBL.*
+ WHERE ABSTIME_TBL.f1 > '-infinity'::abstime;
+eight|f1
+-----+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |Mon May 01 00:30:30 1995 PDT
+ |epoch
+ |current
+ |infinity
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(8 rows)
+
+QUERY: SELECT '' AS eight, ABSTIME_TBL.*
+ WHERE 'May 10, 1943 23:59:12'::abstime <> ABSTIME_TBL.f1;
+eight|f1
+-----+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |Mon May 01 00:30:30 1995 PDT
+ |epoch
+ |current
+ |infinity
+ |-infinity
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(8 rows)
+
+QUERY: SELECT '' AS one, ABSTIME_TBL.*
+ WHERE 'current'::abstime = ABSTIME_TBL.f1;
+one|f1
+---+-------
+ |current
+(1 row)
+
+QUERY: SELECT '' AS five, ABSTIME_TBL.*
+ WHERE 'epoch'::abstime >= ABSTIME_TBL.f1;
+five|f1
+----+----------------------------
+ |epoch
+ |-infinity
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(5 rows)
+
+QUERY: SELECT '' AS six, ABSTIME_TBL.*
+ WHERE ABSTIME_TBL.f1 <= 'Jan 14, 1973 03:14:21'::abstime;
+six|f1
+---+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |epoch
+ |-infinity
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(6 rows)
+
+QUERY: SELECT '' AS six, ABSTIME_TBL.*
+ WHERE ABSTIME_TBL.f1 >
+ '["Apr 1 1945 00:00:00" "Dec 30 1999 23:00:00"]'::tinterval;
+six|f1
+---+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |Mon May 01 00:30:30 1995 PDT
+ |epoch
+ |current
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(6 rows)
+
+QUERY: SELECT '' AS five, ABSTIME_TBL.*
+ WHERE (ABSTIME_TBL.f1 + '@ 3 year'::reltime)
+ < 'Jan 14 14:00:00 1977'::abstime;
+five|f1
+----+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |epoch
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(5 rows)
+
+QUERY: SELECT '' AS five, ABSTIME_TBL.*
+ WHERE (ABSTIME_TBL.f1 + '@ 3 year ago'::reltime)
+ < 'Jan 14 14:00:00 1971'::abstime;
+five|f1
+----+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |epoch
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(5 rows)
+
+QUERY: SELECT '' AS five, ABSTIME_TBL.*
+ WHERE (ABSTIME_TBL.f1 - '@ 3 year'::reltime)
+ < 'Jan 14 14:00:00 1971'::abstime;
+five|f1
+----+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |epoch
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(5 rows)
+
+QUERY: SELECT '' AS five, ABSTIME_TBL.*
+ WHERE (ABSTIME_TBL.f1 - '@ 3 year ago'::reltime)
+ < 'Jan 14 14:00:00 1977'::abstime;
+five|f1
+----+----------------------------
+ |Sun Jan 14 03:14:21 1973 PST
+ |epoch
+ |Mon May 10 23:59:12 1943 PWT
+ |Thu Mar 07 10:00:00 1946 PST
+ |Wed Dec 31 15:59:59 1969 PST
+(5 rows)
+
+QUERY: SELECT '' AS twenty, ABSTIME_TBL.*, RELTIME_TBL.*
+ WHERE (ABSTIME_TBL.f1 + RELTIME_TBL.f1)
+ < 'Jan 14 14:00:00 1971'::abstime;
+twenty|f1 |f1
+------+----------------------------+----------------
+ |epoch |@ 1 minute
+ |Mon May 10 23:59:12 1943 PWT|@ 1 minute
+ |Thu Mar 07 10:00:00 1946 PST|@ 1 minute
+ |Wed Dec 31 15:59:59 1969 PST|@ 1 minute
+ |epoch |@ 5 hours
+ |Mon May 10 23:59:12 1943 PWT|@ 5 hours
+ |Thu Mar 07 10:00:00 1946 PST|@ 5 hours
+ |Wed Dec 31 15:59:59 1969 PST|@ 5 hours
+ |epoch |@ 10 days
+ |Mon May 10 23:59:12 1943 PWT|@ 10 days
+ |Thu Mar 07 10:00:00 1946 PST|@ 10 days
+ |Wed Dec 31 15:59:59 1969 PST|@ 10 days
+ |epoch |@ 3 months
+ |Mon May 10 23:59:12 1943 PWT|@ 3 months
+ |Thu Mar 07 10:00:00 1946 PST|@ 3 months
+ |Wed Dec 31 15:59:59 1969 PST|@ 3 months
+ |epoch |@ 14 seconds ago
+ |Mon May 10 23:59:12 1943 PWT|@ 14 seconds ago
+ |Thu Mar 07 10:00:00 1946 PST|@ 14 seconds ago
+ |Wed Dec 31 15:59:59 1969 PST|@ 14 seconds ago
+(20 rows)
+
--- /dev/null
+QUERY: SELECT 1 AS one;
+one
+---
+ 1
+(1 row)
+
+QUERY: SELECT 't'::bool AS true;
+true
+----
+t
+(1 row)
+
+QUERY: SELECT 'f'::bool AS false;
+false
+-----
+f
+(1 row)
+
+QUERY: SELECT 't'::bool or 'f'::bool AS true;
+true
+----
+t
+(1 row)
+
+QUERY: SELECT 't'::bool and 'f'::bool AS false;
+false
+-----
+f
+(1 row)
+
+QUERY: SELECT not 'f'::bool AS true;
+true
+----
+t
+(1 row)
+
+QUERY: SELECT 't'::bool = 'f'::bool AS false;
+false
+-----
+f
+(1 row)
+
+QUERY: SELECT 't'::bool <> 'f'::bool AS true;
+true
+----
+t
+(1 row)
+
+QUERY: CREATE TABLE BOOLTBL1 (f1 bool);
+QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('t'::bool);
+QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('True'::bool);
+QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('true'::bool);
+QUERY: SELECT '' AS t_3, BOOLTBL1.*;
+t_3|f1
+---+--
+ |t
+ |t
+ |t
+(3 rows)
+
+QUERY: SELECT '' AS t_3, BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE f1 = 'true'::bool;
+t_3|f1
+---+--
+ |t
+ |t
+ |t
+(3 rows)
+
+QUERY: SELECT '' AS t_3, BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE f1 <> 'false'::bool;
+t_3|f1
+---+--
+ |t
+ |t
+ |t
+(3 rows)
+
+QUERY: SELECT '' AS zero, BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE booleq('false'::bool, f1);
+zero|f1
+----+--
+(0 rows)
+
+QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('f'::bool);
+QUERY: SELECT '' AS f_1, BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE f1 = 'false'::bool;
+f_1|f1
+---+--
+ |f
+(1 row)
+
+QUERY: CREATE TABLE BOOLTBL2 (f1 bool);
+QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('f'::bool);
+QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('false'::bool);
+QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('False'::bool);
+QUERY: INSERT INTO BOOLTBL2 (f1)
+ VALUES ('XXX'::bool);
+QUERY: SELECT '' AS f_4, BOOLTBL2.*;
+f_4|f1
+---+--
+ |f
+ |f
+ |f
+ |f
+(4 rows)
+
+QUERY: SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
+ WHERE BOOLTBL2.f1 <> BOOLTBL1.f1;
+tf_12|f1|f1
+-----+--+--
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+(12 rows)
+
+QUERY: SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
+ WHERE boolne(BOOLTBL2.f1,BOOLTBL1.f1);
+tf_12|f1|f1
+-----+--+--
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+(12 rows)
+
+QUERY: SELECT '' AS ff_4, BOOLTBL1.*, BOOLTBL2.*
+ WHERE BOOLTBL2.f1 = BOOLTBL1.f1 and BOOLTBL1.f1 = 'false'::bool;
+ff_4|f1|f1
+----+--+--
+ |f |f
+ |f |f
+ |f |f
+ |f |f
+(4 rows)
+
+QUERY: SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
+ WHERE BOOLTBL2.f1 = BOOLTBL1.f1 or BOOLTBL1.f1 = 'true'::bool;
+tf_12_ff_4|f1|f1
+----------+--+--
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |t |f
+ |f |f
+ |f |f
+ |f |f
+ |f |f
+(16 rows)
+
--- /dev/null
+QUERY: CREATE TABLE BOX_TBL (f1 box);
+QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(2.0,2.0,0.0,0.0)');
+QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(1.0,1.0,3.0,3.0)');
+QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(2.5, 2.5, 2.5,3.5)');
+QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(3.0, 3.0,3.0,3.0)');
+QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(2.3, 4.5)');
+WARN:Bad box external representation '(2.3, 4.5)'
+QUERY: INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
+WARN:Bad box external representation 'asdfasdf(ad'
+QUERY: SELECT '' AS four, BOX_TBL.*;
+four|f1
+----+-----------------
+ |(2,2,0,0)
+ |(3,3,1,1)
+ |(2.5,3.5,2.5,2.5)
+ |(3,3,3,3)
+(4 rows)
+
+QUERY: SELECT '' AS four, b.*, box_area(b.f1) as barea
+ FROM BOX_TBL b;
+four|f1 |barea
+----+-----------------+-----
+ |(2,2,0,0) | 4
+ |(3,3,1,1) | 4
+ |(2.5,3.5,2.5,2.5)| 0
+ |(3,3,3,3) | 0
+(4 rows)
+
+QUERY: SELECT '' AS three, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 && '(2.5,2.5,1.0,1.0)'::box;
+three|f1
+-----+-----------------
+ |(2,2,0,0)
+ |(3,3,1,1)
+ |(2.5,3.5,2.5,2.5)
+(3 rows)
+
+QUERY: SELECT '' AS two, b1.*
+ FROM BOX_TBL b1
+ WHERE b1.f1 &< '(2.0,2.0,2.5,2.5)'::box;
+two|f1
+---+-----------------
+ |(2,2,0,0)
+ |(2.5,3.5,2.5,2.5)
+(2 rows)
+
+QUERY: SELECT '' AS two, b1.*
+ FROM BOX_TBL b1
+ WHERE b1.f1 &> '(2.0,2.0,2.5,2.5)'::box;
+two|f1
+---+-----------------
+ |(2.5,3.5,2.5,2.5)
+ |(3,3,3,3)
+(2 rows)
+
+QUERY: SELECT '' AS two, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 << '(3.0,3.0,5.0,5.0)'::box;
+two|f1
+---+-----------------
+ |(2,2,0,0)
+ |(2.5,3.5,2.5,2.5)
+(2 rows)
+
+QUERY: SELECT '' AS four, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 <= '(3.0,3.0,5.0,5.0)'::box;
+four|f1
+----+-----------------
+ |(2,2,0,0)
+ |(3,3,1,1)
+ |(2.5,3.5,2.5,2.5)
+ |(3,3,3,3)
+(4 rows)
+
+QUERY: SELECT '' AS two, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 < '(3.0,3.0,5.0,5.0)'::box;
+two|f1
+---+-----------------
+ |(2.5,3.5,2.5,2.5)
+ |(3,3,3,3)
+(2 rows)
+
+QUERY: SELECT '' AS two, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 = '(3.0,3.0,5.0,5.0)'::box;
+two|f1
+---+---------
+ |(2,2,0,0)
+ |(3,3,1,1)
+(2 rows)
+
+QUERY: SELECT '' AS two, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 > '(3.5,3.0,4.5,3.0)'::box;
+two|f1
+---+---------
+ |(2,2,0,0)
+ |(3,3,1,1)
+(2 rows)
+
+QUERY: SELECT '' AS four, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 >= '(3.5,3.0,4.5,3.0)'::box;
+four|f1
+----+-----------------
+ |(2,2,0,0)
+ |(3,3,1,1)
+ |(2.5,3.5,2.5,2.5)
+ |(3,3,3,3)
+(4 rows)
+
+QUERY: SELECT '' AS two, b.f1
+ FROM BOX_TBL b
+ WHERE '(3.0,3.0,5.0,5.0)'::box >> b.f1;
+two|f1
+---+-----------------
+ |(2,2,0,0)
+ |(2.5,3.5,2.5,2.5)
+(2 rows)
+
+QUERY: SELECT '' AS three, b.f1
+ FROM BOX_TBL b
+ WHERE b.f1 @ '(0,0,3,3)'::box;
+three|f1
+-----+---------
+ |(2,2,0,0)
+ |(3,3,1,1)
+ |(3,3,3,3)
+(3 rows)
+
+QUERY: SELECT '' AS three, b.f1
+ FROM BOX_TBL b
+ WHERE '(0,0,3,3)'::box ~ b.f1;
+three|f1
+-----+---------
+ |(2,2,0,0)
+ |(3,3,1,1)
+ |(3,3,3,3)
+(3 rows)
+
+QUERY: SELECT '' AS one, b.f1
+ FROM BOX_TBL b
+ WHERE '(1,1,3,3)'::box ~= b.f1;
+one|f1
+---+---------
+ |(3,3,1,1)
+(1 row)
+
+QUERY: SELECT '' AS four, @@(b1.f1) AS p
+ FROM BOX_TBL b1;
+four|p
+----+-------
+ |(1,1)
+ |(2,2)
+ |(2.5,3)
+ |(3,3)
+(4 rows)
+
+QUERY: SELECT '' AS one, b1.*, b2.*
+ FROM BOX_TBL b1, BOX_TBL b2
+ WHERE b1.f1 ~ b2.f1 and not b1.f1 ~= b2.f1;
+one|f1 |f1
+---+---------+---------
+ |(3,3,1,1)|(3,3,3,3)
+(1 row)
+
--- /dev/null
+QUERY: CREATE TABLE CHAR_TBL(f1 char);
+QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('a');
+QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('A');
+QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('1');
+QUERY: INSERT INTO CHAR_TBL (f1) VALUES (2);
+QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('3');
+QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('');
+QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('cd');
+QUERY: SELECT '' AS seven, CHAR_TBL.*;
+seven|f1
+-----+--
+ |a
+ |A
+ |1
+ |2
+ |3
+ |
+ |c
+(7 rows)
+
+QUERY: SELECT '' AS six, c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <> 'a';
+six|f1
+---+--
+ |A
+ |1
+ |2
+ |3
+ |
+ |c
+(6 rows)
+
+QUERY: SELECT '' AS one, c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 = 'a';
+one|f1
+---+--
+ |a
+(1 row)
+
+QUERY: SELECT '' AS five, c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 < 'a';
+five|f1
+----+--
+ |A
+ |1
+ |2
+ |3
+ |
+(5 rows)
+
+QUERY: SELECT '' AS six, c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <= 'a';
+six|f1
+---+--
+ |a
+ |A
+ |1
+ |2
+ |3
+ |
+(6 rows)
+
+QUERY: SELECT '' AS one, c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 > 'a';
+one|f1
+---+--
+ |c
+(1 row)
+
+QUERY: SELECT '' AS two, c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 >= 'a';
+two|f1
+---+--
+ |a
+ |c
+(2 rows)
+
--- /dev/null
+QUERY: CREATE TABLE CHAR2_TBL(f1 char2);
+QUERY: INSERT INTO CHAR2_TBL (f1) VALUES ('AB');
+QUERY: INSERT INTO CHAR2_TBL (f1) VALUES ('ab');
+QUERY: INSERT INTO CHAR2_TBL (f1) VALUES ('ZY');
+QUERY: INSERT INTO CHAR2_TBL (f1) VALUES ('34');
+QUERY: INSERT INTO CHAR2_TBL (f1) VALUES ('d');
+QUERY: INSERT INTO CHAR2_TBL (f1) VALUES ('');
+QUERY: INSERT INTO CHAR2_TBL (f1) VALUES ('12345');
+QUERY: SELECT '' AS seven, CHAR2_TBL.*;
+seven|f1
+-----+--
+ |AB
+ |ab
+ |ZY
+ |34
+ |d
+ |
+ |12
+(7 rows)
+
+QUERY: SELECT '' AS six, c.f1 FROM CHAR2_TBL c WHERE c.f1 <> 'AB';
+six|f1
+---+--
+ |ab
+ |ZY
+ |34
+ |d
+ |
+ |12
+(6 rows)
+
+QUERY: SELECT '' AS one, c.f1 FROM CHAR2_TBL c WHERE c.f1 = 'AB';
+one|f1
+---+--
+ |AB
+(1 row)
+
+QUERY: SELECT '' AS three, c.f1 FROM CHAR2_TBL c WHERE c.f1 < 'AB';
+three|f1
+-----+--
+ |34
+ |
+ |12
+(3 rows)
+
+QUERY: SELECT '' AS four, c.f1 FROM CHAR2_TBL c WHERE c.f1 <= 'AB';
+four|f1
+----+--
+ |AB
+ |34
+ |
+ |12
+(4 rows)
+
+QUERY: SELECT '' AS three, c.f1 FROM CHAR2_TBL c WHERE c.f1 > 'AB';
+three|f1
+-----+--
+ |ab
+ |ZY
+ |d
+(3 rows)
+
+QUERY: SELECT '' AS four, c.f1 FROM CHAR2_TBL c WHERE c.f1 >= 'AB';
+four|f1
+----+--
+ |AB
+ |ab
+ |ZY
+ |d
+(4 rows)
+
+QUERY: SELECT '' AS seven, c.f1 FROM CHAR2_TBL c WHERE c.f1 ~ '.*';
+seven|f1
+-----+--
+ |AB
+ |ab
+ |ZY
+ |34
+ |d
+ |
+ |12
+(7 rows)
+
+QUERY: SELECT '' AS zero, c.f1 FROM CHAR2_TBL c WHERE c.f1 !~ '.*';
+zero|f1
+----+--
+(0 rows)
+
+QUERY: SELECT '' AS one, c.f1 FROM CHAR2_TBL c WHERE c.f1 ~ '34';
+one|f1
+---+--
+ |34
+(1 row)
+
+QUERY: SELECT '' AS one, c.f1 FROM CHAR2_TBL c WHERE c.f1 ~ '3.*';
+one|f1
+---+--
+ |34
+(1 row)
+
--- /dev/null
+QUERY: CREATE TABLE CHAR4_TBL (f1 char4);
+QUERY: INSERT INTO CHAR4_TBL(f1) VALUES ('ABCD');
+QUERY: INSERT INTO CHAR4_TBL(f1) VALUES ('abcd');
+QUERY: INSERT INTO CHAR4_TBL(f1) VALUES ('ZYWZ');
+QUERY: INSERT INTO CHAR4_TBL(f1) VALUES ('343f');
+QUERY: INSERT INTO CHAR4_TBL(f1) VALUES ('d34a');
+QUERY: INSERT INTO CHAR4_TBL(f1) VALUES ('');
+QUERY: INSERT INTO CHAR4_TBL(f1) VALUES ('12345678');
+QUERY: SELECT '' AS seven, CHAR4_TBL.*;
+seven|f1
+-----+----
+ |ABCD
+ |abcd
+ |ZYWZ
+ |343f
+ |d34a
+ |
+ |1234
+(7 rows)
+
+QUERY: SELECT '' AS six, c.f1 FROM CHAR4_TBL c WHERE c.f1 <> 'ABCD';
+six|f1
+---+----
+ |abcd
+ |ZYWZ
+ |343f
+ |d34a
+ |
+ |1234
+(6 rows)
+
+QUERY: SELECT '' AS one, c.f1 FROM CHAR4_TBL c WHERE c.f1 = 'ABCD';
+one|f1
+---+----
+ |ABCD
+(1 row)
+
+QUERY: SELECT '' AS three, c.f1 FROM CHAR4_TBL c WHERE c.f1 < 'ABCD';
+three|f1
+-----+----
+ |343f
+ |
+ |1234
+(3 rows)
+
+QUERY: SELECT '' AS four, c.f1 FROM CHAR4_TBL c WHERE c.f1 <= 'ABCD';
+four|f1
+----+----
+ |ABCD
+ |343f
+ |
+ |1234
+(4 rows)
+
+QUERY: SELECT '' AS three, c.f1 FROM CHAR4_TBL c WHERE c.f1 > 'ABCD';
+three|f1
+-----+----
+ |abcd
+ |ZYWZ
+ |d34a
+(3 rows)
+
+QUERY: SELECT '' AS four, c.f1 FROM CHAR4_TBL c WHERE c.f1 >= 'ABCD';
+four|f1
+----+----
+ |ABCD
+ |abcd
+ |ZYWZ
+ |d34a
+(4 rows)
+
+QUERY: SELECT '' AS seven, c.f1 FROM CHAR4_TBL c WHERE c.f1 ~ '.*';
+seven|f1
+-----+----
+ |ABCD
+ |abcd
+ |ZYWZ
+ |343f
+ |d34a
+ |
+ |1234
+(7 rows)
+
+QUERY: SELECT '' AS zero, c.f1 FROM CHAR4_TBL c WHERE c.f1 !~ '.*';
+zero|f1
+----+--
+(0 rows)
+
+QUERY: SELECT '' AS three, c.f1 FROM CHAR4_TBL c WHERE c.f1 ~ '.*34.*';
+three|f1
+-----+----
+ |343f
+ |d34a
+ |1234
+(3 rows)
+
--- /dev/null
+QUERY: CREATE TABLE RELTIME_TBL (f1 reltime);
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 1 minute');
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 5 hour');
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 10 day');
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 34 year');
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 3 months');
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 14 seconds ago');
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('badly formatted reltime');
+QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 30 eons ago');
+QUERY: SELECT '' AS eight, RELTIME_TBL.*;
+eight|f1
+-----+-----------------
+ |@ 1 minute
+ |@ 5 hours
+ |@ 10 days
+ |@ 34 years
+ |@ 3 months
+ |@ 14 seconds ago
+ |Undefined RelTime
+ |Undefined RelTime
+(8 rows)
+
+QUERY: SELECT '' AS five, RELTIME_TBL.*
+ WHERE RELTIME_TBL.f1 <> '@ 10 days'::reltime;
+five|f1
+----+----------------
+ |@ 1 minute
+ |@ 5 hours
+ |@ 34 years
+ |@ 3 months
+ |@ 14 seconds ago
+(5 rows)
+
+QUERY: SELECT '' AS three, RELTIME_TBL.*
+ WHERE RELTIME_TBL.f1 <= '@ 5 hours'::reltime;
+three|f1
+-----+----------------
+ |@ 1 minute
+ |@ 5 hours
+ |@ 14 seconds ago
+(3 rows)
+
+QUERY: SELECT '' AS three, RELTIME_TBL.*
+ WHERE RELTIME_TBL.f1 < '@ 1 day'::reltime;
+three|f1
+-----+----------------
+ |@ 1 minute
+ |@ 5 hours
+ |@ 14 seconds ago
+(3 rows)
+
+QUERY: SELECT '' AS one, RELTIME_TBL.*
+ WHERE RELTIME_TBL.f1 = '@ 34 years'::reltime;
+one|f1
+---+----------
+ |@ 34 years
+(1 row)
+
+QUERY: SELECT '' AS two, RELTIME_TBL.*
+ WHERE RELTIME_TBL.f1 >= '@ 1 month'::reltime;
+two|f1
+---+----------
+ |@ 34 years
+ |@ 3 months
+(2 rows)
+
+QUERY: SELECT '' AS five, RELTIME_TBL.*
+ WHERE RELTIME_TBL.f1 > '@ 3 seconds ago'::reltime;
+five|f1
+----+----------
+ |@ 1 minute
+ |@ 5 hours
+ |@ 10 days
+ |@ 34 years
+ |@ 3 months
+(5 rows)
+
+QUERY: SELECT '' AS fifteen, r1.*, r2.*
+ FROM RELTIME_TBL r1, RELTIME_TBL r2
+ WHERE r1.f1 > r2.f1;
+fifteen|f1 |f1
+-------+----------+----------------
+ |@ 5 hours |@ 1 minute
+ |@ 10 days |@ 1 minute
+ |@ 34 years|@ 1 minute
+ |@ 3 months|@ 1 minute
+ |@ 10 days |@ 5 hours
+ |@ 34 years|@ 5 hours
+ |@ 3 months|@ 5 hours
+ |@ 34 years|@ 10 days
+ |@ 3 months|@ 10 days
+ |@ 34 years|@ 3 months
+ |@ 1 minute|@ 14 seconds ago
+ |@ 5 hours |@ 14 seconds ago
+ |@ 10 days |@ 14 seconds ago
+ |@ 34 years|@ 14 seconds ago
+ |@ 3 months|@ 14 seconds ago
+(15 rows)
+
--- /dev/null
+QUERY: CREATE TABLE TINTERVAL_TBL (f1 tinterval);
+QUERY: INSERT INTO TINTERVAL_TBL (f1)
+ VALUES ('["-infinity" "infinity"]');
+QUERY: INSERT INTO TINTERVAL_TBL (f1)
+ VALUES ('["May 10, 1943 23:59:12" "Jan 14, 1973 03:14:21"]');
+QUERY: INSERT INTO TINTERVAL_TBL (f1)
+ VALUES ('["Sep 4, 1983 23:59:12" "Oct 4, 1983 23:59:12"]');
+QUERY: INSERT INTO TINTERVAL_TBL (f1)
+ VALUES ('["epoch" "Mon May 1 00:30:30 1995"]');
+QUERY: INSERT INTO TINTERVAL_TBL (f1)
+ VALUES ('["Feb 15 1990 12:15:03" "current"]');
+QUERY: INSERT INTO TINTERVAL_TBL (f1)
+ VALUES ('["bad time specifications" ""]');
+QUERY: INSERT INTO TINTERVAL_TBL (f1)
+ VALUES ('["" "infinity"]');
+QUERY: SELECT '' AS seven, TINTERVAL_TBL.*;
+seven|f1
+-----+---------------------------------------------------------------
+ |['-infinity' 'infinity']
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current']
+ |['Undefined Range']
+ |['Undefined Range']
+(7 rows)
+
+QUERY: SELECT '' AS one, t.*
+ FROM TINTERVAL_TBL t
+ WHERE t.f1 #= '@ 1 months';
+one|f1
+---+---------------------------------------------------------------
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+(1 row)
+
+QUERY: SELECT '' AS three, t.*
+ FROM TINTERVAL_TBL t
+ WHERE t.f1 #<> '@ 1 months';
+three|f1
+-----+---------------------------------------------------------------
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current']
+(3 rows)
+
+QUERY: SELECT '' AS zero, t.*
+ FROM TINTERVAL_TBL t
+ WHERE t.f1 #< '@ 1 month';
+zero|f1
+----+--
+(0 rows)
+
+QUERY: SELECT '' AS one, t.*
+ FROM TINTERVAL_TBL t
+ WHERE t.f1 #<= '@ 1 month';
+one|f1
+---+---------------------------------------------------------------
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+(1 row)
+
+QUERY: SELECT '' AS three, t.*
+ FROM TINTERVAL_TBL t
+ WHERE t.f1 #> '@ 1 year';
+three|f1
+-----+---------------------------------------------------------------
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current']
+(3 rows)
+
+QUERY: SELECT '' AS three, t.*
+ FROM TINTERVAL_TBL t
+ WHERE t.f1 #>= '@ 3 years';
+three|f1
+-----+---------------------------------------------------------------
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current']
+(3 rows)
+
+QUERY: SELECT '' AS three, t1.*
+ FROM TINTERVAL_TBL t1
+ WHERE t1.f1 &&
+ '["Aug 15 14:23:19 1983" "Sep 16 14:23:19 1983"]'::tinterval;
+three|f1
+-----+---------------------------------------------------------------
+ |['-infinity' 'infinity']
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+(3 rows)
+
+QUERY: SELECT '' AS five, t1.*, t2.*
+ FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2
+ WHERE t1.f1 && t2.f1 and
+ t1.f1 = t2.f1;
+five|f1 |f1
+----+---------------------------------------------------------------+---------------------------------------------------------------
+ |['-infinity' 'infinity'] |['-infinity' 'infinity']
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']|['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']|['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT'] |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current'] |['Thu Feb 15 12:15:03 1990 PST' 'current']
+(5 rows)
+
+QUERY: SELECT '' AS fourteen, t1.*, t2.*
+ FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2
+ WHERE t1.f1 && t2.f1 and
+ not t1.f1 = t2.f1;
+fourteen|f1 |f1
+--------+---------------------------------------------------------------+---------------------------------------------------------------
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']|['-infinity' 'infinity']
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']|['-infinity' 'infinity']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT'] |['-infinity' 'infinity']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current'] |['-infinity' 'infinity']
+ |['-infinity' 'infinity'] |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT'] |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['-infinity' 'infinity'] |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT'] |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+ |['-infinity' 'infinity'] |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']|['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']|['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current'] |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+ |['-infinity' 'infinity'] |['Thu Feb 15 12:15:03 1990 PST' 'current']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT'] |['Thu Feb 15 12:15:03 1990 PST' 'current']
+(14 rows)
+
+QUERY: SELECT '' AS five, t1.*
+ FROM TINTERVAL_TBL t1
+ WHERE not t1.f1 <<
+ '["Aug 15 14:23:19 1980" "Sep 16 14:23:19 1990"]'::tinterval;
+five|f1
+----+---------------------------------------------------------------
+ |['Mon May 10 23:59:12 1943 PWT' 'Sun Jan 14 03:14:21 1973 PST']
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+ |['Thu Feb 15 12:15:03 1990 PST' 'current']
+ |['Undefined Range']
+ |['Undefined Range']
+(5 rows)
+
+QUERY: SELECT '' AS three, t1.*
+ FROM TINTERVAL_TBL t1
+ WHERE t1.f1 &&
+ ('Aug 15 14:23:19 1983'::abstime <#>
+ 'Sep 16 14:23:19 1983'::abstime);
+three|f1
+-----+---------------------------------------------------------------
+ |['-infinity' 'infinity']
+ |['Sun Sep 04 23:59:12 1983 PDT' 'Tue Oct 04 23:59:12 1983 PDT']
+ |['epoch' 'Mon May 01 00:30:30 1995 PDT']
+(3 rows)
+