From 682ccb81a0a746b50229bce98870b87bc926aa95 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 14 Oct 1996 12:12:14 +0000 Subject: [PATCH] New FAQ's. --- doc/FAQ | 25 ++-- doc/FAQ-Irix | 155 ++++++++++++++++++++ doc/FAQ-Linux | 387 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 559 insertions(+), 8 deletions(-) create mode 100644 doc/FAQ-Irix create mode 100644 doc/FAQ-Linux diff --git a/doc/FAQ b/doc/FAQ index edbbefb8a4..90356ff87a 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,6 +1,6 @@ Frequently Asked Questions (FAQ) for Postgres95 -Last updated: Fri Sep 27 17:48:23 EDT 1996 +Last updated: Mon Oct 14 08:05:23 EDT 1996 Version: 2.0 Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) @@ -8,9 +8,15 @@ Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) The most recent version of this document can be viewed at the postgres95 Web site, http://www.ki.net/postgres95. +Linux-specific questions are answered in +http://www.ki.net/postgres95/docs/FAQ-Linux.phtml. + +Irix-specific questions are answered in +http://www.ki.net/postgres95/docs/FAQ-Irix.phtml. + Changes in this version (* = modified, + = new): - * *3.23) How do I create a serial field? + * *3.41) What is the meaning of some of the terms used in Postgres? ---------------------------------------------------------------------------- @@ -241,7 +247,7 @@ home page at: 1.6) Latest release of Postgres95 -The latest release of postgres95 is version 1.07. +The latest release of postgres95 is version 1.08. 1.7) Is there a commercial version of Postgres95? @@ -277,7 +283,7 @@ eventually we can also add the missing features listed above. 1.10) Does Postgres95 work with databases from earlier versions of postgres? -Postgres95 v1.07 is compatible with databases created with v1.01. Those +Postgres95 v1.08 is compatible with databases created with v1.01. Those upgrading from 1.0 should read the directions in the MIGRATION_1.0_TO_1.02 directory. @@ -546,7 +552,7 @@ sending a mail to: * majordomo@listserv.direct.net OpenLink ODBC is currently in beta under Linux. You can get it from -http://www.openlinksw.com/postgre s.html. It works with our standard ODBC +http://www.openlinksw.com/postgres.html. It works with our standard ODBC client software so you'll have Postgres ODBC available on every client platform we support (Win, Mac, Unix, VMS). @@ -626,8 +632,8 @@ Place the word 'EXPLAIN' at the beginning of the query, for example: Postgres does not allow the user to specifiy a user column as type SERIAL. Instead, you can use each row's oid field as a unique value. However, if you need to dump and reload the database, you need to be using postgres version -1.07 or 2.* with pgdump's -o option or COPY's WITH OIDS option to preserver -the oids. +1.07 or later or 2.* with pgdump's -o option or COPY's WITH OIDS option to +preserver the oids. Another valid way of doing this is to create a function: @@ -771,7 +777,8 @@ INSERTed rows get a timestamp too, so rows that were not in the table at the desired time will not appear. Vacuum removes rows that are no longer current. This time-warp feature is -used by the engine for rollback and crash recovery. +used by the engine for rollback and crash recovery. Expiration times can be +set with purge. 3.38) How do I tune the database engine for better performance? @@ -852,6 +859,8 @@ common usage. Here are some: * retrieve, select * replace, update * oid, serial value + * portal, cursor + * range variable, table name, table alias Please let me know if you think of any more. diff --git a/doc/FAQ-Irix b/doc/FAQ-Irix new file mode 100644 index 0000000000..9437a06db7 --- /dev/null +++ b/doc/FAQ-Irix @@ -0,0 +1,155 @@ +==================================================== +Frequently Asked Questions (FAQ) for Postgres95 +IRIX Specific +TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ +==================================================== +last updated: Fri Oct 11 14:45:00 BST 1996 + +current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) +original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) + + +Changes in this version (* = modified, + = new): ++3.1) How do I compile a C program to create a function for extending + Postgres95 + + +This file is divided approximately as follows: +0.*) Bugs in Postgres95 V1.08 +1.*) Installing Postgres95 +2.*) Uninstalling Postgres95 +3.*) Extending Postgres95 + + +Questions answered: +0.1) What bugs do I need to fix before Postgres95 will compile + under Irix? +1.1) What extra items do I need to install Postgres95 under Irix? +1.2) What changes do I need to make to src/Makefile.global? +1.3) What are the references in X11_LIB to libsocket and libnsl in + src/Makefile.global? +1.4) Are there any other changes I should make? +2.1) Why can't I move the executable files? + +---------------------------------------------------------------------- +Section 0: Bugs in Postgres95 V1.08 +---------------------------------------------------------------------- +0.1) What bugs do I need to fix before Postgres95 will compile + under Irix? + + a) Fix the bug in src/Makefile.global: + Change + # Globally pass PORTNAME + CFLAGS+= -DPORTNAME_$(PORTNAME) + CFLAGS += -I ../../backend/port/$(PORTNAME) + to + # Globally pass PORTNAME + CFLAGS+= -DPORTNAME_$(PORTNAME) + CFLAGS += -I../../backend/port/$(PORTNAME) + + (i.e. remove the space after the -I) + + + b) Add the missing prototype to src/bin/pg_dump/pg_dump.h + After the line + extern int findLastBuiltinOid(); + add + extern void setMaxOid(FILE *fout); + + +---------------------------------------------------------------------- +Section 1: Installing Postgres95 +---------------------------------------------------------------------- + +1.1) What extra items do I need to install Postgres95 under Irix? + + You *must* have the following installed: + a) Gnu make (installed as gmake) + + You are recommended to install the following: + a) GNU install (installed as ginstall) + + You may choose to install the following: + a) GNU readline library (if you wish psql to have readline + support). + b) tcl/tk (if you wish to compile pgtclsh) + +1.2) What changes do I need to make to src/Makefile.global? + + You *must* set the following variables: + PORTNAME= irix5 + IPCSDIR= /usr/sbin + + You will also need to change the following to match your own + installation: + SRCDIR + POSTGRESDIR + + If you switch on the USE_TCL option, you will need to set these: + TCL_INCDIR= + TCL_LIBDIR= + TCL_LIB = + TK_INCDIR= + TK_LIBDIR= + TK_LIB = + + You may also make any other changes you need as documented in + the INSTALL file and in Makefile.global + +1.3) What are the references in X11_LIB to libsocket and libnsl in + src/Makefile.global? + + These are Sun Solaris specific and shouldn't be in Makefile.global + The compile (including pgtclsh) seems to go OK even though + these don't exist... + +1.4) Are there any other changes I should make? + + If you have installed the GNU install program (ginstall), you + should edit src/mk/port/postgres.mk.irix5 + and change the line: + INSTALL=/usr/bin/X11/bsdinst + to + INSTALL=ginstall + + For an explanation as to why this is a good idea, see Question 2.1 + + +---------------------------------------------------------------------- +Section 2: Deinstalling Postgres95 +---------------------------------------------------------------------- + +2.1) Why can't I move the executable files? + + By default, the IRIX port uses the BSD compatible version of + install from /usr/bin/X11. If you read the man page for this + version of install, you will see that it is not meant for + end-user use; it has the interesting side-effect of chowning + files it installs to root. + + You should still be able to delete the files as you (the + postgres user) will own the directory in which they are + stored. + + The normal IRIX install program cannot be used easily as it + takes its arguments in the reverse order. It is therefore + recommended to use the GNU version of install (ginstall). + See Question 1.4 + + +---------------------------------------------------------------------- +Section 3: Extending Postgres95 +---------------------------------------------------------------------- +3.1) How do I compile a C program to create a function for extending + Postgres95 + + Here is a sample command line: + + cc -I/usr/local/postgres95/include/ -I/usr/local/postgres95/src/backend + -shared -o funcs.so funcs.c + +**************************************************************************** +Dr. Andrew C.R. Martin, University College London & SciTech Software +EMAIL: martin@biochem.ucl.ac.uk Tel:(Work) +44(0)171 419 3890 +URL: http://www.biochem.ucl.ac.uk/~martin (Home) +44(0)1372 275775 +**************************************************************************** diff --git a/doc/FAQ-Linux b/doc/FAQ-Linux new file mode 100644 index 0000000000..357e301bd9 --- /dev/null +++ b/doc/FAQ-Linux @@ -0,0 +1,387 @@ +==================================================== +Frequently Asked Questions (FAQ) for Postgres95 +Linux Specific +TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ +==================================================== +last updated: Mon Oct 14 11:00:00 BST 1996 + +current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) +original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) + + +Changes in this version (* = modified, + = new): +*1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h? +*1.14) [DEBIAN] Where is libtermcap? + + +This file is divided approximately as follows: +0.*) Bugs in Postgres95 V1.08 +1.*) Installing Postgres95 +2.*) Compiling accessory programs +3.*) Runtime Problems +4.*) Spurious Problems in Need of Verification + + +Questions answered: +0.1) What bugs do I need to fix before Postgres95 will compile + under Linux? +1.1) What changes do I need to make to src/Makefile.global +1.2) Why do I get problems with missing libreadline? +1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h? +1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? +1.5) My compile of the backend dies complaining about the include file + dlfcn.h missing +1.6) GCC complains about an ignored option -fpic +1.7) I get warnings of the form + warning: cast from pointer to integer of different size +1.8) [SuSE-Linux 4.2] Where is curses and termcap? +1.9) Why do I get problems with ld.so? +1.10) Why do I get `yy_flush_buffer undefined' errors? +1.11) How do I compile Postgres95 on an a.out system? +1.12) Why does make fail with: + yacc -d /disk2/postgres95/src/backend/parser/gram.y + make: /usr/bin/make: cannot execute binary file +1.13) What are the references in X11_LIB to libsocket and libnsl in + src/Makefile.global? +1.14) [DEBIAN] Where is libtermcap? +2.1) The linker fails to find libX11 when compiling pgtclsh +3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when + running scripts like createuser +3.2) I run postmaster and after that system says 'Bad system call(Core + dumped)' +3.3) When I try to start the Postmaster, why do I get an error of the form + Failed Assertion("!(file != 0):(null)", File: + "/usr/local/postgres95/src/backend/storage/file/fd.c", Line: 257) + !(file != 0) (0) + initdb: could not create template database + initdb: cleaning up. +3.4) Why doesn't createuser work? +4.1) Why doesn't the postmaster start the first time? + +---------------------------------------------------------------------- +Section 0: Bugs in Postgres95 V1.08 +---------------------------------------------------------------------- +0.1) What bugs do I need to fix before Postgres95 will compile + under Linux? + + a) Fix the bug in src/Makefile.global: + Change + # Globally pass PORTNAME + CFLAGS+= -DPORTNAME_$(PORTNAME) + CFLAGS += -I ../../backend/port/$(PORTNAME) + to + # Globally pass PORTNAME + CFLAGS+= -DPORTNAME_$(PORTNAME) + CFLAGS += -I../../backend/port/$(PORTNAME) + + (i.e. remove the space after the -I) + + + b) Add the missing prototype to src/bin/pg_dump/pg_dump.h + After the line + extern int findLastBuiltinOid(); + add + extern void setMaxOid(FILE *fout); + + +---------------------------------------------------------------------- +Section 1: Compiling Postgres95 +---------------------------------------------------------------------- + +1.1) What changes do I need to make to src/Makefile.global + + You *must* set the following variables: + PORTNAME= linux + + You will also need to change the following to match your own + installation: + SRCDIR + POSTGRESDIR + + If you switch on the USE_TCL option, you will need to set these: + TCL_INCDIR= + TCL_LIBDIR= + TCL_LIB= + TK_INCDIR= + TK_LIBDIR= + TK_LIB= + X11_INCDIR= + X11_LIBDIR= + X11_LIB= + + On my Slackware3.0 system, these are: + TCL_INCDIR= /usr/include/tcl + TCL_LIBDIR= /usr/lib + TCL_LIB= -ltcl + TK_INCDIR= /usr/include/tcl + TK_LIBDIR= /usr/lib + TK_LIB= -ltk + X11_INCDIR= /usr/include/X11 + X11_LIBDIR= /usr/X386/lib + X11_LIB= -lX11 + + You may also make any other changes you need as documented in + the INSTALL file and in Makefile.global + + +1.2) Why do I get problems with missing libreadline? + + Linux systems generally don't come with the GNU readline library + installed. Either comment out the USE_READLINE variable in + src/Makefile.global or install the GNU readline library. + +1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h? + + The libdl library is used for dynamic linking of user-supplied + functions at run-time. For some reason this library was missed out + from the Redhat distribution. + + You can obtain the library and the header file from: + + ftp://tsx-11.mit.edu/packages/GCC/ld.so-1.7.14.tar.gz + + Alternatively, you may find precompiled binaries in + distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb + on the same site, or follow the instructions given for question 1.2 for + correcting the same error with early releases of Slackware 3.1. + +1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? + + See the answer to question 1.1. Slackware up to version 3.0 was + supplied with this library and include file and they seem to be + back in again in the latest versions of 3.1, but the early 3.1 + releases (before 9th September 1996) had them missing and many + CD-ROM versions will have been pressed from the first 3.1 releases. + + The easiest fix is to obtain the file ldso.tgz from the a4 disk of + a more recent Slackware 3.1 distribution and unpack this file + from the root (/) directory, then do + + sh install/doinst.sh + + to complete the installation. Follow this with + + ldconfig + + If you want to install manually, you must first install the file + dlfcn.h in /usr/include. + + Second, install the file libdl.so.1.7.14 (or whatever the latest + release is) in /lib, then do: + + cd /lib + ln -sf libdl.so.1.7.14 libdl.so.1 + ln -sf libdl.so.1 libdl.so + + On some systems (depending on your GCC configuration) it may be + necessary to do: + + cd /usr/lib + ln -sf /lib/libdl.so . + + Finally + + ldconfig + + +1.5) My compile of the backend dies complaining about the include file + dlfcn.h missing + + See the answer to question 1.2. Don't forget that if you are using + an a.out system you must first have installed the dld package + (which is not supplied with most a.out systems) to have dlfcn.h + at all. See Question 1.11. + + +1.6) GCC complains about an ignored option -fpic + + Earlier versions of GCC accepted either -fpic or -fPIC. + It appears that more recent versions (V2.7.2?) require -fPIC. + If you are using an ELF version of Linux, this can safely be + ignored as -fPIC is the default. + + You can correct this by editing + src/mk/port/postgres.mk.linux + + +1.7) I get warnings of the form + warning: cast from pointer to integer of different size + + These can safely be ignored + +1.8) [SuSE-Linux 4.2] Where is curses and termcap? + + SuSE-Linux has ncurses but not curses. Edit src/bin/psql/Makefile and + Change + LIBCURSES= -lcurses + to + LIBCURSES= -lncurses + + SuSE-Linux has the termcap library is in /usr/lib/termcap instead of + in /usr/lib + Edit src/bin/psql/Makefile and + Change + ifeq ($(PORTNAME), linux) + LD_ADD += -ltermcap + else + to + ifeq ($(PORTNAME), linux) + LD_ADD += -L/usr/lib/termcap -ltermcap + else + +1.9) Why do I get problems with ld.so? + + If you get problems with ld.so, another library required under + ELF for dynamic loading, then you have messed up your installation + or (more likely) upgrade of Linux. + + See the answers to Question 1.2. You may need to install + ld.so.x.y.z in /lib and run ldconfig. + + The most recent stable release of the ld package is 1.7.14 + At the time of writing, 1.8.x versions of ld are experimental. + +1.10) Why do I get `yy_flush_buffer undefined' errors? + + This isn't really Linux specific, but is common on older Linux + installations. You must have a recent version of flex (2.5.2 or later) + to compile Postgres95. Note that flex 2.5.3 has a bug: see + Question 3.4. + +1.11) How do I compile Postgres95 on an a.out system? + + First, you must install the dld library. This may be obtained + from Sunsite as: + Linux/libs/dld.3.2.7.tar.gz + + Second, comment out the LINUX_ELF line in src/mk/port/postgres.mk.linux + +1.12) Why does make fail with: + yacc -d /disk2/postgres95/src/backend/parser/gram.y + make: /usr/bin/make: cannot execute binary file + + yacc is generally implemented as a script which invokes bison -y + For some reason (certain versions of make? certain versions of + bash?) make is unable to execute this script file. + + To correct this, simply edit src/mk/port/postgres.mk.linux + and, at the end of the file, change: + # YACC = bison -y + to + YACC = bison -y + +1.13) What are the references in X11_LIB to libsocket and libnsl in + src/Makefile.global? + + These are Sun Solaris specific and shouldn't be in Makefile.global + The compile (including pgtclsh) seems to go OK even though + these don't exist... + +1.14) [DEBIAN] Where is libtermcap? + + Debian Linux comes without the termcap library and uses ncurses + (which uses terminfo instead). There is no need to change the + LIBCURSES variable in src/bin/psql/Makefile since Debian provides + a link from libncurses to libcurses (unlike SuSE-Linux --- see + Question 1.8). + + Edit src/bin/psql/Makefile and change: + + ifeq ($(PORTNAME), linux) + LD_ADD += -ltermcap + else + + to + + ifeq ($(PORTNAME), linux) + CFLAGS += + else + + + + +---------------------------------------------------------------------- +Section 2: Compiling accessory programs +---------------------------------------------------------------------- + +2.1) The linker fails to find libX11 when compiling pgtclsh + + Modify the src/Makefile.global to change + X11_LIBDIR = /usr/lib + to + X11_LIBDIR = /usr/X11R6/lib + + +---------------------------------------------------------------------- +Section 3: Runtime Problems +---------------------------------------------------------------------- + +3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when + running scripts like createuser + + This is a bug in V1.06-V1.07 of Postgres and is fixed in V1.08 + +3.2) I run postmaster and after that system says 'Bad system call(Core + dumped)' + + This indicates that you have no compiled shared memory support + into your kernel. You need to recompile the Linux kernel to add this + feature. + + +3.3) When I try to start the Postmaster, why do I get an error of the form + Failed Assertion("!(file != 0):(null)", File: + "/usr/local/postgres95/src/backend/storage/file/fd.c", Line: 257) + !(file != 0) (0) + initdb: could not create template database + initdb: cleaning up. + + Your permissions on the file /dev/null are wrong. + + ls -l /dev/null should give you something like: + + crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null + + Correct the permissions using: + + chmod a+rw /dev/null + +3.4) Why doesn't createuser work? + + There is a problem with Version 2.5.3 of GNU flex and createuser. + Your options are to downgrade flex to V2.5.2, apply a patch to + V2.5.3 (supplied in doc/README.flex) or wait for V2.5.4 which + will fix the bug. + + + +---------------------------------------------------------------------- +Section 4: Spurious Problems in Need of Verification +---------------------------------------------------------------------- + +4.1) Why doesn't the postmaster start the first time? + + Pawko Olszewski reported a problem that, using + Linux kernel 2.0.18, the postmaster wouldn't start the first time + it is run using + + postmaster -B 256 + + but if run as + + postmaster -B 64 + + killed and then restarted as + + postmaster -B 256 + + everything was OK. + + I haven't been able to repeat this problem! Nobody else has + reported anything similar. + +**************************************************************************** +Dr. Andrew C.R. Martin, University College London & SciTech Software +EMAIL: martin@biochem.ucl.ac.uk Tel:(Work) +44(0)171 419 3890 +URL: http://www.biochem.ucl.ac.uk/~martin (Home) +44(0)1372 275775 +**************************************************************************** -- 2.40.0