Thread: creating language plperl fails in windows 7

creating language plperl fails in windows 7

From
Brian Fehrle
Date:
Hi all,
    I've been tasked with getting postgresql 8.3 set up on a Windows 7
box. I have zero experience with Windows 7, and very little with Windows
in general so I'm having some trouble.

I installed postgres 8.3 using EnterpriseDB's one click installer. I
need to import a sql file I created from my linux box from a pg_dump,
which includes some functions that depend on plperl.

I log into a psql terminal and run

CREATE LANGUAGE plperl;
ERROR: could not load library "C:/Program Files
(x86)/PostgreSQL/8.3/lib/plperl.dll": The specified module could not be
found.

I looked in that location and the plperl.dll does exist. I checked
permissions, both the user account postgres and the user account I'm
logged into windows have permissions on it.

I then realized I did not have perl installed, so I installed
ActivePerl, verified that the perl command works for the postgres user,
restarted the Postgres cluster, and tried the create language plperl
again, but I get the same error.

I'm not fully sure what to do here. I don't have the ability to reboot
the whole system (I hear turning it off and on again works with windows).

Thanks in advance for any help possible.

Brian F

Re: creating language plperl fails in windows 7

From
Christian Ullrich
Date:
* Brian Fehrle wrote:

> CREATE LANGUAGE plperl;
> ERROR: could not load library "C:/Program Files
> (x86)/PostgreSQL/8.3/lib/plperl.dll": The specified module could not be
> found.
>
> I looked in that location and the plperl.dll does exist. I checked
> permissions, both the user account postgres and the user account I'm
> logged into windows have permissions on it.

You're missing some DLL that's used by plperl.dll, most likely one from
the Perl installation itself.

> I then realized I did not have perl installed, so I installed
> ActivePerl, verified that the perl command works for the postgres user,
> restarted the Postgres cluster, and tried the create language plperl
> again, but I get the same error.

- Do you have the correct perl version installed? plperl.dll from the
   8.3.11 installer requires Perl 5.8.

- Is the "bin" directory of the Perl installation in the PATH of the
   postgres service user? You wrote that you verified the command works,
   but you didn't indicate if you had to specify the full path.

--
Christian