~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

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

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

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