databases/postgresql7 dump + restore didn't include pgcrypto
functions
Dan Langille
dan at langille.org
Fri Jan 30 18:10:48 PST 2004
Hi folks,
I upgraded two servers today from 7.3.* to 7.4.1. In both cases, the
pgcrypto functions were excluded. I used pg_dumpall to create the
output. Examining the dump file I see this:
connect "working-copy.freshports.org"
--
-- PostgreSQL database dump
--
SET SESSION AUTHORIZATION 'dan';
SET search_path = public, pg_catalog;
--
-- TOC entry 235 (OID 19127468)
-- Name: digest (text, text); Type: FUNCTION; Schema: public; Owner:
dan
--
CREATE FUNCTION digest (text, text) RETURNS bytea
AS '$libdir/pgcrypto', 'pg_digest'
LANGUAGE c;
But within that database, there is no digest function:
working-copy.freshports.org=# \df digest
List of functions
Result data type | Schema | Name | Argument data types
------------------+--------+------+---------------------
(0 rows)
working-copy.freshports.org=#
The cause of the problem is illustrated by this attempt to manually
create the functions:
freshports=# CREATE FUNCTION digest (text, text) RETURNS bytea
freshports-# AS '$libdir/pgcrypto', 'pg_digest'
freshports-# LANGUAGE c;
ERROR: could not load library
"/usr/local/lib/postgresql/pgcrypto.so": dlopen
'/usr/local/lib/postgresql/pgcrypto.so' failed. (/us
r/local/lib/postgresql/pgcrypto.so: Undefined symbol "elog")
It appears that the libraries were removed. Does that make sense?
I upgraded using portupgrade. I wonder if that's why
/usr/local/lib/postgresql was blown away....
What I had to do was recompile and install contrib/pgcrypto and then
import the functions.
FWIW: I was using the FreeBSD port on 4.9-STABLE.
--
Dan Langille : http://www.langille.org/
BSDCan - http://www.bsdcan.org/
More information about the freebsd-ports
mailing list