Fix use-after-free in parallel_vacuum_reset_dead_items
[pgsql.git] / src / test / regress / expected / varchar_1.out
blob7cb74c752a446e7580a28723a2bcd10e6c1cdf79
1 --
2 -- VARCHAR
3 --
4 --
5 -- Build a table for testing
6 -- (This temporarily hides the table created in test_setup.sql)
7 --
8 CREATE TEMP TABLE VARCHAR_TBL(f1 varchar(1));
9 INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
10 INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
11 -- any of the following three input formats are acceptable
12 INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
13 INSERT INTO VARCHAR_TBL (f1) VALUES (2);
14 INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
15 -- zero-length char
16 INSERT INTO VARCHAR_TBL (f1) VALUES ('');
17 -- try varchar's of greater than 1 length
18 INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
19 ERROR:  value too long for type character varying(1)
20 INSERT INTO VARCHAR_TBL (f1) VALUES ('c     ');
21 SELECT * FROM VARCHAR_TBL;
22  f1 
23 ----
24  a
25  A
26  1
27  2
28  3
30  c
31 (7 rows)
33 SELECT c.*
34    FROM VARCHAR_TBL c
35    WHERE c.f1 <> 'a';
36  f1 
37 ----
38  A
39  1
40  2
41  3
43  c
44 (6 rows)
46 SELECT c.*
47    FROM VARCHAR_TBL c
48    WHERE c.f1 = 'a';
49  f1 
50 ----
51  a
52 (1 row)
54 SELECT c.*
55    FROM VARCHAR_TBL c
56    WHERE c.f1 < 'a';
57  f1 
58 ----
59  1
60  2
61  3
63 (4 rows)
65 SELECT c.*
66    FROM VARCHAR_TBL c
67    WHERE c.f1 <= 'a';
68  f1 
69 ----
70  a
71  1
72  2
73  3
75 (5 rows)
77 SELECT c.*
78    FROM VARCHAR_TBL c
79    WHERE c.f1 > 'a';
80  f1 
81 ----
82  A
83  c
84 (2 rows)
86 SELECT c.*
87    FROM VARCHAR_TBL c
88    WHERE c.f1 >= 'a';
89  f1 
90 ----
91  a
92  A
93  c
94 (3 rows)
96 DROP TABLE VARCHAR_TBL;
98 -- Now test longer arrays of char
100 -- This varchar_tbl was already created and filled in test_setup.sql.
101 -- Here we just try to insert bad values.
103 INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
104 ERROR:  value too long for type character varying(4)
105 SELECT * FROM VARCHAR_TBL;
106   f1  
107 ------
109  ab
110  abcd
111  abcd
112 (4 rows)
114 -- Also try it with non-error-throwing API
115 SELECT pg_input_is_valid('abcd  ', 'varchar(4)');
116  pg_input_is_valid 
117 -------------------
119 (1 row)
121 SELECT pg_input_is_valid('abcde', 'varchar(4)');
122  pg_input_is_valid 
123 -------------------
125 (1 row)
127 SELECT * FROM pg_input_error_info('abcde', 'varchar(4)');
128                    message                    | detail | hint | sql_error_code 
129 ----------------------------------------------+--------+------+----------------
130  value too long for type character varying(4) |        |      | 22001
131 (1 row)