diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/port/snprintf.c | 4 | ||||
-rw-r--r-- | src/template/.similar | 2 | ||||
-rw-r--r-- | src/template/alpha_cc | 15 | ||||
-rw-r--r-- | src/template/alpha_gcc (renamed from src/template/alpha) | 0 | ||||
-rw-r--r-- | src/test/regress/expected/float8-OSF1.out | 234 |
5 files changed, 252 insertions, 3 deletions
diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c index 2e3e077a66c..7ec97b94e8e 100644 --- a/src/backend/port/snprintf.c +++ b/src/backend/port/snprintf.c @@ -72,7 +72,7 @@ typedef long long long_long; * causing nast effects. **************************************************************/ -/*static char _id[] = "$Id: snprintf.c,v 1.13 1998/12/18 07:03:06 momjian Exp $";*/ +/*static char _id[] = "$Id: snprintf.c,v 1.14 1998/12/18 07:08:00 momjian Exp $";*/ static char *end; static int SnprfOverflow; @@ -349,7 +349,7 @@ int base, zpad; { int signvalue = 0; -#ifdef HAVE_LONG_INT_64 +#ifdef HAVE_LONG_LONG_INT_64 unsigned long_long uvalue; #else unsigned long uvalue; diff --git a/src/template/.similar b/src/template/.similar index 96e4f862717..c5f74dc39f0 100644 --- a/src/template/.similar +++ b/src/template/.similar @@ -1,4 +1,4 @@ -alpha-dec-osf=alpha +alpha-dec-osf=alpha_cc alpha-unknown-linux-gnu=linux_alpha hppa1.1-hp-hpux=hpux_cc hppa1.1-stratus-sysv4=svr4 diff --git a/src/template/alpha_cc b/src/template/alpha_cc new file mode 100644 index 00000000000..20c3d1c94c9 --- /dev/null +++ b/src/template/alpha_cc @@ -0,0 +1,15 @@ +AROPT:crs +# NOFIXADE disallows unaligned access. +# on Ultrix and OSF/1 it invokes an explicit syscall. +# on HP-UX it turns off certain compiler options. +# This is defined here because a bunch of clients include tmp/c.h, +# which is where the work is done on HP-UX. It only affects the +# backend on Ultrix and OSF/1. +CFLAGS:-DNOFIXADE -std -O4 -Olimit 2000 +SHARED_LIB: +ALL: +SRCH_INC: +SRCH_LIB: +DLSUFFIX:.so +YFLAGS:-d +YACC: diff --git a/src/template/alpha b/src/template/alpha_gcc index 3da0dfe93a6..3da0dfe93a6 100644 --- a/src/template/alpha +++ b/src/template/alpha_gcc diff --git a/src/test/regress/expected/float8-OSF1.out b/src/test/regress/expected/float8-OSF1.out new file mode 100644 index 00000000000..30003c3c316 --- /dev/null +++ b/src/test/regress/expected/float8-OSF1.out @@ -0,0 +1,234 @@ +QUERY: CREATE TABLE FLOAT8_TBL(f1 float8); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1004.30'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200'); +QUERY: SELECT '' AS five, FLOAT8_TBL.*; +five|f1 +----+-------------------- + |0 + |1004.3 + |-34.84 + |1.2345678901234e+200 + |1.2345678901234e-200 +(5 rows) + +QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3'; +four|f1 +----+-------------------- + |0 + |-34.84 + |1.2345678901234e+200 + |1.2345678901234e-200 +(4 rows) + +QUERY: SELECT '' AS one, f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3'; +one| f1 +---+------ + |1004.3 +(1 row) + +QUERY: SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1; +three| f1 +-----+-------------------- + | 0 + | -34.84 + |1.2345678901234e-200 +(3 rows) + +QUERY: SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3'; +three| f1 +-----+-------------------- + | 0 + | -34.84 + |1.2345678901234e-200 +(3 rows) + +QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1; +four| f1 +----+-------------------- + | 0 + | 1004.3 + | -34.84 + |1.2345678901234e-200 +(4 rows) + +QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3'; +four| f1 +----+-------------------- + | 0 + | 1004.3 + | -34.84 + |1.2345678901234e-200 +(4 rows) + +QUERY: SELECT '' AS three, f.f1, f.f1 * '-10' AS x + FROM FLOAT8_TBL f + WHERE f.f1 > '0.0'; +three|f1 |x +-----+--------------------+--------------------- + |1004.3 |-10043 + |1.2345678901234e+200|-1.2345678901234e+201 + |1.2345678901234e-200|-1.2345678901234e-199 +(3 rows) + +QUERY: SELECT '' AS three, f.f1, f.f1 + '-10' AS x + FROM FLOAT8_TBL f + WHERE f.f1 > '0.0'; +three|f1 |x +-----+--------------------+-------------------- + |1004.3 |994.3 + |1.2345678901234e+200|1.2345678901234e+200 + |1.2345678901234e-200|-10 +(3 rows) + +QUERY: SELECT '' AS three, f.f1, f.f1 / '-10' AS x + FROM FLOAT8_TBL f + WHERE f.f1 > '0.0'; +three|f1 |x +-----+--------------------+--------------------- + |1004.3 |-100.43 + |1.2345678901234e+200|-1.2345678901234e+199 + |1.2345678901234e-200|-1.2345678901234e-201 +(3 rows) + +QUERY: SELECT '' AS three, f.f1, f.f1 - '-10' AS x + FROM FLOAT8_TBL f + WHERE f.f1 > '0.0'; +three|f1 |x +-----+--------------------+-------------------- + |1004.3 |1014.3 + |1.2345678901234e+200|1.2345678901234e+200 + |1.2345678901234e-200|10 +(3 rows) + +QUERY: SELECT '' AS one, f.f1 ^ '2.0' AS square_f1 + FROM FLOAT8_TBL f where f.f1 = '1004.3'; +one| square_f1 +---+---------- + |1008618.49 +(1 row) + +QUERY: SELECT '' AS five, f.f1, @f.f1 AS abs_f1 + FROM FLOAT8_TBL f; +five|f1 |abs_f1 +----+--------------------+-------------------- + |0 |0 + |1004.3 |1004.3 + |-34.84 |34.84 + |1.2345678901234e+200|1.2345678901234e+200 + |1.2345678901234e-200|1.2345678901234e-200 +(5 rows) + +QUERY: SELECT '' AS five, f.f1, %f.f1 AS trunc_f1 + FROM FLOAT8_TBL f; +five|f1 |trunc_f1 +----+--------------------+-------------------- + |0 |0 + |1004.3 |1004 + |-34.84 |-34 + |1.2345678901234e+200|1.2345678901234e+200 + |1.2345678901234e-200|0 +(5 rows) + +QUERY: SELECT '' AS five, f.f1, f.f1 % AS round_f1 + FROM FLOAT8_TBL f; +five|f1 |round_f1 +----+--------------------+-------------------- + |0 |0 + |1004.3 |1004 + |-34.84 |-35 + |1.2345678901234e+200|1.2345678901234e+200 + |1.2345678901234e-200|0 +(5 rows) + +QUERY: SELECT '' AS three, f.f1, |/f.f1 AS sqrt_f1 + FROM FLOAT8_TBL f + WHERE f.f1 > '0.0'; +three|f1 |sqrt_f1 +-----+--------------------+--------------------- + |1004.3 |31.6906926399535 + |1.2345678901234e+200|1.11111110611109e+100 + |1.2345678901234e-200|1.11111110611109e-100 +(3 rows) + +QUERY: SELECT '' AS three, f.f1, : ( ; f.f1) AS exp_ln_f1 + FROM FLOAT8_TBL f + WHERE f.f1 > '0.0'; +three|f1 |exp_ln_f1 +-----+--------------------+--------------------- + |1004.3 |1004.3 + |1.2345678901234e+200|1.23456789012338e+200 + |1.2345678901234e-200|1.23456789012339e-200 +(3 rows) + +QUERY: SELECT '' AS five, f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f; +five|f1 |cbrt_f1 +----+--------------------+-------------------- + |0 |0 + |1004.3 |10.014312837827 + |-34.84 |-3.26607421344208 + |1.2345678901234e+200|4.97933859234765e+66 + |1.2345678901234e-200|2.3112042409018e-67 +(5 rows) + +QUERY: SELECT '' AS five, FLOAT8_TBL.*; +five|f1 +----+-------------------- + |0 + |1004.3 + |-34.84 + |1.2345678901234e+200 + |1.2345678901234e-200 +(5 rows) + +QUERY: UPDATE FLOAT8_TBL + SET f1 = FLOAT8_TBL.f1 * '-1' + WHERE FLOAT8_TBL.f1 > '0.0'; +QUERY: SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f; +ERROR: floating point exception! The last floating point operation either exceeded legal ranges or was a divide by zero +QUERY: SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f; +ERROR: pow() result is out of range +QUERY: SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 = '0.0' ; +ERROR: can't take log of zero +QUERY: SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 < '0.0' ; +ERROR: can't take log of a negative number +QUERY: SELECT '' AS bad, : (f.f1) from FLOAT8_TBL f; +ERROR: exp() result is out of range +QUERY: SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f; +ERROR: float8div: divide by zero error +QUERY: SELECT '' AS five, FLOAT8_TBL.*; +five|f1 +----+--------------------- + |0 + |-34.84 + |-1004.3 + |-1.2345678901234e+200 + |-1.2345678901234e-200 +(5 rows) + +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400'); +ERROR: Bad float8 input format '10e400' +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400'); +ERROR: Bad float8 input format '-10e400' +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400'); +ERROR: Bad float8 input format '10e-400' +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400'); +ERROR: Bad float8 input format '-10e-400' +QUERY: DELETE FROM FLOAT8_TBL; +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1004.30'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200'); +QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200'); +QUERY: SELECT '' AS five, FLOAT8_TBL.*; +five|f1 +----+--------------------- + |0 + |-34.84 + |-1004.3 + |-1.2345678901234e+200 + |-1.2345678901234e-200 +(5 rows) + |