Benutzerdefinierte prozedurale Sprache

Fragen, Probleme etc. zu den prozedularen Sprachen ( PL/Tcl, PL/Perl und PL/Python).
Antworten
netket
Neuer Benutzer
Beiträge: 11
Registriert: Fr 6. Feb 2009, 08:59

Benutzerdefinierte prozedurale Sprache

Beitrag von netket » Fr 6. Feb 2009, 09:16

Hallo,

ich möchte eine selbstgeschriebene C-Funktion vom Postgres-Server aus aufrufen. Prinzipiell ist ja im Handbuch beschrieben, dass man lediglich eine shared library erstellen und ablegen muss und diese dann im CREATE FUNCTION statement anlegen muss. Leider sind mir das Erstellen der shared library und die Parameterübergabe (Aufrufparameter von Postgres nach C und Rückgabewerte von C nach Postgres) nicht klar.

Gibt es irgendwo vielleicht ein Beispiel für Dummies, was ich einfach mal ausprobieren könnte? Ich arbeite mit Version 8.2 unter Linux.

Bin für jeden Hinweis dankbar,
netket

akretschmer
Erfahrener Benutzer
Beiträge: 7612
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Beitrag von akretschmer » Fr 6. Feb 2009, 09:30

netket hat geschrieben:Hallo,

ich möchte eine selbstgeschriebene C-Funktion vom Postgres-Server aus aufrufen. Prinzipiell ist ja im Handbuch beschrieben, dass man lediglich eine shared library erstellen und ablegen muss und diese dann im CREATE FUNCTION statement anlegen muss. Leider sind mir das Erstellen der shared library und die Parameterübergabe (Aufrufparameter von Postgres nach C und Rückgabewerte von C nach Postgres) nicht klar.

Gibt es irgendwo vielleicht ein Beispiel für Dummies, was ich einfach mal ausprobieren könnte? Ich arbeite mit Version 8.2 unter Linux.

Bin für jeden Hinweis dankbar,
netket



Neben
PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: C-Language Functions

hab ich noch:

Writing PostgreSQL Functions in C LG #139

Hilft das?

Andreas
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

netket
Neuer Benutzer
Beiträge: 11
Registriert: Fr 6. Feb 2009, 08:59

Beitrag von netket » Fr 6. Feb 2009, 10:00

Perfekt, "add_one" läuft! :)

Danke für den schnellen Tipp,
Rüdiger

Antworten