mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-13 17:39:36 +02:00
ac70c3547b
- I was unable to compile ecpg due to the ":=" instead of "=" in defining LIBPQDIR and some other variables in Makefile.global.in - pg_id (and also pg_encoding) executable was not removed during "make clean" - there was no $(X) appended to the executable name for rm - I have added result for int2, int4, float8 and geometry regression tests - int2, int2 - yet another message for too large numbers ;-) - float8 - it is problably a bug in the newlib C library - it has no error message for numbers with exponent -400 - geometry - differences in precision of float numbers - I have added appropriate lines into resultmap file - I have modified the script regress.sh to use "case" statement when testing the hostname. For cygwin the script is called with "i686-pc-cygwin" (on my machine) as a parameter and this was not catched with the "if" statement. The check was done for PORTNAME (win) and not HOSTNAME (i.86-pc-cygwin*). The patch for described modifications is included. All this modifications can be applied to "current" tree too. The compilation was done on CygwinB20.1 with gcc 2.95, cygipc library 1.05. The binaries were able to run also on the newest development snapshot (2000-03-25). Dan
298 lines
6.4 KiB
Plaintext
298 lines
6.4 KiB
Plaintext
--
|
|
-- INT4
|
|
-- WARNING: int4 operators never check for over/underflow!
|
|
-- Some of these answers are consequently numerically incorrect.
|
|
--
|
|
CREATE TABLE INT4_TBL(f1 int4);
|
|
INSERT INTO INT4_TBL(f1) VALUES ('0');
|
|
INSERT INTO INT4_TBL(f1) VALUES ('123456');
|
|
INSERT INTO INT4_TBL(f1) VALUES ('-123456');
|
|
INSERT INTO INT4_TBL(f1) VALUES ('34.5');
|
|
ERROR: pg_atoi: error in "34.5": can't parse ".5"
|
|
-- largest and smallest values
|
|
INSERT INTO INT4_TBL(f1) VALUES ('2147483647');
|
|
INSERT INTO INT4_TBL(f1) VALUES ('-2147483647');
|
|
-- bad input values -- should give warnings
|
|
INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
|
|
ERROR: pg_atoi: error reading "1000000000000": Math result out of range
|
|
INSERT INTO INT4_TBL(f1) VALUES ('asdf');
|
|
ERROR: pg_atoi: error in "asdf": can't parse "asdf"
|
|
SELECT '' AS five, INT4_TBL.*;
|
|
five | f1
|
|
------+-------------
|
|
| 0
|
|
| 123456
|
|
| -123456
|
|
| 2147483647
|
|
| -2147483647
|
|
(5 rows)
|
|
|
|
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
|
|
four | f1
|
|
------+-------------
|
|
| 123456
|
|
| -123456
|
|
| 2147483647
|
|
| -2147483647
|
|
(4 rows)
|
|
|
|
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
|
|
four | f1
|
|
------+-------------
|
|
| 123456
|
|
| -123456
|
|
| 2147483647
|
|
| -2147483647
|
|
(4 rows)
|
|
|
|
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
|
|
one | f1
|
|
-----+----
|
|
| 0
|
|
(1 row)
|
|
|
|
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
|
|
one | f1
|
|
-----+----
|
|
| 0
|
|
(1 row)
|
|
|
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
|
|
two | f1
|
|
-----+-------------
|
|
| -123456
|
|
| -2147483647
|
|
(2 rows)
|
|
|
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
|
|
two | f1
|
|
-----+-------------
|
|
| -123456
|
|
| -2147483647
|
|
(2 rows)
|
|
|
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
|
|
three | f1
|
|
-------+-------------
|
|
| 0
|
|
| -123456
|
|
| -2147483647
|
|
(3 rows)
|
|
|
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
|
|
three | f1
|
|
-------+-------------
|
|
| 0
|
|
| -123456
|
|
| -2147483647
|
|
(3 rows)
|
|
|
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
|
|
two | f1
|
|
-----+------------
|
|
| 123456
|
|
| 2147483647
|
|
(2 rows)
|
|
|
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
|
|
two | f1
|
|
-----+------------
|
|
| 123456
|
|
| 2147483647
|
|
(2 rows)
|
|
|
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
|
|
three | f1
|
|
-------+------------
|
|
| 0
|
|
| 123456
|
|
| 2147483647
|
|
(3 rows)
|
|
|
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
|
|
three | f1
|
|
-------+------------
|
|
| 0
|
|
| 123456
|
|
| 2147483647
|
|
(3 rows)
|
|
|
|
-- positive odds
|
|
SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
|
|
one | f1
|
|
-----+------------
|
|
| 2147483647
|
|
(1 row)
|
|
|
|
-- any evens
|
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
|
|
three | f1
|
|
-------+---------
|
|
| 0
|
|
| 123456
|
|
| -123456
|
|
(3 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+---------
|
|
| 0 | 0
|
|
| 123456 | 246912
|
|
| -123456 | -246912
|
|
| 2147483647 | -2
|
|
| -2147483647 | 2
|
|
(5 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+---------
|
|
| 0 | 0
|
|
| 123456 | 246912
|
|
| -123456 | -246912
|
|
| 2147483647 | -2
|
|
| -2147483647 | 2
|
|
(5 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+-------------
|
|
| 0 | 2
|
|
| 123456 | 123458
|
|
| -123456 | -123454
|
|
| 2147483647 | -2147483647
|
|
| -2147483647 | -2147483645
|
|
(5 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+-------------
|
|
| 0 | 2
|
|
| 123456 | 123458
|
|
| -123456 | -123454
|
|
| 2147483647 | -2147483647
|
|
| -2147483647 | -2147483645
|
|
(5 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+------------
|
|
| 0 | -2
|
|
| 123456 | 123454
|
|
| -123456 | -123458
|
|
| 2147483647 | 2147483645
|
|
| -2147483647 | 2147483647
|
|
(5 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+------------
|
|
| 0 | -2
|
|
| 123456 | 123454
|
|
| -123456 | -123458
|
|
| 2147483647 | 2147483645
|
|
| -2147483647 | 2147483647
|
|
(5 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+-------------
|
|
| 0 | 0
|
|
| 123456 | 61728
|
|
| -123456 | -61728
|
|
| 2147483647 | 1073741823
|
|
| -2147483647 | -1073741823
|
|
(5 rows)
|
|
|
|
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
|
|
five | f1 | x
|
|
------+-------------+-------------
|
|
| 0 | 0
|
|
| 123456 | 61728
|
|
| -123456 | -61728
|
|
| 2147483647 | 1073741823
|
|
| -2147483647 | -1073741823
|
|
(5 rows)
|
|
|
|
--
|
|
-- more complex expressions
|
|
--
|
|
-- variations on unary minus parsing
|
|
SELECT -2+3 AS one;
|
|
one
|
|
-----
|
|
1
|
|
(1 row)
|
|
|
|
SELECT 4-2 AS two;
|
|
two
|
|
-----
|
|
2
|
|
(1 row)
|
|
|
|
SELECT 2- -1 AS three;
|
|
three
|
|
-------
|
|
3
|
|
(1 row)
|
|
|
|
SELECT 2 - -2 AS four;
|
|
four
|
|
------
|
|
4
|
|
(1 row)
|
|
|
|
SELECT int2 '2' * int2 '2' = int2 '16' / int2 '4' AS true;
|
|
true
|
|
------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT int4 '2' * int2 '2' = int2 '16' / int4 '4' AS true;
|
|
true
|
|
------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT int2 '2' * int4 '2' = int4 '16' / int2 '4' AS true;
|
|
true
|
|
------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT int4 '1000' < int4 '999' AS false;
|
|
false
|
|
-------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT 4! AS twenty_four;
|
|
twenty_four
|
|
-------------
|
|
24
|
|
(1 row)
|
|
|
|
SELECT !!3 AS six;
|
|
six
|
|
-----
|
|
6
|
|
(1 row)
|
|
|
|
SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
|
|
ten
|
|
-----
|
|
10
|
|
(1 row)
|
|
|
|
SELECT 2 + 2 / 2 AS three;
|
|
three
|
|
-------
|
|
3
|
|
(1 row)
|
|
|
|
SELECT (2 + 2) / 2 AS two;
|
|
two
|
|
-----
|
|
2
|
|
(1 row)
|
|
|