sql >> Database teknologi >  >> RDS >> PostgreSQL

Debug PostgreSQL-funktion ved hjælp af pgAdmin

Du skal aktivere fejlfinding to steder. På PGAdmin og på selve databasen. Den artikel, du refererede til, gør et vidunderligt stykke arbejde med at forklare det, men der var nogle nuancer.

PGAdmin

Når du opdaterer din postgresql.conf fil for at indlæse fejlfindingsbiblioteket, jeg kørte PGAdmin på Windows så filen var her:

C:\Program Files\PostgreSQL\9.4\data\postgresql.conf

Og stien til plugin_debugger.dll var faktisk

$libdir/plugin_debugger.dll

ikke

$libdir/plugins/plugin_debugger.dll

som angivet i artiklen. Så din postgresql.conf ville have brug for en linje som denne

shared_preload_libraries = '$libdir/plugin_debugger.dll'

Søg efter den faktiske .dll, hvis du er i tvivl. Hvis du er på Linux, er den fil, du leder efter, plugin_debugger.so . Glem ikke at ændre postgresql.conf fil kræver en genstart for at ændringen kan træde i kraft.

PostgreSQL-database

Forudsat at du kører din PostgreSQL-database på en Linux-server denne kerne gør et fremragende stykke arbejde med at forklare, hvordan man downloader afhængighederne for at aktivere debugging. Sørg for, at du kører som root, når du installerer.

Den del, der er let at gå glip af, er at udstede kommandoen mod den faktiske database, du vil fejlrette. For nyere versioner på PostgreSQL skal du blot gøre dette:

CREATE EXTENSION IF NOT EXISTS pldbgapi;

Hvis det ikke returnerer en fejl, burde du være klar.

Nogle yderligere ting at bemærke:

  • Som nævnt ovenfor kan du kun fejlfinde, når du kører som en superbrugerkonto
  • Fra deres dokumenter du kan kun debugge pl/pgsql-funktioner. Så hvis din funktion siger noget som LANGUAGE c PGAdmin vil ikke engang vise et højreklik på Debug-menuen, når du vælger funktionen. Se efter noget, der har LANGUAGE plpgsql og fejlretningsmenuen skulle vises.


  1. Hvordan laver man en accent og ufølsom søgning i MediaWiki-databasen?

  2. Hvordan kan jeg skrive en SQL-forespørgsel for at beregne mængden af ​​komponenter, der sælges med deres overordnede samlinger? (Postgres 11/rekursiv CTE?)

  3. Ugyldigt parameternummer på PDO-forberedt erklæring

  4. Rediger kolonne kontra skift kolonne