Benvenuti a questa release V8.4.1 di Postgres SQL server per OS/2!!

Ringrazio in anticipo tutte le persone che hanno creduto in questo progetto,
e anche chi non ci ha creduto!
Io spero che sarete sempre di piu' ad utilizzare questo DBMS, che oltretutto
ha vinto anche alcuni Software Awards.

Ho scritto questo documento per cercare di aiutarvi a risolvere alcuni piccoli
problemi e a capire alcune cose, senza consultare decine di pagine di
documentazione.

Ok, iniziamo!

Il mio ultimo porting risale alla versione 7.3 di Postgres. In questo periodo
mi sono sposato, ho avuto dei figli, loro sono cresiuti e adesso ho piu'
tempo da dedicare a Postgres e ad altri porting.
La differenza di porting tra la versione 7.3 e la 8.4 riguarda principalmente
l'uso del compilatore (GCC 3.3.5).
Tutte le librerie essendo compilate con il GCC 3.3.5 possono essere linkate
ai nuovi software.

Dato che non esiste il link nel filesystem nativo di OS/2, ho spezzato il
motore in tre parti: postgres.dll, postgres.exe, postmaster.exe
I due .EXE che hanno la stessa dimensione, in realta' effettuano delle
chiamate diverse all'interno della DLL, quindi non sovrascriveteli!

Per ogni nuovo utente che si collega il motore fa una fork di se stesso e
ricarica in ram la DLL postgres.dll che in questa versione  e' di circa 4,8Mb
I dati del DBMS vengono mantenuti in RAM e condivisi durante la fork,
quindi l'occupazione in ram per ogni utente dovrebbe essere minima !!!

Gli altri .EXE, sono utility per amministrare il database e sono tutti VIO.
A proposito delle utility .EXE, vi ricordo che le potete utilizzare per
amministrare il DB sia in locale (sulla vostra macchina OS/2),
sia in remoto su altri sistemi (UNIX, NT, etc).
Se leggete la documentazione, sapete come fare!.

A proposito, esiste uno script principale (PGCMD.CMD) che serve per eseguire
le utility di amministrazione di Postgres ed anche il suo avvio e la chiusura.
Questo serve per far credere a Postgres e alle utility che stanno funzionando
all'interno di qualche UNIX (cosa molto importante per Postgres),
ma serve anche per creare un ambiente non intrusivo per OS/2.
Infatti Postgres non invade OS/2 e non disturba l'esecuzione di altri
programmi o la loro configurazione: TCP/IP, MPTN, etc.
L'unica modifica riguarda l'aggiunta di 2 variabile di ambiente nel CONFIG.SYS
 PGDATA (directory del database) e PGSQL (directory di Postgres) e la modifica
di ENDLIBPATH (percorso dove trovare le dll)

SET PGSQL=c:\apps\pgsql841
SET PGDATA=c:\pgsqldata
SET ENDLIBPATH=%ENDLIBPATH%;c:\apps\pgsql841\lib;

Appena estratto l'archivio, eseguite i seguenti passi:

-- aggiungere alla variabile ENDLIBPATH la directory "lib" di Postgres
   [C:\apps\pgsql841]set ENDLIBPATH=%ENDLIBPATH%;c:\apps\pgsql841\lib;

-- settare la variabile PGSQL nella directory di Postgres
   per esempio: [C:\apps\pgsql841]set pgsql=c:\apps\pgsql841

-- creare una directory dove risiede il database
   per esempio: md c:\pgsqldata

-- settare la variabile PGDATA nella directory create precedentemente
   per esempio: [C:\apps\pgsql841]set pgdata=c:\pgsqldata

-- eseguire la init di Postgres con questo comando:
   [C:\apps\pgsql841]pgcmd.cmd initdb


[C:\apps\pgsql841]pgcmd initdb

[C:\apps\pgsql841\bin]initdb
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale it_IT_EURO.ISO8859-1.
The default database encoding has accordingly been set to LATIN1.
The default text search configuration will be set to "italian".

fixing permissions on existing directory d:/pgsqldata ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in d:/pgsqldata/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    "postgres" -D "c:/pgsqldata"
    or
    "pg_ctl" -D "c:/pgsqldata" -l logfile start


[C:\apps\pgsql841]

Se tutto e' andato bene, possiamo far partire Postgres con questo comando:
[C:\apps\pgsql841]pgcmd.cmd pg_ctl start

Oppure fermarlo con questo comando:
[C:\apps\pgsql841]pgcmd.cmd pg_ctl stop

Come potete vedere, tutti i comandi di Postgres sono eseguiti attraverso
lo script PGCMD.CMD.


Ok, per il momento e' tutto!!
Se avete problemi non esistate a contattarmi, cerchero' di rispondere a tutti!

PS: Io non parlo molto bene l'Inglese, percio' se non parlate Italiano e'
preferibile che mi contattate via eMail, altrimenti potete sempre contattarmi
dopo le 17:00 (TZ cet+1)

Ciao.

Vincenzo Venuto

Address: Italy
Tel:     +39-335-6059667
eMail:   postgres@ecomstation.it

S.E.T.I. Project supporter
Postgres SQL Server for OS/2 developer
Unix/Linux to OS/2 developer
Minnesota Map Server for OS/2 developer
