    =======================================================
    Frequently Asked Questions (FAQ) per PostgreSQL >= V6.1
    Specifiche per Linux Os
    DA LEGGERE IN CONGIUNZIONE CON LE NORMALI FAQ
    =======================================================
    Ultimo aggiornamento:           Lunedi' 18 Maggio 11:17:00 GMT 1998

    Curatore corrente:          Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
    Autore originale:           Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
    Traduzione FAQ in italiano: Daniele Medri 'MaDriD' (madrid@darshan.org)

    Cambiamenti in questa versione (* = modificato, + = nuovo, - = rimosso):

    +1.21)  Perche' ricevo strani risultati con i tempi di stampa (per esempio
            nel test di regressione 'timespan'?

    Questo file è diviso approsimativamente nel sequente modo:
    1.*)    Istallare PostgreSQL
    2.*)    Compilare programmi accessori
    3.*)    Problemi di esecuzione

    Domande risposte:
    1.1)    Quali cambiamenti devo fare a src/Makefile.global o a src/Makefile.custom
            e ci sono altri cambiamenti necessari?
    1.2)    Perche' ricevo problemi con missing libreadline?
    1.3)    [REDHAT] Perche' ricevo problemi di libdl e dlfcn.h perse?
    1.4)    [SLACKWARE 3.1] Perche' ricevo problemi di libdl e dlfcn.h perse?
    1.5)    La mia compilazione si arresta segnalando la mancanza dell'include file
            dlfcn.h perso.
    1.6)    GCC reclama una ignorata opzione -fpic
    1.7)    Ricevo messaggi di warning (errore) del tipo
            warning: cast from pointer to integer of different size
    1.8)    [SuSE-Linux 4.2-4.4] Dove sono curses e termcap?
    1.9)    Perche' ho problemi con  ld.so?
    1.10)   Perche' ricevo errori del tipo `yy_flush_buffer undefined'?
    1.11)   Come posso compilare PostgreSQL su un sistema a.out?
    1.12)   Che cosa fallisce con:
            yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
            make: /usr/bin/make: cannot execute binary file
    1.13)   Quali sono i riferimenti in X11_LIB a libsocket e libnsl in
            src/Makefile.global?
    1.14)   [DEBIAN] Dov'e' libtermcap?
    1.15)   [REDHAT] Posso trovare PostgreSQL come RPM?
    1.16)   Quando tento di compilare una versione in sviluppo sotto Linux, la
            compilazione fallisce con il seguente messaggio:
            In file included from /usr/include/sys/sem.h:8,
                     from ipc.c:37:
            /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
            ....
            make: *** [ipc.o] Error 1
    1.17)   Quando sto' compilando postgres, gcc riporta un signal 11 e si interrompe.
    1.18)   Posso installare 6.1.1 su MkLinux?
    1.19)   Perche' esce o va in crash?
    1.20)   Come posso ottimizzarlo per un 486 o un processore pentium
    1.21)   Perche' ricevo strani risultati con i tempi di stampa (per esempio
            nel test di regressione 'timespan'?
    2.1)    Il linker non trova libX11 quando sta' compilando pgtclsh
    3.1)    Ricevo un messaggio tipo  _fUnKy_POSTPORT_sTuFf_ non definito quando
            lancio uno script come createuser
    3.2)    Lancio postmaster e dopo il sistema dice 'Bad system call(Core
            dumped)'
    3.3)    Quando tento di lanciare Postmaster, perche' ricevo un errore del tipo
            Failed Assertion("!(file != 0):(null)", File:
            "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
            !(file != 0) (0)
            initdb: could not create template database
            initdb: cleaning up.
    3.4)    Perche' createuser non funziona?
    3.5)    Perche' ricevo un errore del tipo:
            IpcMemoryCreate: memKey=155356396 , size=760632 ,
            permission=384IpcMemoryCreate: shmget(..., create, ...)
            failed: Invalid argument
    3.6)    Perche' psql fallisce con:
            psql: can't load library 'libpq.so.1'
    3.7)    Altri comportamenti strani
    3.8)    Quando PostgreSQL e' attivo allo shutdown di sistema, Linux
            esegue al reboot un fsck al disco.
    3.9)    Perche' la Query 32 nel test di regressione pretende molto tempo?
    3.10)   Perche' ricevo dei risultati arrotondati su date/time aritmetici,
            come
               select '4 hours'::timespan;
            returning '3 hours 59 minutes 60 seconds'?

    ----------------------------------------------------------------------
    Sezione 1:      Compilare PostgreSQL
    ----------------------------------------------------------------------

    1.1)    Quali cambiamenti devo fare a src/Makefile.global o a
            src/Makefile.custom e ci sono altri cambiamenti necessari?

            I cambiamenti ai makefiles sono piu'facilmente fatti usando
            lo script di shell per la personalizzazione che si trova nella
            directory src che scrive un file Makefile.custom appropriato.

            I soli altri cambiamenti che tu devi fare e rimpiazzare Flex se tu
            hai una versione 2.5.3, la quale ha dei bug che si manifestano al
            fallimento di createuser (Vedi domanda 3.4)

            Se tu modifichi i makefiles a mano, tu *devi* settare le seguenti
            variabili:
                    PORTNAME=       linux

            Tu devi anche cambiare quello che segue per settare la tua propria
            installazione:
                    POSTGRESDIR

            Se tu cambi sull'opzione USE_TCL, devi settare questo:
                    TCL_INCDIR=
                    TCL_LIBDIR=
                    TCL_LIB=
                    TK_INCDIR=
                    TK_LIBDIR=
                    TK_LIB=
                    X11_INCDIR=
                    X11_LIBDIR=
                    X11_LIB=

            Sul mio sistema Slackware3.0 esse sono:
                    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

            Devi fare ogni altro cambiamento necessario come documentato nel
            file INSTALL e in Makefile.global

    1.2)    Perche' ricevo problemi con missing libreadline?

            I sistemi Linux in genere non vengono distribuiti con la libreria
            Gnu readline installata. Si può in ogni caso o disattivare l'opzione
            di readline in src/Makefile.global o src/Makefile.custom, oppure
            installare la libreria GNU stessa (readline).

            Nota che Linux Debian (come FreeBSD) esce con le readline installate.

    1.3)    [REDHAT] Perche' ricevo problemi di libdl e dlfcn.h perse??

            Questa manifestazione avvisa che non c'e' la capacita' di linkare
            funzioni come dlopen(), dlclose(), etc. durante l'ultima fase di compilazione.

            La libreria libdl e' usata per linkare in maniera dinamica le funzioni
            e rendere flessibile l'avvio dell'applicativo. Per alcune ragioni questa
            non era presente nella distribuzione Red Hat. La versione Redhat 4.0
            (Colgate) a colmato a questa mancanza.

            RedHat ha ora una nuova versione di ld.so in formato RPM nei propri siti FTP.
            Scaricate:

                  ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.i386.rpm

            Installa il file RPM nella maniera usuale e andra'!

            ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un
            make clean dopo aver installato la libreria e prima di ricompilare.

            C'e' stata una sola notizia di sistema corrotto da programmi che
            accedevano a queste librerie mentre venivano aggiornate (nessun altra
            sorpresa.) Conseguentemente e' una buona idea quella di fare un reboot
            del sistema prima di installare le nuove librerie e avere pochi
            processi attivi durante questo upgrade. Lanciare il sistema in
            modalita' utente singolo (single-user) e' probabilmente una buona idea!

            Se tu vuoi fare la strada piu' dura, puoi ottenere la libreria e
            l'header file da:

                    ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz

            Alternativamente puoi trovare i file binari precompilati in
            distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb
            nel medesimo sito, o seguire le istruzioni date alla domanda 1.2 per
            correggere lo stesso errore con le aggiornate versioni di Slackware 3.1.
            Non scegliere questo metodo se non sai quello che stai facendo!

    1.4)    [SLACKWARE 3.1] Perche' ricevo problemi di libdl e dlfcn.h perse??

            Questa manifestazione avvisa che non c'e' la capacita' di linkare
            funzioni come dlopen(), dlclose(), etc. durante l'ultima fase di compilazione.

            Guarda la risposta alla domanda 1.3. Slackware fino alla versione 3.0
            era provvista di questa libreria e degli include file e ritornarono nell'ultima
            versione 3.1, ma la prima versione della 3.1 (prima del 9 settembre 1996)
            non aveva queste e molte versioni su CD-ROM erano state stampate
            con la prima edizione.

            C'e' stata una sola notizia di sistema corrotto da programmi che
            accedevano a queste librerie mentre venivano aggiornate (nessun altra
            sorpresa.) Conseguentemente e' una buona idea quella di fare un reboot
            del sistema prima di installare le nuove librerie e avere pochi
            processi attivi durante questo upgrade. Lanciare il sistema in
            modalita' utente singolo (single-user) e' probabilmente una buona idea!

            Per fissare facilmente questo basta ottenere il file ldso.tgz dal quarto
            dischetto della piu' recente distribuzione Slackware e scompattarlo da
            dalla directory di root (/) e poi lanciare

                    sh install/doinst.sh

            per completare l'installazione. Successivamente lanciare

                    ldconfig

            ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un
            make clean dopo aver installato la libreria e prima di ricompilare.

            Se vuoi installarla manualmente bisogna installare prima il file
            dlfcn.h in /usr/include.

            Secondo, installa il file libdl.so.1.7.14 (o qualsiasi altra versione)
            in /lib, e poi fai:

                    cd /lib
                    ln -sf libdl.so.1.7.14 libdl.so.1
                    ln -sf libdl.so.1 libdl.so

            Su certi sistemi (a seconda della personale configurazione di GCC)
            e' necessario fare:

                    cd /usr/lib
                    ln -sf /lib/libdl.so .

            Finalmente

                    ldconfig

            ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un
            make clean dopo aver installato la libreria e prima di ricompilare.

    1.5)    La mia compilazione si arresta segnalando la mancanza dell'include file
            dlfcn.h perso.

            Guarda la risposta 1.3/1.4. Non dimenticare che se stai usando un sistema
            a.out devi prima avere installato il pacchetto dld (il quale non viene
            fornito con molti sistemi a.out) per avere dlfcn.h e gli altri.
            Guarda la domanda 1.11.

    1.6)    GCC reclama una ignorata opzione -fpic

            Le prime versioni di GCC accettavano entrambe -fpic o -£PIC.
            Nelle piu' recenti versioni (V2.7.2?) richiede -£PIC.
            Se tu stai usando una versione ELF di Linux, questa puo' per sicurezza
            essere ignorata perche' -£PIC e' di default.

            Puoi correggere questa editando il file src/Makefile.global e cambiare
            CFLAGS_SL

    1.7)    Ricevo messaggi di warning (errore) del tipo
            warning: cast from pointer to integer of different size

            Questi appararivano nelle prime versione di Postgres95 e posso per sicurezza
            essere ignorate. PostgreSQL V6.0 dovrebbe compilare senza warnings
            ad eccezione di quelli relativi agli header file di sistema (i quali possono
            essere ignorati per sicurezza).

    1.8)    [SuSE-Linux 4.2-4.4] Dove sono curses e termcap?

            SuSE-Linux 4.2 ha le ncurses ma non le curses. 4.4 ha entrambe.
            SuSE-Linux ha anche le librerie termcap in /usr/lib/termcap
            invece di essere in /usr/lib.

            PostgreSQL (fino alla V6.0)
            -----------------------
            Setta il valore delle CURSES_LIB in src/Makefile.custom a -lncurses
            (o fai questo attraverso lo script di personalizzazione).
            Aggiundi la seguente riga al file src/Makefile.custom:

                    LDADD_BE+= -L/usr/lib/termcap

            Devi editare il file src/bin/psql/Makefile e cambiare:
                    ifeq ($(PORTNAME), linux)
                       LD_ADD+=
            con:
                    ifeq ($(PORTNAME), linux)
                       LD_ADD+= -ltermcap

            PostgreSQL (V6.1)
            -----------------
            Lo script di configurazone non sa' di cercare nella directory
            /usr/lib/termcap per le librerie termcap, percio' tu devi specificare
            questo come una delle directory delle librerie dove cercare.

            Se non funziona (non ho SuSE per verificare che vada)
            allora lancia configure, edita src/Makefile.global e aggiungi
            -ltermcap alla linea LDFLAGS
            (dopo -lreadline). (Alternativamente poi configurare
            src/Makefile.custom prima di lanciare configure.)

            Alcune versioni di SuSE forniscono solo ncurses, percio' tu devi
            forzare l'uso delle ncurses piuttosto che le curses cambiando
            -lcurses con -lncurses. (dimostrato per SuSE 5.1)

    1.9)    Perche' ho problemi con  ld.so?

            Se tu hai problemi con ld.so, un altra libreria richiesta sotto ELF
            per il caricamento dinamico, allora hai creato disordine con la tua
            installazione o fatto un upgrade di Linux.

            Guarda le risposte alle domande 1.3/1.4. Devi installare ld.so.x.y.z in
            /lib e lanciare ldconfig.

            La piu' recente vesione stabile del pacchetto ld eì 1.7.14
            Mentre scrivo, la versione 1.8.x di ld e' sperimentale.

    1.10)   Perche' ricevo errori del tipo `yy_flush_buffer undefined'?

            Questo non e' specifico per Linux, ma e' comune nelle vecchie istallazione
            di Linux. Devi avere una versione recente di Flex (2.5.2 o superiore)
            per compilare PostgreSQL. Nota che Flex 2.5.3 ha dei bug: guarda la
            domanda 3.4.

    1.11)   Come posso compilare PostgreSQL su un sistema a.out?

            Prima, devi installare la libreria dld. Puoi ottenere questa da Sunsite come:
            Linux/libs/dld.3.2.7.tar.gz
            (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz)

            Secondo, aggiungi la seguente linea al file  src/Makefile.custom:
                    LINUX_ELF=
            (o usa lo script di configurazione)

    1.12)   Che cosa fallisce con:
            yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
            make: /usr/bin/make: cannot execute binary file

            Questo e' un problema delle prime versioni di Postgres95. Il default
            per PostgreSQL e' di usare bison -y piuttosto che yacc.

            yacc e' generalmente implementato come script che invoca bison -y
            Per alcune ragioni (certe versioni di make? certe versioni di bash?)
            make non puo' eseguire questo file di script.

            Per correggere questo, edita semplicemente src/mk/port/postgres.mk.linux
            e alla fine del file cambia:
                    # YACC = bison -y
            con
                    YACC = bison -y

    1.13)   Quali sono i riferimenti in X11_LIB a libsocket e libnsl in
            src/Makefile.global?

            Questo era un problema nella versione 1.08 (specifica per Sun Solaris)
            E' stata fissata nella 1.09 e 6.0

    1.14)   [DEBIAN] Dov'e'  libtermcap?

            Debian Linux viene distribuita senza librerie termcap e usa ncurses
            (le quali usano terminfo all'interno). Non c'e' bisogno di cambiare la
            variabile CURSES_LIB  in src/bin/psql/Makefile peche' Debian provvede
            con un link da libncurses a libcurses (diversamente da SuSE-Linux --
            Vedi domanda 1.8).

            Devi editare src/bin/psql/Makefile e commentare i cambiamenti:
                    ifeq ($(PORTNAME), linux)
                       LD_ADD+= -ltermcap
            con:
                    ifeq ($(PORTNAME), linux)
                       LD_ADD+=

    1.15)   [REDHAT] Posso trovare PostgreSQL come RPM?

            Si! Michal Mosiewicz <mimo@lodz.pdi.net>
            (http://www.pdi.lodz.pl/~mimo) ha creato un RPM
            per PostgreSQL V6.0 per architettura Intel uplodata a
            ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm

            Questa e' una precompilata versione, le sorgenti RPM erano come
            io ho scritto (3 Febbraio 1997).

    1.16)   Quando tento di compilare una versione in sviluppo sotto Linux, la
            compilazione fallisce con il seguente messaggio:
            In file included from /usr/include/sys/sem.h:8,
                     from ipc.c:37:
            /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
            ....
            make: *** [ipc.o] Error 1

            Il problema e' che Linux non prevede prototipi per queste funzioni inline.
            La soluzione e' di andare dentro la directory .../src/backend/storage/ipc
            ed editare Makefile.
            Cambia la linea
               CFLAGS+=$(INCLUDE_OPT)
            con
               CFLAGS+=$(INCLUDE_OPT) -Wno-error

            Fai lo stesso con la directory ../src/backend/storage/lmgr.

    1.17)   Quando sto' compilando postgres, gcc riporta un signal 11 e si interrompe.
            Piu' specificatamente:
               gcc: Internal compiler error: program cc1 got fatal
                    signal 11

            Questo e' un problema di hardware/memoria. PostgreSQL e' un grande
            programma, e una larga compilazione con gcc (come la compilazione
            di PostgreSQL o la compilazione del kernel) stressa la memoria come
            molti altri programmi, mostrando errori che non appaiono nelle normali
            operazioni. Sistemi operativi inferiori non riescono a stressare l'hardware
            in questo modo, per questo non vedrai mai questi errori sotto DOS/Windows.

            Maggiori informazioni in merito:
               http://www.bitwizard.nl/sig11

            Da questo Sig11 FAQ, sembra essere un errore specifico con Redhat 5.0
            lanciando su un processore Cyrix. Guarda il link superiore per i dettagli!

    1.18)   Posso installare 6.1.1 su MkLinux?

            Tatsuo Ishii <t-ishii@sra.co.jp> ha fatto questo su MkLinux DR2.1 update2 dopo una piccola
            patch disponibile presso:
            ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz

    1.19)   Perche' esce o va in crash??

            Ci sono state diverse segnalazioni di gmake, dove in tutte si usciva
            subito e c'era una seg faulting. Il problema piu' marcato e' stato
            riportato con gmake 3.74 - upgradandolo alla 3.76.1 si e' risolto.
            Comunque, la versione 3.74 e' funzionante per altri tipi di setup.
            In breve, prova ad upgradare gmake all'ultima versione che puoi trovare
            prima di riportarlo come un problema.

    1.20)   Come posso ottimizzarlo per un 486 o un processore pentium

            Le flags di compilazione per default non permettono l'optimizzazione per 486
            o per processori Pentium. Per aggiungerla come ottimizzazione, edita
            Makefile.custom e aggiungi:

               CFLAGS+= -m486

            o (per i nuovi compilatori che molte persone non stanno usando)

               CFLAGS+= -mpentium
            o
               CFLAGS+= -mpentiumpro

    1.21)   Perche' ricevo strani risultati con i tempi di stampa (per esempio
            nel test di regressione 'timespan'?
            Le ore appaiono come: '4 hours 59 mins 60.00 secs'
            invece di '5 hours'

            Questo e' un problema con le librerie glibc2 le quali appaiono con
            RedHat 5.0. Aggiorna le tue glibc con le ultime versioni di RedHat per
            v5.0/hurricane. Tutto quello che e' anteriore alle glibc-2.0.7 ha
            questi problemi.

    ----------------------------------------------------------------------
    Sezione 2:      Compilare programmi accessori
    ----------------------------------------------------------------------

    2.1)    Il linker non trova libX11 quando sta' compilando pgtclsh

            Aggiungi la seguente riga al file src/Makefile.custom
                    X11_LIBDIR = /usr/X11R6/lib

    ----------------------------------------------------------------------
    Sezione 3:      Problemi di esecuzione
    ----------------------------------------------------------------------

    3.1)    Ricevo un messaggio tipo  _fUnKy_POSTPORT_sTuFf_ non definito quando
            lancio uno script come createuser

            Questo e' un bug nella V.1.06-V1.07 di Postgres ed e' fissata con la versione
            1.08 o superiore.

    3.2)    Lancio postmaster e dopo il sistema dice 'Bad system call(Core
            dumped)'

            Questo indica che non hai compilato il supporto per la memoria condivisa nel
            kernel. Devi ricompilare il kernel per aggiungere questa feature.

    3.3)    Quando tento di lanciare Postmaster, perche' ricevo un errore del tipo
            Failed Assertion("!(file != 0):(null)", File:
            "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
            !(file != 0) (0)
            initdb: could not create template database
            initdb: cleaning up.

            I permessi sul file /dev/null sono sbagliati.

            ls -l /dev/null should give you something like:

                    crw-rw-rw-  1 root  wheel    2,   2 Oct  8 18:41 /dev/null

            Correggi i permessi con:

                    chmod a+rw /dev/null

    3.4)    Perche' createuser non funziona?

            C'e' un problema con la versione 2.5.3 di GNU Flex e createuser.
            Le tue opzioni devono recedere a Flex V2.5.2, aggiornale alla V2.5.4 o
            applica una patch alla V2.5.3 la quale e' fornita in doc/README.flex
            Puoi ottenere la V.2.5.4 da:
            ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz

    3.5)    Perche' ricevo un errore del tipo:
            IpcMemoryCreate: memKey=155356396 , size=760632 ,
            permission=384IpcMemoryCreate: shmget(..., create, ...)
            failed: Invalid argument

            Non hai compilato il supporto IPC nel kernel di Linux.
            Devi ricompilare il kernel con questa opzione.

    3.6)    Perche' psql fallisce con:
            psql: can't load library 'libpq.so.1'

            Psql e' stata compilata per linkarsi dinamicamente con la libreria libpq.

            Per risolvere questo, devi accedere come root ed editare il file
                    /etc/ld.so.conf
            Aggiungi una linea singola alla fine, la quale prende il nome della directory
            delle librerie di PostgreSQL (la sottodirectory delle librerie
            dell'installazione diPostgreSQL) e lancia
                    /sbin/ldconfig -v

            Alternativamente, (e se tu non hai accesso come root), devi usare la
            variabile di ambiente LD_LIBRARY_PATH.

            La variabile LD_LIBRARY_PATH contiene una lista di paths per ricercare le librerie
            condivise. Questa lista e' ricercata prima delle librerie specificate da ldconfig.

            Percio' sotto Bash, devi fare qualcosa del tipo:
                    export LD_LIBRARY_PATH='PathToPGSQL'/lib
            o, usando tcsh
                    setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib
            rimpiazzando 'PathToPGSQL' con l'appropriato path alla tua directory PostgreSQL
            al top level.
            Nota che il comando ldd puo' essere eseguito su un programma linkato dinamicamente
            alla lista di paths a tutte le librerie condivise sopra, alle quali gli eseguibili
            dipendono.

    3.7)    Altri comportamenti strani

            Non sono sicuro quali siano i sintomi che non permettono la corretta esecuzione,
            ma si puo' ipotizzare che le ragioni vadano oltre il regolare funzionamento del
            loader dinamico nel caricare la corretta versione delle librerie libpq.
            Se hai una versione vecchia dai una occhiata al path delle librerie
            (per esempio in /usr/lib) che dovrebbero caricare nelle nuove versioni che intendi
            far girare. Renditi sicuro di prendere queste nel percorso e guarda la Domanda 3.6
            per i dettagli in merito al caricamento dinamico delle librerie.

    3.8)    Quando PostgreSQL e' attivo allo shutdown di sistema, Linux
            esegue al reboot un fsck al disco.

            Ci sono state alcune segnalazioni di questo e sembre essere il
            risultato di lanciare PostgreSQL dal /etc/inittab come suggerito
            nel file INSTALL.

            Si raccomanda percio' di lanciare il postmaster da un rc script.
            Sotto una versione di tipo Slackware, devi modificare /etc/rc.d/rc.local
            per lanciare il postmaster. Sotto una versione in stile RedHat
            devi creare uno script in stile SysV sotto /etc/rc.d/rc3.d basato
            sul file /etc/rc.d/init.d.

            C'e' un esempio di file in contrib/linux/postgres.init

            Un altro file di esempio è proposto da John Robinson
            <john@intelligent.co.uk> il quale puo' essere modificato a seconda delle esigenze:

    #!/bin/sh
    #
    # postgreSQL.init This shell script takes care of starting and stopping
    #               the PostgreSQL postmaster.
    #

    # Source function library.
    . /etc/rc.d/init.d/functions

    # Source networking configuration.
    . /etc/sysconfig/network

    # Check that networking is up.
    [ ${NETWORKING} = "no" ] && exit 0

    # See how we were called.
    case "$1" in
      start)
            # Start daemons.
            echo -n "Starting postgres Postmaster daemon:"
            if [ -z "`pidofproc postmaster`" ]
            then
                    su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgreSQL/data -p 5432 &"
                    echo -n " postmaster"
            else
                    echo -n " (already running)"
            fi
            echo
            touch /var/lock/subsys/postgres
            ;;
      stop)
            # Stop daemons.
            echo -n "Shutting down postgres Postmaster daemon: "
            killall -TERM postmaster 2>/dev/null
            killall -TERM postgres 2>/dev/null
            echo
            rm -f /var/lock/subsys/postgres
            ;;
      *)
            echo "Usage: postgres {start|stop}"
            exit 1
    esac

    exit 0

    3.9)    Perche' la Query 32 nel test di regressione pretende molto tempo?

            Questo e' un bug nello script di regressione presente su Linux Os.
            Ci sono due raggiri per evitarli (informazione di Tatsuo Ishii <t-ishii@sra.co.jp>):

            1. cambia quello che segue in regress.sh:
                    time postgres -texecutor -tplanner -Q bench < bench.sql
            a:
                    postgres -texecutor -tplanner -Q bench < bench.sql

            2. dopo aver lanciato il test, rimuovi la linea finale di
            bench.out, qualcosa del tipo:
                    85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k
            poi digita:
                    sh ./perquery < bench.out > & bench.out.perquery

    3.10)   Perche' ricevo dei risultati arrotondati su date/time aritmetici,
            come
               select '4 hours'::timespan;
            returning '3 hours 59 minutes 60 seconds'?

            Stai usando le nuove librerie glibc2 e hai una versione precedene alla
            2.0.7. E' un problema di arrotondamento matematico nella libreria.
            Aggiorna le tue librerie.

    ----------------------------------------------------------------------------
    Dr. Andrew C.R. Martin                             University College London
    EMAIL: (Work) martin@biochem.ucl.ac.uk    (Home) andrew@stagleys.demon.co.uk
    URL:   http://www.biochem.ucl.ac.uk/~martin
    Tel:   (Work) +44(0)171 419 3890                    (Home) +44(0)1372 275775
    ----------------------------------------------------------------------------
    Daniele Medri 'MaDriD' - e-mail: madrid@darshan.org web: www.darshan.org
    ----------------------------------------------------------------------------