Thread: plperl.dll on windows with postgresql 9.0.3
I am upgrading a Windows install from 8.2.x to 9.0.3. ActivePerl 5.8 was already installed, but when I run the createlang command to install into my database, I get... could not load library “C:/Program Files/PostgreSQL/8.3/lib/plperl.dll”: The specified module could not be found. SQL state: 58P01 I see the plperl.dll in that very location in the error. I looked at the functions of pg_catalog and the plperl functions are not there like plpgsql call handler, etc. I thought this was due to the older version of ActivePerl, so I uninstall Postgres and ActivePerl, restarted, downloaded and installed latest ActivePerl 5.12, restarted and re-installed Postgres, and restarted yet again to still get the error. I did a search and find perhaps 5.12 does not work (at least during beta)? > http://postgresql.1045698.n5.nabble.com/BUG-5601-cannot-create-language-plperl-td2264970.html I am installing on Windows 2003 server. Unfortunately I never installed Postgres on Windows prior to the pginstaller, so I'm not sure what else needs to be done for PostgreSQL to find the module. Since I see the module dll in the lib folder, I assume a separate package is not needed like I am accustomed to under BSD, is that right and it should find without further config or installs? Thanks. -- Robert <robert@webtent.org>
On 2/8/2011 11:58 AM, Robert Fitzpatrick wrote: > could not load library “C:/Program Files/PostgreSQL/8.3/lib/plperl.dll”: > The specified module could not be found. SQL state: 58P01 Sorry the correct error I am getting is... could not load library “C:/Program Files/PostgreSQL/9.0/lib/plperl.dll”: > The specified module could not be found. SQL state: 58P01 The previous was copied from a post found on the net when searching for solutions. Thanks for any help! -- Robert <robert@webtent.org>
I don't use pl/perl, but I've seen a very similar "could not load library" error with pl/python on Windows, even though the dll named was present. Windows gives very bad error messages when it fails to dynamically link. You could use something like dependency walker, which is probably a pain. I think that plperl.dll simply wants to link to a major version of perl that you don't have. It's a matter of finding out which and installing it. -- Regards, Peter Geoghegan
On 2/8/2011 12:03 PM, Robert Fitzpatrick wrote: > On 2/8/2011 11:58 AM, Robert Fitzpatrick wrote: >> could not load library “C:/Program Files/PostgreSQL/8.3/lib/plperl.dll”: >> The specified module could not be found. SQL state: 58P01 > > Sorry the correct error I am getting is... > > could not load library “C:/Program Files/PostgreSQL/9.0/lib/plperl.dll”: >> The specified module could not be found. SQL state: 58P01 > > The previous was copied from a post found on the net when searching for > solutions. > Finally found the solution to this issue, it seems PostgreSQL is looking for perl510.dll, or earlier perhaps... > http://stackoverflow.com/questions/4129479/strawberry-perl-5-12-as-postgresql-9-0s-plperl-on-win32 I also renamed my ActivePerl library from perl512.dll and perl510.dll to solve. Does this mean I may run into issues with the new Perl? I also tried 5.8.x and could not get plperl.dll installed with same error. -- Robert <robert@webtent.org>