~ubuntu-branches/debian/sid/postgresql-9.3/sid

« back to all changes in this revision

Viewing changes to src/test/regress/sql/int4.sql

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2013-05-08 05:39:52 UTC
  • Revision ID: package-import@ubuntu.com-20130508053952-1j7uilp7mjtrvq8q
Tags: upstream-9.3~beta1
ImportĀ upstreamĀ versionĀ 9.3~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--
 
2
-- INT4
 
3
--
 
4
 
 
5
CREATE TABLE INT4_TBL(f1 int4);
 
6
 
 
7
INSERT INTO INT4_TBL(f1) VALUES ('   0  ');
 
8
 
 
9
INSERT INTO INT4_TBL(f1) VALUES ('123456     ');
 
10
 
 
11
INSERT INTO INT4_TBL(f1) VALUES ('    -123456');
 
12
 
 
13
INSERT INTO INT4_TBL(f1) VALUES ('34.5');
 
14
 
 
15
-- largest and smallest values
 
16
INSERT INTO INT4_TBL(f1) VALUES ('2147483647');
 
17
 
 
18
INSERT INTO INT4_TBL(f1) VALUES ('-2147483647');
 
19
 
 
20
-- bad input values -- should give errors
 
21
INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
 
22
INSERT INTO INT4_TBL(f1) VALUES ('asdf');
 
23
INSERT INTO INT4_TBL(f1) VALUES ('     ');
 
24
INSERT INTO INT4_TBL(f1) VALUES ('   asdf   ');
 
25
INSERT INTO INT4_TBL(f1) VALUES ('- 1234');
 
26
INSERT INTO INT4_TBL(f1) VALUES ('123       5');
 
27
INSERT INTO INT4_TBL(f1) VALUES ('');
 
28
 
 
29
 
 
30
SELECT '' AS five, * FROM INT4_TBL;
 
31
 
 
32
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
 
33
 
 
34
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
 
35
 
 
36
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
 
37
 
 
38
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
 
39
 
 
40
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
 
41
 
 
42
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
 
43
 
 
44
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
 
45
 
 
46
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
 
47
 
 
48
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
 
49
 
 
50
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
 
51
 
 
52
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
 
53
 
 
54
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
 
55
 
 
56
-- positive odds
 
57
SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
 
58
 
 
59
-- any evens
 
60
SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
 
61
 
 
62
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
 
63
 
 
64
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i
 
65
WHERE abs(f1) < 1073741824;
 
66
 
 
67
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
 
68
 
 
69
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i
 
70
WHERE abs(f1) < 1073741824;
 
71
 
 
72
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
 
73
 
 
74
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i
 
75
WHERE f1 < 2147483646;
 
76
 
 
77
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
 
78
 
 
79
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i
 
80
WHERE f1 < 2147483646;
 
81
 
 
82
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
 
83
 
 
84
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i
 
85
WHERE f1 > -2147483647;
 
86
 
 
87
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
 
88
 
 
89
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i
 
90
WHERE f1 > -2147483647;
 
91
 
 
92
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
 
93
 
 
94
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
 
95
 
 
96
--
 
97
-- more complex expressions
 
98
--
 
99
 
 
100
-- variations on unary minus parsing
 
101
SELECT -2+3 AS one;
 
102
 
 
103
SELECT 4-2 AS two;
 
104
 
 
105
SELECT 2- -1 AS three;
 
106
 
 
107
SELECT 2 - -2 AS four;
 
108
 
 
109
SELECT int2 '2' * int2 '2' = int2 '16' / int2 '4' AS true;
 
110
 
 
111
SELECT int4 '2' * int2 '2' = int2 '16' / int4 '4' AS true;
 
112
 
 
113
SELECT int2 '2' * int4 '2' = int4 '16' / int2 '4' AS true;
 
114
 
 
115
SELECT int4 '1000' < int4 '999' AS false;
 
116
 
 
117
SELECT 4! AS twenty_four;
 
118
 
 
119
SELECT !!3 AS six;
 
120
 
 
121
SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
 
122
 
 
123
SELECT 2 + 2 / 2 AS three;
 
124
 
 
125
SELECT (2 + 2) / 2 AS two;
 
126
 
 
127
-- corner case
 
128
SELECT (-1::int4<<31)::text;
 
129
SELECT ((-1::int4<<31)+1)::text;
 
130
 
 
131
-- check sane handling of INT_MIN overflow cases
 
132
SELECT (-2147483648)::int4 * (-1)::int4;
 
133
SELECT (-2147483648)::int4 / (-1)::int4;
 
134
SELECT (-2147483648)::int4 % (-1)::int4;
 
135
SELECT (-2147483648)::int4 * (-1)::int2;
 
136
SELECT (-2147483648)::int4 / (-1)::int2;
 
137
SELECT (-2147483648)::int4 % (-1)::int2;