PG::UndefinedTable

Hi, ich habe mir PostgreSQL manuell über den Source Code kompiliert, und wollte die Erweiterung pg_stat_statements installieren… Nur kommt dieser Fehler:

PG::UndefinedTable: ERROR: relation “pg_stat_statements” does not exist

Version PostgreSQLs ist die v15beta4 und immer noch auf Linux Debian 11

wann kommt der Fehler, beim CREATE EXTENSION, oder beim SELECT auf diese Tabelle?

Nun, laut meinen Recherchen und der Fehlermeldung, existiert diese Tabelle scheinbar nicht! Die Frage ist halt, wie man diese anlegt… Die .sql Datei ist scheinbar nicht gerade hilfreich… Und was ist eine relation?

eine ‘relation’ ist eine Tabelle (oder VIEW), und diese wird in diesem Fall, bei dieser Extension, beim Erstellen der Extension erzeugt. Daher meine Frage, die Du großzügig ignoriert hast.

Es kommt beim CREATE EXTENSION

Hmm, ja, immer noch:

ERROR: relation “pg_stat_statements” does not exist

Du hast PostgreSQL aus den Sourcen erstellt. Hast du make und make install auch im contrib Subordner ausgeführt?

Jetzt schon… Was nun?

Und create extension noch einmal probiert?

ERROR: could not access file “$libdir/pgcrypto”: Datei oder Verzeichnis nicht gefunden

Der Fehler kommt jetzt aber von einer andere Extension?!

Also ich habe den aktuellen Stand aus dem git-Repo kompiliert.

./configure --prefix=$HOME/opt/${basedir} --enable-nls --with-tcl --with-perl --with-python --with-gssapi --with-pam --with-ldap --with-openssl --with-libxml --with-libxslt
make -j2 && make check && make install && cd contrib && make && make install && cd ..

Danach ohne Fehler

create extension pg_stat_statements;
create extension pgcrypto;

select crypt('new password', gen_salt('md5'));

bash configure --enable-nls --with-tcl --with-perl --with-python --with-gssapi --with-pam --with-ldap --with-openssl --with-libxml --with-libxslt

configure: error: could not find function ‘gss_init_sec_context’ required for GSSAPI

Und sonst kommt dies:

create extension pg_stat_statements;

Could not open extension control file “/usr/local/pgsql/share/extension/pg_stat_statements.control”: Datei oder Verzeichnis nicht gefunden.

Sieht so aus, als ob du make install nur im src Ordner ausgeführt hast. Du musst make install auch im Ordner src/contrib ausführen.

Bei der Option --with-gssapi muss man unter Ubuntu/Debian folgende Pakete zusätzlich installieren: libgss-dev libkrb5-dev

src hat kein contrib

grafik

In contrib hat der jedoch noch keinen make gehabt!

Stimmt, sorry mein Fehler. contrib liegt auf der selben Ebene wie src

In contrib hat der jedoch noch keinen make gehabt!

make
sudo make install

Ja, jetzt funktioniert alles! Danke!!!