Fix pg_dump bug in the database-level collation patch. "datcollate" and
[PostgreSQL.git] / src / test / regress / sql / char.sql
blobfcaef7e086d02c65055677be01c13a38dc8dc074
1 --
2 -- CHAR
3 --
5 -- fixed-length by value
6 -- internally passed by value if <= 4 bytes in storage
8 SELECT char 'c' = char 'c' AS true;
11 -- Build a table for testing
14 CREATE TABLE CHAR_TBL(f1 char);
16 INSERT INTO CHAR_TBL (f1) VALUES ('a');
18 INSERT INTO CHAR_TBL (f1) VALUES ('A');
20 -- any of the following three input formats are acceptable 
21 INSERT INTO CHAR_TBL (f1) VALUES ('1');
23 INSERT INTO CHAR_TBL (f1) VALUES (2);
25 INSERT INTO CHAR_TBL (f1) VALUES ('3');
27 -- zero-length char 
28 INSERT INTO CHAR_TBL (f1) VALUES ('');
30 -- try char's of greater than 1 length 
31 INSERT INTO CHAR_TBL (f1) VALUES ('cd');
32 INSERT INTO CHAR_TBL (f1) VALUES ('c     ');
35 SELECT '' AS seven, * FROM CHAR_TBL;
37 SELECT '' AS six, c.*
38    FROM CHAR_TBL c
39    WHERE c.f1 <> 'a';
41 SELECT '' AS one, c.*
42    FROM CHAR_TBL c
43    WHERE c.f1 = 'a';
45 SELECT '' AS five, c.*
46    FROM CHAR_TBL c
47    WHERE c.f1 < 'a';
49 SELECT '' AS six, c.*
50    FROM CHAR_TBL c
51    WHERE c.f1 <= 'a';
53 SELECT '' AS one, c.*
54    FROM CHAR_TBL c
55    WHERE c.f1 > 'a';
57 SELECT '' AS two, c.*
58    FROM CHAR_TBL c
59    WHERE c.f1 >= 'a';
61 DROP TABLE CHAR_TBL;
64 -- Now test longer arrays of char
67 CREATE TABLE CHAR_TBL(f1 char(4));
69 INSERT INTO CHAR_TBL (f1) VALUES ('a');
70 INSERT INTO CHAR_TBL (f1) VALUES ('ab');
71 INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
72 INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
73 INSERT INTO CHAR_TBL (f1) VALUES ('abcd    ');
75 SELECT '' AS four, * FROM CHAR_TBL;