postgres a relocation error

Michal Fric mike na p4.mepnet.cz
Pondělí Únor 21 17:08:23 CET 2000


On 21-Feb-2000 Karel Zak - Zakkr wrote:
> 
> On Mon, 21 Feb 2000, Michal Fric wrote:
> 
>> postgres=> CREATE FUNCTION plpgsql_call_handler () RETURNS OPAQUE AS
>>            '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE 'C';
>> CREATE
>> postgres=> CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql'
>>            HANDLER plpgsql_call_handler
>>            LANCOMPILER 'PL/pgSQL';
>> CREATE
> 
> Instalace PL/pgSQL neni standardne?

Kdyz to udelam bez ty predchozi inicializace tak dostanu

ERROR:  Unrecognized language specified in a CREATE FUNCTION: 'plpgsql'. 
Recognized languages are sql, C, internal and the created procedural languages.
Stejne tak se to chova i na Linuxu.

> 
>> postgres=>  CREATE FUNCTION add_one (int4) RETURNS int4 AS '
>>             BEGIN
>>               RETURN $1 + 1;
>>             END;
>>             ' LANGUAGE 'plpgsql';
>> CREATE
>> postgres=> select add_one(*);
>> ERROR:  Load of file /usr/local/pgsql/lib/plpgsql.so failed: ld.so.1:
>> /usr/local/pgsql/bin/postmaster: fatal: relocation error: file
>> /usr/local/pgsql/lib/plpgsql.so: symbol CurrentMemoryContext: referenced
>> symbol
>> not found
> 
> No asi se neporari slinkovat - dlopen() - tu knihovnu s PG. To 
> CurrentMemoryContext asi na nic "nenavazuje". Je to kompilovane
> oboje ze stejneho stromu a pod stejnym OS ..atd?

S tim dlopen() mate asi pravdu, otazka je jak to udelat aby to fungovalo.
Pritom kdyz se podivam do plpgsql.so treba prez strings tak se tam
CurrentMemoryContext vyskytuje.
Ano je to kompilovane z jednoho tarballu a na stejnem OS.
 

> 
>                                               Karel

+------------------------------------------------------
|Michal Fric
|MC Praha 4
|E-Mail: Michal Fric <mike na p4.mepnet.cz>
|Tel.: 61192180
|Date: 21-Feb-2000
+------------------------------------------------------


Další informace o konferenci Test