|
|
|
|
@ -16,13 +16,16 @@ list. Version 1 (through 1.01) was developed by Jolly Chen and Andrew |
|
|
|
|
Yu. |
|
|
|
|
|
|
|
|
|
The installation notes below assume the following (except where noted): |
|
|
|
|
- Commands were tested on RedHat Linux version 4.0 using the bash |
|
|
|
|
shell. Except where noted, they will probably work on most |
|
|
|
|
systems. USE COMMON SENSE before typing in these commands. |
|
|
|
|
Commands like ps and tar vary wildly on what options you should |
|
|
|
|
use on each platform. |
|
|
|
|
- Defaults are assumed. |
|
|
|
|
- Commands are Unix-compatible. See note below. |
|
|
|
|
- Defaults are used except where noted. |
|
|
|
|
- User postgres is the postgres superuser. |
|
|
|
|
- The source path is /usr/src/pgsql (other paths are possible). |
|
|
|
|
- The runtime path is /usr/local/pgsql (other paths are possible). |
|
|
|
|
|
|
|
|
|
Commands were tested on RedHat Linux version 4.0 using the bash shell. |
|
|
|
|
Except where noted, they will probably work on most systems. Commands |
|
|
|
|
like ps and tar vary wildly on what options you should use on each |
|
|
|
|
platform. USE COMMON SENSE before typing in these commands. |
|
|
|
|
|
|
|
|
|
Our Makefiles require GNU make (called gmake in this document) and |
|
|
|
|
also assume that "install" accepts BSD options. The INSTALL |
|
|
|
|
@ -45,7 +48,7 @@ PostgreSQL has been tested on the following platforms: |
|
|
|
|
hpux HP PA-RISC on HP-UX 9.0 |
|
|
|
|
i386_solaris i386 Solaris |
|
|
|
|
irix5 SGI MIPS on IRIX 5.3 |
|
|
|
|
linux Intel x86 on Linux 1.2 and Linux ELF |
|
|
|
|
linux Intel x86 on Linux 2.0 and Linux ELF |
|
|
|
|
(For non-ELF Linux, see LINUX_ELF below). |
|
|
|
|
sparc_solaris SUN SPARC on Solaris 2.4 |
|
|
|
|
sunos4 SUN SPARC on SunOS 4.1.3 |
|
|
|
|
@ -160,7 +163,10 @@ To upgrade to PostgreSQL v6.1 do the following: |
|
|
|
|
else) then you will also want to move this directory in the same |
|
|
|
|
manner. |
|
|
|
|
|
|
|
|
|
9) Make new source and install directories. Type |
|
|
|
|
9) Make new source and install directories. The actual paths can be |
|
|
|
|
different for your installation; be consistant with your configuration |
|
|
|
|
in step (11). |
|
|
|
|
Type |
|
|
|
|
su |
|
|
|
|
cd /usr/src |
|
|
|
|
mkdir pgsql |
|
|
|
|
@ -174,7 +180,9 @@ To upgrade to PostgreSQL v6.1 do the following: |
|
|
|
|
cd /usr/src/pgsql |
|
|
|
|
gunzip -c ~/postgresql-v6.1.tar.gz | tar xvf - |
|
|
|
|
|
|
|
|
|
11) Configure the source code for your system. Type |
|
|
|
|
11) Configure the source code for your system. It is this step at which |
|
|
|
|
you can specify your actual source path and installation paths for |
|
|
|
|
the build process (see the --prefix option below). Type |
|
|
|
|
cd /usr/src/pgsql/src |
|
|
|
|
./configure |
|
|
|
|
|
|
|
|
|
@ -236,8 +244,9 @@ To upgrade to PostgreSQL v6.1 do the following: |
|
|
|
|
|
|
|
|
|
12) Compile the program. Type |
|
|
|
|
cd /usr/src/pgsql/src |
|
|
|
|
gmake all &> make.log & |
|
|
|
|
gmake all >& make.log & |
|
|
|
|
tail -f make.log |
|
|
|
|
|
|
|
|
|
The last line displayed will hopefully be "All of PostgreSQL is |
|
|
|
|
successfully made. Ready to install." At this point, or earlier |
|
|
|
|
if you wish, type control-C to get out of tail. (If you have |
|
|
|
|
@ -258,8 +267,9 @@ To upgrade to PostgreSQL v6.1 do the following: |
|
|
|
|
|
|
|
|
|
13) Install the program. Type |
|
|
|
|
cd /usr/src/pgsql/src |
|
|
|
|
gmake install &> make.install.log & |
|
|
|
|
gmake install >& make.install.log & |
|
|
|
|
tail -f make.install.log |
|
|
|
|
|
|
|
|
|
The last line displayed will be "gmake[1]: Leaving directory |
|
|
|
|
`/usr/src/pgsql/src/man'". At this point, or earlier if you wish, |
|
|
|
|
type control-C to get out of tail. |
|
|
|
|
@ -320,12 +330,14 @@ To upgrade to PostgreSQL v6.1 do the following: |
|
|
|
|
However, we think skipping the tests is a BAD idea! |
|
|
|
|
|
|
|
|
|
Start the postmaster in preparation for the regression tests. First, |
|
|
|
|
set the timezone for Berkley, California. On some systems you may do |
|
|
|
|
set the timezone for Berkeley, California. On some systems you may do |
|
|
|
|
this by setting environment variable TZ. I.e., using bash, type |
|
|
|
|
export TZ=PST8PDT7,M04.01.0,M10.0503 |
|
|
|
|
export TZ=PST8PDT7,M04.01.0,M10.05.03 |
|
|
|
|
|
|
|
|
|
Now start the postmaster daemon running in the background by typing |
|
|
|
|
cd |
|
|
|
|
nohup postmaster > regress.log 2>&1 & |
|
|
|
|
|
|
|
|
|
Run postmaster from your postgres super user account (typically |
|
|
|
|
account postgres). DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT. |
|
|
|
|
|
|
|
|
|
@ -340,31 +352,40 @@ To upgrade to PostgreSQL v6.1 do the following: |
|
|
|
|
|
|
|
|
|
You should get on the screen (and also written to file ./regress.out) |
|
|
|
|
a series of statements stating which tests passed and which tests |
|
|
|
|
failed. Please note that it is normal for some of the tests to |
|
|
|
|
"fail". |
|
|
|
|
|
|
|
|
|
For the tests that failed, i.e. if float8 failed, type something like: |
|
|
|
|
failed. Please note that it can be normal for some of the tests to |
|
|
|
|
"fail". For the failed tests, use diff to compare the files in |
|
|
|
|
directories ./results and ./expected. If float8 failed, type |
|
|
|
|
something like: |
|
|
|
|
cd /usr/src/pgsql/src/test/regress |
|
|
|
|
diff -w expected/float8.out results |
|
|
|
|
Now do some intelligent interpretation of what you see before |
|
|
|
|
deciding if you have detected a bug in PostgreSQL as it compiled on |
|
|
|
|
you platform. |
|
|
|
|
|
|
|
|
|
For example. On a SPARC/Linux-elf platform using the 970516 beta |
|
|
|
|
version of PostgreSQL v6.1 the following tests "failed". float8 |
|
|
|
|
and geometry "failed" due to minor precision differences in floating |
|
|
|
|
point numbers. timespan and horology had different values from the |
|
|
|
|
expected "14 secs ago". (This may be a real bug. It may simply be |
|
|
|
|
problems with convincing the back end what timezone and time to |
|
|
|
|
use.) datetime, abstime and tinterval failed because it used GMT |
|
|
|
|
where it should have used PST and PDT. (Same comment.) select_views |
|
|
|
|
failed for unknown reasons. Conclusion? There may be some real |
|
|
|
|
bugs exhibited here but will they effect what you intend to use |
|
|
|
|
PostgreSQL for? (Note: Most of these bugs also occur on the |
|
|
|
|
i86/Linux platform. Also note that there will be significant |
|
|
|
|
changes made to the date and time types immediately after the |
|
|
|
|
v6.1 release so if you do need these functions, monitor the HACKERS |
|
|
|
|
and PORTS mailing lists to see what is going on.) |
|
|
|
|
|
|
|
|
|
"Failed" tests may have failed due to slightly different error messages, |
|
|
|
|
output formatting, failure to set the timezone correctly for your |
|
|
|
|
platform, etc. "Failures" of this type do not indicate a problem with |
|
|
|
|
PostgreSQL. |
|
|
|
|
|
|
|
|
|
Here is an example from a i686/Linux-ELF platform (this is the platform |
|
|
|
|
on which most of the regression tests were generated). float8 failed |
|
|
|
|
on exponentiation and logarithmic operations due to known differences |
|
|
|
|
in error handling for those math functions between this platform |
|
|
|
|
and the original Sun (?) Postgres v4.2 development environment. |
|
|
|
|
|
|
|
|
|
Here is an example from a SPARC/Linux-ELF platform (note that this is |
|
|
|
|
for an "unsupported" platform). Using the 970516 beta version of |
|
|
|
|
PostgreSQL v6.1 the following tests "failed". float8 and geometry |
|
|
|
|
"failed" due to minor precision differences in floating point numbers. |
|
|
|
|
timespan and horology had different values from the expected |
|
|
|
|
"14 secs ago". datetime, abstime and tinterval had "GMT" for the time |
|
|
|
|
zone rather than "PST" or "PDT". These differences were due to a |
|
|
|
|
mis-typed string for the TZ environment variable from step (18). |
|
|
|
|
select_views failed for unknown reasons. |
|
|
|
|
|
|
|
|
|
Conclusion? If you do see failures, try to understand the nature of |
|
|
|
|
the differences and then decide if those differences will affect your |
|
|
|
|
intended use of PostgreSQL. However, keep in mind that this is likely |
|
|
|
|
to be the most solid release of PostgreSQL to date, incorporating many |
|
|
|
|
bug fixes from v6.0, and that previous versions of PostgreSQL has been |
|
|
|
|
in use successfully for some time now. |
|
|
|
|
|
|
|
|
|
After running the tests, type |
|
|
|
|
cd /usr/src/pgsql/src/test/regress |
|
|
|
|
@ -508,8 +529,9 @@ Create the database foo: |
|
|
|
|
template1=> CREATE DATABASE FOO; |
|
|
|
|
INSERT 773248 |
|
|
|
|
|
|
|
|
|
(Don't ever forget those SQL semicolons. Psql won't execute anything until it |
|
|
|
|
sees the semicolon.) |
|
|
|
|
(Get in the habit of including those SQL semicolons. Psql won't execute |
|
|
|
|
anything until it sees the semicolon or a "\g" and the semicolon is required |
|
|
|
|
to delimit multiple statements.) |
|
|
|
|
|
|
|
|
|
template1=> \c foo |
|
|
|
|
closing connection to database: template1 |
|
|
|
|
@ -517,10 +539,10 @@ connecting to new database: foo |
|
|
|
|
|
|
|
|
|
(\ commands aren't SQL, so no semicolon. Use \? to see all the \ commands.) |
|
|
|
|
|
|
|
|
|
template1=> CREATE TABLE bar (column1 int4, column2 char16); |
|
|
|
|
foo=> CREATE TABLE bar (column1 int4, column2 char16); |
|
|
|
|
CREATE |
|
|
|
|
|
|
|
|
|
template1=> \d bar |
|
|
|
|
foo=> \d bar |
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
@ -553,25 +575,31 @@ Ultrix4.x: |
|
|
|
|
s2k-ftp.CS.Berkeley.EDU:pub/personal/andrew/libdl-1.1.tar.Z |
|
|
|
|
|
|
|
|
|
Linux: |
|
|
|
|
The linux port defaults to the ELF binary format. (Note that if you're |
|
|
|
|
using ELF, you don't need dld because you'll be using the dl library |
|
|
|
|
that comes with Linux ELF instead.) |
|
|
|
|
|
|
|
|
|
To compile on non-ELF Linux, comment out the LINUX_ELF line in |
|
|
|
|
src/mk/port/postgres.mk.linux. Also, the dld library MUST be obtained |
|
|
|
|
and installed on the system. It enables dynamic link loading capability |
|
|
|
|
to the postgres port. The dld library can be obtained from the sunsite |
|
|
|
|
linux distributions. The current name is dld-3.2.5. |
|
|
|
|
The linux-elf port installs cleanly. If you are using an |
|
|
|
|
i486 processor or higher, you can edit template/linux-elf |
|
|
|
|
to include "-m486" as a compiler option. configure does not |
|
|
|
|
detect that sigsetjmp() is available, but you can edit |
|
|
|
|
include/config.h after running configure and before running |
|
|
|
|
make to include "#define HAVE_SIGSETJMP 1". Note that I have |
|
|
|
|
not seen any difference in PostgreSQL behavior either way. |
|
|
|
|
(Thomas G. Lockhart |
|
|
|
|
<Thomas.Lockhart@jpl.nasa.gov> 97/05/17) |
|
|
|
|
|
|
|
|
|
For non-ELF Linux, the dld library MUST be obtained and installed on |
|
|
|
|
the system. It enables dynamic link loading capability to the postgres |
|
|
|
|
port. The dld library can be obtained from the sunsite linux |
|
|
|
|
distributions. The current name is dld-3.2.5. |
|
|
|
|
(Jalon Q. Zimmerman |
|
|
|
|
<sneaker@powergrid.electriciti.com> 5/11/95) |
|
|
|
|
|
|
|
|
|
To compile with flex, you need a recent version (2.5.2 or |
|
|
|
|
To compile with flex, you need a recent version (v2.5.2 or v2.5.4 or |
|
|
|
|
later). Otherwise, you will get a 'yy_flush_buffer' undefined error. |
|
|
|
|
Note, however, that flex v2.5.3 has a bug. See the FAQs. |
|
|
|
|
|
|
|
|
|
BSD/OS: |
|
|
|
|
For BSD/OS 2.0 and 2.01, you will need to get flex version 2.5.2 |
|
|
|
|
as well as the GNU dld library. Flex version 2.5.3 has a known bug. |
|
|
|
|
For BSD/OS 2.0 and 2.01, you will need to get flex version 2.5.2 or |
|
|
|
|
flex version 2.5.4 as well as the GNU dld library. |
|
|
|
|
Flex version 2.5.3 has a known bug on all platforms. |
|
|
|
|
|
|
|
|
|
NeXT: |
|
|
|
|
The NeXT port was supplied by Tom R. Hageman <tom@basil.icce.rug.nl>. |
|
|
|
|
@ -585,8 +613,8 @@ SPARC Linux-elf: |
|
|
|
|
There was not time to finish adding support for this in the v6.1 |
|
|
|
|
release. However, if you are running RedHat Linux v4.0 on a |
|
|
|
|
SPARC platform then install flex v2.5.4 and tell configure you |
|
|
|
|
have a Linux-elf platform. Between configuring and compiling |
|
|
|
|
PostgreSQL, edit the following files: |
|
|
|
|
have a "linux-elf" platform. After running "configure" and before |
|
|
|
|
compiling PostgreSQL, make the following changes: |
|
|
|
|
1) Edit src/GNUmakefile to comment out the call to lexflex and |
|
|
|
|
the if-then-else test that follows it. (This may not be |
|
|
|
|
necessary by the time v6.1 gets released.) |
|
|
|
|
@ -602,8 +630,7 @@ SPARC Linux-elf: |
|
|
|
|
#endif |
|
|
|
|
*/ |
|
|
|
|
#define BYTE_ORDER LITTLE_ENDIAN |
|
|
|
|
If you want to know the reasonilng behind the above instructions |
|
|
|
|
then look in ftp://ftp.postgresql.org/pub/majordomo/ports for a |
|
|
|
|
May 16, 1997 mail message called "regression tests on a |
|
|
|
|
For more details, look in ftp://ftp.postgresql.org/pub/majordomo/ports |
|
|
|
|
for a May 16, 1997 mail message called "regression tests on a |
|
|
|
|
SPARC/Linux platform". |
|
|
|
|
|
|
|
|
|
|