pltcl - cannot create 'normal' interpreter - Tcl_CreateSlave() fails - A solution
This proposed patch is related to:
http://archives.postgresql.org/pgsql-cygwin/2004-01/msg00024.php
Add a call to Tcl_FindExecutable() in
pltcl.c - pltcl_init_all(),
just before the call to Tcl_CreateInterp().
It should be called with argv[0] as argument, but I
don't know how to get this piece of information for
pltcl.dll. Anyway, for Windows, it is unused
(see win/tclWinFile.c - TclpFindExecutable()). Just a
value != NULL is OK, so I used an empty string.
[Jan Wieck, I'm only interested in cygwin platform.
I suggest you investigate deeper to make this
"workaround" cleaner, in order to be also compatible
with pure Unix platforms.]
Without this call, and with only the setting of the
TCL_LIBRARY environment variable, Tcl_CreateSlave()
seems to fail somewhere else, with this message:
--------------------------
server closed the connection unexpectedly
This probably means the server terminated
abnormally
before or while processing the request.
The connection to the server was lost.
Attempting reset: Succeeded.
--------------------------
I didn't spend time on this issue, just added the
call.
My proposed patch generated with:
$ diff -u pltcl.orig pltcl.c
is attached.
__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus
Attachments:
diff_pltcl.txttext/plain; name=diff_pltcl.txtDownload+12-2
Patrick Samson wrote:
This proposed patch is related to:
http://archives.postgresql.org/pgsql-cygwin/2004-01/msg00024.php
First of all, you cannot change the order of postgres.h and tcl.h --
period.
Secondly, no // comments, no "personal" comments, no mailing list
archive references. Explain the issues in the code.
Patrick Samson <p_samson@yahoo.com> writes:
Add a call to Tcl_FindExecutable() in
pltcl.c - pltcl_init_all(),
just before the call to Tcl_CreateInterp().
It should be called with argv[0] as argument, but I
don't know how to get this piece of information for
pltcl.dll. Anyway, for Windows, it is unused
(see win/tclWinFile.c - TclpFindExecutable()). Just a
value != NULL is OK, so I used an empty string.
AFAICS this patch breaks all non-Windows platforms. Sorry, that
won't do ...
regards, tom lane