diff options
Diffstat (limited to 'doc/README.NT')
-rw-r--r-- | doc/README.NT | 367 |
1 files changed, 0 insertions, 367 deletions
diff --git a/doc/README.NT b/doc/README.NT deleted file mode 100644 index e4542895063..00000000000 --- a/doc/README.NT +++ /dev/null @@ -1,367 +0,0 @@ -Installing PostgreSQL on NT: - ---------------------------------------------------------------------------- - -It can be done by done by typing configure, make and make install. - -1. Install the Cygwin package -2. Update to EGCS 1.1.2 - (This may be optional.) - ---------------------------------------------------------------------------- - - OPTIONAL - -1. Install the Andy Piper Tools (http://www.xemacs.freeserve.co.uk/) - (This may be optional.) - You need at least the crypt library (also available as - ftp://sourceware.cygnus.com/pub/cygwin/xfree/libcrypt-cygwin-b20.1.tar.bz2) - ---------------------------------------------------------------------------- - - CYGWIN32 INSTALLATION - -1. Download the Cygwin32 IPC Package by Ludovic LANGE - http://penguin.cz/~horak/cygwin32_ipc-1.03.tar.gz -2. Untar the package and follow the readme instructions. -3. Apply the patch at the end of this file to the cygipc sources - before compiling the library. -4. I tested 1.03. -5. I used the \cygwin-b20\h-i568-cygwin32\i586-cygwin32\lib and -\cygwin-b20\h-i568-cygwin32\i586-cygwin32\include\sys instead of the -/usr/local/lib and usr/local/include/sys. - -NOTE: -Also, the cygnus-bindir has to be placed in the path before the -NT-directories, because the sort.exe has to be taken for cygnus, not -NT. - ---------------------------------------------------------------------------- - - POSTGRESQL INSTALL WITH NT SPECIFICS - -1. Download the current version of PostgreSQL. -2. Untar the package. -3. Copy the files from \pgsql\src\win32 according to the readme file. -4. Edit \pgsql\src\template\cygwin32 if needed (I had to adjust the YFLAGS -path). -5. ./configure -6. make -7. create the directory /usr/local/pgsql manually: the mkdir cannot create a -directory 2 levels deep in one step. -8. make install -9. cd /usr/lical/pgsql/doc -10. make install -11. Set the environmental data -12. Initdb --username=jkr (do not run this command as administrator) - -13. Open a new Cygwin command prompt -14. Start "ipc-deamon&" (background proces) -15. Start "postmaster -i 2>&1 > /tmp/postgres.log &" (background proces) -16. Start "tail -f /tmp/postgres.log" to see the messages - -17. cd /usr/src/pgsql/src/test/regress -18. make all runtest - -All test should be run. - -NOTE: -By default, PostgreSQL clients like psql communicate using unix domain -sockets, which don't work on NT. Start the postmaster with -i, and -when connecting to the database from a client, set the PGHOST -environment variable to 'localhost' or supply the hostname on the -command line. - -Joost - -PS: If you still have problems you can mail to Dan Horak <dan.horak@email.cz> - who is the maintainer for the win32 port - ---------------------------------------------------------------------------- - -*** ./ipc-daemon.c.orig Tue Dec 01 00:04:24 1998 ---- ./ipc-daemon.c Fri Sep 24 13:34:16 1999 -*************** -*** 270,285 **** - { - itoa(100*id+Index, LBuff) ; - LHandle = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, LBuff) ; -! while (LAdrSem->current_nb[id].current_nb[Index] > 0 ) -! { -! WaitForSingleObject(LHandle, 0) ; -! LAdrSem->current_nb[id].current_nb[Index]-- ; -! } -! CloseHandle(LHandle) ; - } - LAdrSem->semary[id] = IPC_UNUSED ; - LAdrSem->state[id] = 0 ; - } - else - { - for (Index = 0; Index < sma->sem_nsems; Index++) ---- 270,284 ---- - { - itoa(100*id+Index, LBuff) ; - LHandle = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, LBuff) ; -! while (WaitForSingleObject(LHandle, 0) == WAIT_OBJECT_0) -! ; -! LAdrSem->current_nb[id].current_nb[Index] = 0; -! CloseHandle(LHandle) ; - } - LAdrSem->semary[id] = IPC_UNUSED ; - LAdrSem->state[id] = 0 ; - } -+ /* - else - { - for (Index = 0; Index < sma->sem_nsems; Index++) -*************** -*** 288,293 **** ---- 287,293 ---- - LHandle = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, LBuff) ; - } - } -+ */ - } - } - -*** ./msg.c.orig Tue Dec 01 00:16:09 1998 ---- ./msg.c Fri Sep 17 12:50:50 1999 -*************** -*** 57,62 **** ---- 57,77 ---- - static int GFirstMsg = 0; /*PCPC*/ - static int GFdMsg ; /*PCPC*/ - -+ /*****************************************/ -+ /* Initialization of static variables */ -+ /*****************************************/ -+ static pid_t GProcessId = 0; -+ static void init_globals(void) -+ { -+ pid_t pid; -+ -+ if (pid=getpid(), pid != GProcessId) -+ { -+ GFirstMsg = 0; -+ msgbytes = msghdrs = msg_seq = used_queues = max_msqid = 0; -+ GProcessId = pid; -+ } -+ } - /************************************************************************/ - /* Demande d'acces a la zone partagee de gestion des semaphores */ - /************************************************************************/ -*************** -*** 79,84 **** ---- 94,100 ---- - { - int LRet ; - -+ init_globals(); - if( GFirstMsg == 0 ) - { - if( IsGSemMsgExist() ) -*** ./sem.c.orig Tue Dec 01 00:16:25 1998 ---- ./sem.c Fri Sep 17 12:47:11 1999 -*************** -*** 58,63 **** ---- 58,78 ---- - static int GFirstSem = 0; /*PCPC*/ - static int GFdSem ; /*PCPC*/ - -+ static pid_t GProcessId = 0; -+ -+ static void init_globals(void) -+ { -+ pid_t pid; -+ -+ if (pid=getpid(), pid != GProcessId) -+ { -+ GFirstSem = 0; -+ used_sems = used_semids = max_semid = 0; -+ sem_seq = 0; -+ GProcessId = pid; -+ } -+ } -+ - /************************************************************************/ - /* Demande d'acces a la zone partagee de gestion des semaphores */ - /************************************************************************/ -*************** -*** 77,82 **** ---- 92,98 ---- - { - int LRet ; - -+ init_globals(); - if( GFirstSem == 0 ) - { - if( IsGSemSemExist() ) -*************** -*** 187,193 **** - { - CloseHandle ( LHandle ) ; - } -! LHandle = CreateSemaphore(NULL, 0, 0x7FFFFFFF, LBuff) ; - if( LHandle == NULL ) - { - printf( "Creation de Semaphore \"Sem\" impossible\n" ) ; ---- 203,209 ---- - { - CloseHandle ( LHandle ) ; - } -! LHandle = CreateSemaphore(NULL, 0, 1, LBuff) ; - if( LHandle == NULL ) - { - printf( "Creation de Semaphore \"Sem\" impossible\n" ) ; -*************** -*** 357,371 **** - debug_printf("do_semop : return -EACCES\n"); - CYGWIN32_IPCNT_RETURN (-EACCES) ; - } -! ReleaseSemaphore(LHandle, sop->sem_op, &LVal) ; -! shareadrsem->current_nb[id].current_nb[sop->sem_num] += -! sop->sem_op ; - sem_deconnect() ; - } else { - if( sop->sem_flg == IPC_NOWAIT ) - { -! LRet = WaitForSingleObject(LHandle, 0) ; -! if( LRet == WAIT_TIMEOUT ) - { - debug_printf("do_semop : return -EAGAIN\n"); - CYGWIN32_IPCNT_RETURN (-EAGAIN) ; ---- 373,386 ---- - debug_printf("do_semop : return -EACCES\n"); - CYGWIN32_IPCNT_RETURN (-EACCES) ; - } -! shareadrsem->current_nb[id].current_nb[sop->sem_num] += -! sop->sem_op ; - sem_deconnect() ; -+ ReleaseSemaphore(LHandle, 1 , &LVal) ; - } else { - if( sop->sem_flg == IPC_NOWAIT ) - { -! if( sop->sem_op + shareadrsem->current_nb[id].current_nb[sop->sem_num] <0 ) - { - debug_printf("do_semop : return -EAGAIN\n"); - CYGWIN32_IPCNT_RETURN (-EAGAIN) ; -*************** -*** 375,390 **** - debug_printf("do_semop : return -EACCES\n"); - CYGWIN32_IPCNT_RETURN (-EACCES) ; - } -! shareadrsem->current_nb[id].current_nb[sop->sem_num] -= 1 ; - sem_deconnect() ; - } else { -! LRet = WaitForSingleObject(LHandle, INFINITE) ; - if (sem_connect() == 0) - { - debug_printf("do_semop : return -EACCES\n"); - CYGWIN32_IPCNT_RETURN (-EACCES) ; - } -! shareadrsem->current_nb[id].current_nb[sop->sem_num] -= 1 ; - sem_deconnect() ; - } - } ---- 390,407 ---- - debug_printf("do_semop : return -EACCES\n"); - CYGWIN32_IPCNT_RETURN (-EACCES) ; - } -! shareadrsem->current_nb[id].current_nb[sop->sem_num] += sop->sem_op; - sem_deconnect() ; - } else { -! while(sop->sem_op + shareadrsem->current_nb[id].current_nb[sop->sem_num] <0) -! LRet = WaitForSingleObject(LHandle, INFINITE) ; -! - if (sem_connect() == 0) - { - debug_printf("do_semop : return -EACCES\n"); - CYGWIN32_IPCNT_RETURN (-EACCES) ; - } -! shareadrsem->current_nb[id].current_nb[sop->sem_num] += sop->sem_op ; - sem_deconnect() ; - } - } -*************** -*** 435,441 **** - char LBuff[100] ; - HANDLE LHandle ; - long LPrevious ; -- int LIndex; - - debug_printf("semctl : semid=%X semnum=%X cmd=0x%02X arg=%p\n",semid,semnum,cmd,arg); - if (semid < 0 || semnum < 0 || cmd < 0) ---- 452,457 ---- -*************** -*** 568,589 **** - if( LHandle != NULL ) - { - if( arg.val > shareadrsem->current_nb[id].current_nb[semnum] ) -! { -! ReleaseSemaphore(LHandle, -! arg.val-shareadrsem->current_nb[id].current_nb[semnum], -! &LPrevious) ; -! } -! else if (arg.val < -! shareadrsem->current_nb[id].current_nb[semnum] ) -! { -! for( LIndex = arg.val; -! LIndex < shareadrsem->current_nb[id].current_nb[semnum]; -! LIndex++ ) -! { -! WaitForSingleObject(LHandle, 0) ; -! } -! } -! shareadrsem->current_nb[id].current_nb[semnum] = arg.val ; - } - debug_printf("semctl : SETVAL : return 0\n"); - CYGWIN32_IPCNT_RETURN_DECONNECT (0); ---- 584,591 ---- - if( LHandle != NULL ) - { - if( arg.val > shareadrsem->current_nb[id].current_nb[semnum] ) -! ReleaseSemaphore(LHandle,1,&LPrevious) ; -! shareadrsem->current_nb[id].current_nb[semnum] = arg.val ; - } - debug_printf("semctl : SETVAL : return 0\n"); - CYGWIN32_IPCNT_RETURN_DECONNECT (0); -*** ./shm.c.orig Fri Sep 17 12:46:24 1999 ---- ./shm.c Fri Sep 17 12:47:11 1999 -*************** -*** 59,64 **** ---- 59,81 ---- - static int GFirstShm = 0; /*PCPC*/ - static int GFdShm ; /*PCPC*/ - -+ /*****************************************/ -+ /* Initialization of static variables */ -+ /*****************************************/ -+ static pid_t GProcessId = 0; -+ static void init_globals(void) -+ { -+ pid_t pid; -+ -+ if (pid=getpid(), pid != GProcessId) -+ { -+ GFirstShm = 0; -+ shm_rss = shm_swp = max_shmid = 0; -+ shm_seq = 0; -+ GProcessId = pid; -+ } -+ } -+ - /************************************************************************/ - /* Demande d'acces a la zone partagee de gestion des shm */ - /************************************************************************/ -*************** -*** 82,87 **** ---- 99,105 ---- - { - int LRet ; - -+ init_globals(); - if( GFirstShm == 0 ) - { - if( IsGSemShmExist() ) - |