Pl/Java broken since Postgresql 8.3-rc1
Hi,
I'm following the 8.3 beta releases for some time now, mostly using the
Win32 with Installer package.
8.3beta3 and 4 have worked perfectly with the provided pljava ddl, just
with 8.3-rc1 it doesn't work anymore.
i.e.
1. automatic installation of Pl/Java via Installer fails.
2. manual Installation via
CREATE FUNCTION java_call_handler() RETURNS language_handler
AS 'pljava', 'java_call_handler'
LANGUAGE c;
raises the following error:
ERROR: could not load library
"C:/Programme/PostgreSQL/8.3-rc1/lib/pljava.dll": unknown error 127
Tested on two different WinXP machines with JDK 1.6.
Regards,
Jan Ischebeck
On Thu, 10 Jan 2008, Jan Ischebeck wrote:
8.3beta3 and 4 have worked perfectly with the provided pljava ddl, just
with 8.3-rc1 it doesn't work anymore.
8.3RC1 changed the function definition for SetUserId, so it pljava needs
some changes and a rebuild. Will fix.
Kris Jurka
On Thu, 10 Jan 2008, Kris Jurka wrote:
On Thu, 10 Jan 2008, Jan Ischebeck wrote:
8.3beta3 and 4 have worked perfectly with the provided pljava ddl, just
with 8.3-rc1 it doesn't work anymore.8.3RC1 changed the function definition for SetUserId, so pljava needs
some changes and a rebuild. Will fix.
Turns out it's not just 83RC1, but all of the security releases, which
will require different pljava packages for the patch versions before/after
the security changes. I've committed a fix to CVS for this, and I guess
I'll try to respin those this weekend and try to convince the windows
installer folks to include them in the next point release.
For the moment you can pull the pljava.dll from here and it should work
for you.
http://www.ejurka.com/pgsql/pljava/83rc1/
Kris Jurka
Kris Jurka <books@ejurka.com> writes:
Turns out it's not just 83RC1, but all of the security releases, which
will require different pljava packages for the patch versions before/after
the security changes.
Just out of curiosity, what was pljava doing calling SetUserId?
If I'd known about that I'd have thought harder about removing the
function; but it's not clear to me why a PL should be doing that.
regards, tom lane
On Thu, 10 Jan 2008, Tom Lane wrote:
Just out of curiosity, what was pljava doing calling SetUserId?
If I'd known about that I'd have thought harder about removing the
function; but it's not clear to me why a PL should be doing that.
pljava wants to run code as the session user when inside a security
definer function. The sqlj spec has an install_jar function which
installs a library of java code and has an optional deployment descriptor
which can create functions against the library and tables for it to use.
The install_jar function is security definer to be able to register the
jar file in various sqlj tables that the calling user may not be able to
write to, but it wants to create the tables and function specified in the
deployement descriptor with the ownership of the user calling install_jar,
not the person who initially installed pljava.
Kris Jurka
On 11/01/2008, Kris Jurka <books@ejurka.com> wrote:
Turns out it's not just 83RC1, but all of the security releases, which
will require different pljava packages for the patch versions before/after
the security changes. I've committed a fix to CVS for this, and I guess
I'll try to respin those this weekend and try to convince the windows
installer folks to include them in the next point release.
Thanks Kris - I've pulled the 8.3 dll to the win32 build VM, if you
can provide 8.2 as well that'd be great.
Regards, Dave