--- /dev/null
+=======================================================
+Frequently Asked Questions (FAQ) for PostgreSQL V6.4.1
+FreeBSD Specific
+TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
+=======================================================
+last updated: Mon Dec 14 17:26:03 CET 1998
+
+current maintainer: Pedro J. Lobo (pjlobo@euitt.upm.es)
+original author: Pedro J. Lobo (pjlobo@euitt.upm.es)
+
+This FAQ covers issues that are specific for PostgreSQL running on Digital
+Unix (formerly known as DEC OSF/1). Please check the global FAQ for questions
+not specific to this platform.
+
+Changes in this version (* = modified, + = new, - = removed):
+
+This file is divided approximately as follows:
+
+1.*) Installing PostgreSQL
+
+1.1.*) Compiling PostgreSQL
+
+1.2.*) Running the regression tests
+
+
+Questions answered:
+1.1.1) I can't compile PostgreSQL with gcc.
+
+1.1.2) DEC C dies with an internal error when optimization is
+ enabled (-O flag).
+
+1.2.1) The regression tests fail for char, varchar, select_implicit,
+ select_having and rules.
+
+1.2.2) The regression tests fail for abstime, tinterval and horology.
+
+1.2.3) The regression tests fail for geometry.
+
+1.2.4) The regression tests fail for inet.
+
+----------------------------------------------------------------------
+Section 1: Installing PostgreSQL
+----------------------------------------------------------------------
+
+Section 1.1: Compiling PostgreSQL
+------------------------------------
+
+1.1.1) I can't compile PostgreSQL with gcc.
+
+ Me too O:-) I tried to compile it with gcc 2.7.2.1 without
+ success. However, I've found that DEC C works much better than
+ gcc for alphas, and so I didn't make any effort to find out
+ why gcc fails. If you succedd on this task, please take the
+ time to update this section (see http://www.postgresql.org for
+ the details on how to do this).
+
+1.1.2) The DEC C compiler dies with an internal error when optimization is
+ enabled (-O flag).
+
+ I've seen this happening on 3.2c and 3.2g systems, and only on
+ one of the source files (can't remember exactly which one).
+ The workaround was to compile the offending module without
+ optimization by hand, and re-running gmake to let the process
+ continue.
+
+ It doesn't happen on 4.0d systems (mine at least). Don't know
+ about earlier 4.0 versions.
+
+Section 1.2: Running the regression tests
+--------------------------------------------
+
+1.2.1) The regression tests fail for char, varchar, select_implicit,
+ select_having and rules.
+
+ This only happens when you enable locale support, and is due
+ to a bug in the system's locale libraries. The problem is
+ that strcoll("Axxx", "axxx") returns a value greater than
+ zero instead of lower, which is how it should be.
+
+ This isn't a great problem unless you (or your application)
+ relies on upper-case letters being considered "smaller" than
+ lower-case for ordering purposes. Otherwise, you will only
+ notice that the ordering between upper-case and lower-case
+ letters is reversed.
+
+1.2.2) The regression tests fail for abstime, tinterval and horology.
+
+ I think that these failures are due to some inconsistencies
+ in time zone handling in some years near 1950, in which case
+ the problem would be in the operating system's time zone
+ libraries. Recent dates seem to work as expected, but I can't
+ assure it.
+
+1.2.3) The regression tests fail for geometry.
+
+ These are (small) rounding errors that shouldn't affect any
+ application (but could do, who knows).
+
+1.2.4) The regression tests fail for inet.
+
+ Yes, they do. You must consider the inet type broken for
+ Digital Unix.
+
--- /dev/null
+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)
+