Fehler beim Import von C-Funktionen

Ich arbeite zur Zeit mit einer manuell gebuildeten Version von PGSQL Version 11.2 (soweit ich das sehen konnte).
Hierfür wurden bereits Lambda-Expressions hinzugefügt, welche als TABLE-Functions verwendet werden.
Dies sind in C files gebuildet, und alles wird über Makefiles erledigt. Ich bin mir sicher, das damit alles stimmt, da ich neu dazu gekommen bin, und bis jetzt alles gepasst hat, deswegen bitte dazu nicht sagen, das dort etwas nicht stimmt.

Nun aber zu meiner Frage, ich hab also diese Functionen, die Lambda expressions annehmen, aber wenn ich versuche, dies als extensions zu laden, bekomme ich nur diesen Fehler:
ERROR: could not open extension control file “/home/b_pgsql/share/extension/lambda_ext.control”: No such file or directory
Wenn ich also manuell versuche, die FUNCTION zu deklarieren, bekomme ich mit diesem Code:

CREATE OR REPLACE FUNCTION label(lambdatable, lambda)
    RETURNS setof record
    AS '/home/psql-lambda/src/ext/lambda_ext.so', 'label'
    LANGUAGE C STRICT;

folgenden Fehler:

ERROR:  syntax error at or near "lambda"
LINE 1: create function label(lambdatable, lambda)
                                                                    ^

Jetzt also die Frage, was mache ich falsch? Bzw worauf könnte das hinweisen?
Wenn ich den path nicht angebe, dann wird mir nur gesagt, das ich der gebuildeten Version und deren Ordnern das file lambda_ext.so nicht gefunden wurde, was ich auch per find bestätigen konnte.

Ich kenn mich jetzt nicht so sehr damit aus aber:
Ist denn das im oberen Fehler bemängelte File dort wo es vermutet wird?
Muss bei einer Funktionsdeklaration (unterer Fehler) nicht der Datentyp festgelegt werden?
Da du eine selbstkompilierte Version benutzt kann es sein, das irgendwo die Pfade nicht passen, deswegen findet er lambda_ext.so nicht. Dies weist auch einen anderen Pfad auf als in der oberen Fehlermeldung auftaucht. Eventuell könnte hier ein Symlink an der richtigen Stelle helfen.

Viele Grüße
Uwe

Viele Grüße
Uwe

Da fehlen Typen bei den Funktionsparametern.
(Die im sichtbaren Code auch nicht verwendet werden)

naja, lambdatable und lambda sind zwei Typen, die bereits hinzugefügt wurden zu Postgres durch den manuellen build. Deswegen wird ja auch nicht der Type der parameter angemeckert, sondern etwas anderes, was ich nicht ganz nachvollziehen kann …

In der Tat, bei Funktionen ist nur der Typ Pflicht, Name etc optional, sagt das Handbuch. Man lernt nicht aus.
https://www.postgresql.org/docs/11/sql-createfunction.html
Gruß Uwe

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.