Query on support for trigger functions defined in a Shared library in Windows - Mailing list pgsql-hackers-win32

From Mehul Doshi-A20614
Subject Query on support for trigger functions defined in a Shared library in Windows
Date
Msg-id 45AAAAED8B10F547878F52FE15C57C5D15D049@zin24exm03.corp.mot.com
Whole thread Raw
List pgsql-hackers-win32
Hi,

I would like to know whether the native Windows version of PostgreSQL
(version 8.0.0)
supports trigger functions defined in shared libraries. Specifically, I am
trying to port a
Linux shared object used as the snippet below shows to Windows:

CREATE FUNCTION foo() returns trigger AS '/path/to/sharedlib.so' LANGUAGE C;

Are DLLs supported in a similar context in Windows?

What do I need to do to port such code?

My initial attempts resulted in a failure. I created the DLL and attempted
to run the SQL CREATE FUNCTION which specified the Windows path
to the DLL. However the server died without any clueful messages.

psql:d:/test.sql:4: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
psql:d:/test.sql:4: connection to server was lost

The pg_log logs the following:
2005-07-25 20:30:26 DEBUG:  InitPostgres
2005-07-25 20:30:26 DEBUG:  StartTransaction
2005-07-25 20:30:26 DEBUG:  name: unnamed; blockState:       DEFAULT; state:
INPROGR, xid/subid/cid: 116556/1/0, nestlvl: 1, children: <>
2005-07-25 20:30:26 DEBUG:  CommitTransaction
2005-07-25 20:30:26 DEBUG:  name: unnamed; blockState:       STARTED; state:
INPROGR, xid/subid/cid: 116556/1/0, nestlvl: 1, children: <>
2005-07-25 20:30:26 DEBUG:  StartTransactionCommand
2005-07-25 20:30:26 DEBUG:  StartTransaction
2005-07-25 20:30:26 DEBUG:  name: unnamed; blockState:       DEFAULT; state:
INPROGR, xid/subid/cid: 116557/1/0, nestlvl: 1, children: <>
2005-07-25 20:30:26 DEBUG:  ProcessUtility
2005-07-25 20:30:26 DEBUG:  find_in_dynamic_libpath: trying "C:/Program
Files/PostgreSQL/8.0/lib/foo"
2005-07-25 20:30:26 DEBUG:  find_in_dynamic_libpath: trying "C:/Program
Files/PostgreSQL/8.0/lib/foo.dll"
2005-07-25 20:30:26 DEBUG:  CommitTransactionCommand
2005-07-25 20:30:26 DEBUG:  CommitTransaction
2005-07-25 20:30:26 DEBUG:  name: unnamed; blockState:       STARTED; state:
INPROGR, xid/subid/cid: 116557/1/2, nestlvl: 1, children: <>
2005-07-25 20:30:26 LOG:  could not send data to client: An operation was
attempted on something that is not a socket.
2005-07-25 20:30:26 LOG:  could not receive data from client: An operation
was attempted on something that is not a socket.
2005-07-25 20:30:26 LOG:  unexpected EOF on client connection
2005-07-25 20:30:26 DEBUG:  proc_exit(0)
2005-07-25 20:30:26 DEBUG:  shmem_exit(0)
2005-07-25 20:30:26 DEBUG:  exit(0)
2005-07-25 20:30:26 DEBUG:  reaping dead processes
2005-07-25 20:30:26 DEBUG:  waiting on 4 children
2005-07-25 20:30:26 DEBUG:  server process (PID 6092) exited with exit code
0
2005-07-25 20:30:26 DEBUG:  waiting on 3 children


Thanks & Regards,
Mehul

pgsql-hackers-win32 by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: win32 development builds?
Next
From: "Magnus Hagander"
Date:
Subject: Re: Query on support for trigger functions defined in a Shared library in Windows