1--
2-- CHAR
3--
4
5-- fixed-length by value
6-- internally passed by value if <= 4 bytes in storage
7
8SELECT char 'c' = char 'c' AS true;
9
10--
11-- Build a table for testing
12--
13
14CREATE TABLE CHAR_TBL(f1 char);
15
16INSERT INTO CHAR_TBL (f1) VALUES ('a');
17
18INSERT INTO CHAR_TBL (f1) VALUES ('A');
19
20-- any of the following three input formats are acceptable
21INSERT INTO CHAR_TBL (f1) VALUES ('1');
22
23INSERT INTO CHAR_TBL (f1) VALUES (2);
24
25INSERT INTO CHAR_TBL (f1) VALUES ('3');
26
27-- zero-length char
28INSERT INTO CHAR_TBL (f1) VALUES ('');
29
30-- try char's of greater than 1 length
31INSERT INTO CHAR_TBL (f1) VALUES ('cd');
32INSERT INTO CHAR_TBL (f1) VALUES ('c     ');
33
34
35SELECT '' AS seven, * FROM CHAR_TBL;
36
37SELECT '' AS six, c.*
38   FROM CHAR_TBL c
39   WHERE c.f1 <> 'a';
40
41SELECT '' AS one, c.*
42   FROM CHAR_TBL c
43   WHERE c.f1 = 'a';
44
45SELECT '' AS five, c.*
46   FROM CHAR_TBL c
47   WHERE c.f1 < 'a';
48
49SELECT '' AS six, c.*
50   FROM CHAR_TBL c
51   WHERE c.f1 <= 'a';
52
53SELECT '' AS one, c.*
54   FROM CHAR_TBL c
55   WHERE c.f1 > 'a';
56
57SELECT '' AS two, c.*
58   FROM CHAR_TBL c
59   WHERE c.f1 >= 'a';
60
61DROP TABLE CHAR_TBL;
62
63--
64-- Now test longer arrays of char
65--
66
67CREATE TABLE CHAR_TBL(f1 char(4));
68
69INSERT INTO CHAR_TBL (f1) VALUES ('a');
70INSERT INTO CHAR_TBL (f1) VALUES ('ab');
71INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
72INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
73INSERT INTO CHAR_TBL (f1) VALUES ('abcd    ');
74
75SELECT '' AS four, * FROM CHAR_TBL;
76