-- start_ignore
SET SEARCH_PATH=TestType_varchar;
SET
-- end_ignore
--
-- VARCHAR
--
CREATE TABLE VARCHAR_TBL(f1 varchar(1));
CREATE TABLE
INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
INSERT 0 1
INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
INSERT 0 1
-- any of the following three input formats are acceptable
INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
INSERT 0 1
INSERT INTO VARCHAR_TBL (f1) VALUES (2);
INSERT 0 1
INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
INSERT 0 1
-- zero-length char
INSERT INTO VARCHAR_TBL (f1) VALUES ('');
INSERT 0 1
-- try varchar's of greater than 1 length
INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
psql:/tmp/TestType_varchar.sql:25: ERROR:  value too long for type character varying(1)
INSERT INTO VARCHAR_TBL (f1) VALUES ('c     ');
INSERT 0 1
SELECT '' AS seven, * FROM VARCHAR_TBL;
 seven | f1
-------+----
       | a
       | A
       | 1
       | 2
       | 3
       |
       | c
(7 rows)

SELECT '' AS six, c.*
   FROM VARCHAR_TBL c
   WHERE c.f1 <> 'a';
 six | f1
-----+----
     | A
     | 1
     | 2
     | 3
     |
     | c
(6 rows)

SELECT '' AS one, c.*
   FROM VARCHAR_TBL c
   WHERE c.f1 = 'a';
 one | f1
-----+----
     | a
(1 row)

SELECT '' AS five, c.*
   FROM VARCHAR_TBL c
   WHERE c.f1 < 'a';
 five | f1
------+----
      | 1
      | 2
      | 3
      |
(4 rows)

SELECT '' AS six, c.*
   FROM VARCHAR_TBL c
   WHERE c.f1 <= 'a';
 six | f1
-----+----
     | a
     | 1
     | 2
     | 3
     |
(5 rows)

SELECT '' AS one, c.*
   FROM VARCHAR_TBL c
   WHERE c.f1 > 'a';
 one | f1
-----+----
     | A
     | c
(2 rows)

SELECT '' AS two, c.*
   FROM VARCHAR_TBL c
   WHERE c.f1 >= 'a';
 two | f1
-----+----
     | a
     | A
     | c
(3 rows)

DROP TABLE VARCHAR_TBL;
DROP TABLE
--
-- Now test longer arrays of char
--
CREATE TABLE VARCHAR_TBL(f1 varchar(4));
CREATE TABLE
INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
INSERT 0 1
INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
INSERT 0 1
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
INSERT 0 1
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
psql:/tmp/TestType_varchar.sql:66: ERROR:  value too long for type character varying(4)
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd    ');
INSERT 0 1
SELECT '' AS four, * FROM VARCHAR_TBL;
 four |  f1
------+------
      | a
      | ab
      | abcd
      | abcd
(4 rows)
