aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/port/snprintf.c4
-rw-r--r--src/template/.similar2
-rw-r--r--src/template/alpha_cc15
-rw-r--r--src/template/alpha_gcc (renamed from src/template/alpha)0
-rw-r--r--src/test/regress/expected/float8-OSF1.out234
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)
+