Convert a few more datatype input functions to report errors softly.
[pgsql.git] / src / test / regress / expected / varchar.out
blob62b683d86ff50104b5c6395c7c03b9be08074036
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  A
60  1
61  2
62  3
64 (5 rows)
66 SELECT c.*
67    FROM VARCHAR_TBL c
68    WHERE c.f1 <= 'a';
69  f1 
70 ----
71  a
72  A
73  1
74  2
75  3
77 (6 rows)
79 SELECT c.*
80    FROM VARCHAR_TBL c
81    WHERE c.f1 > 'a';
82  f1 
83 ----
84  c
85 (1 row)
87 SELECT c.*
88    FROM VARCHAR_TBL c
89    WHERE c.f1 >= 'a';
90  f1 
91 ----
92  a
93  c
94 (2 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 pg_input_error_message('abcde', 'varchar(4)');
128             pg_input_error_message            
129 ----------------------------------------------
130  value too long for type character varying(4)
131 (1 row)