funciones funciona español datos crear consultas conexiones como comandos cerrar debugging postgresql plpgsql pgadmin

debugging - funciona - Función Debug PostgreSQL usando pgAdmin



manual de postgresql (3)

Lo recomiendo para habilitar el depurador en el servidor PostgreSQL para depurar la función plpgsql pasando por los códigos usando pgadmin.

Ya he configurado shared_preload_libraries = ''$libdir/plugins/plugin_debugger.dll'' en el pldbgapi.sql postgresql.conf , ejecuto pldbgapi.sql y reinicié el servidor.

Estos pasos deberían haberse ejecutado correctamente y plugin_debugger.dll debe cargar correctamente, como se puede verificar con el comando show shared_preload_libraries , y puedo ver la opción de depuración en el menú contextual haciendo clic con el botón derecho en una función en pgAdmin.

Al elegir "Depurar" -> Depurar, aparece una ventana que me permite ingresar los valores para los parámetros de entrada. Pero después de eso, cuando presiono OK , no responde en absoluto.

¿Alguna idea o me perdí algo en la configuración del depurador en el servidor?

Estoy usando PostgreSQL 8.3 y pgAdmin 1.14


Conocido,

¿Has probado pgAdmin 1.8 para descartar un problema con la interacción PgAdmin 1.14 / PostgreSQL 8.3? Ha pasado un tiempo desde que utilicé 8.3 y para el artículo que escribí, al que te refieres, estaba probando con 1.14 / PostgreSQL 9.1, por lo que podría ser un problema con la interacción con versiones anteriores. Lamentablemente, ya no tengo 8.3 más para probar.

Recuerdo vagamente haber tenido el problema que tuve una vez, pero fue cuando tuve otra biblioteca compartida en mi postgresql.conf además del pldebugger. No recuerdo cuál fue, pero eliminar la otra biblioteca compartida solucionó mi problema.

Espero que algunas de estas sugerencias ayuden, Regina


Tienes que habilitar la depuración en dos lugares. En PGAdmin y en la base de datos en sí. Ese artículo al que hizo referencia hace un trabajo maravilloso al explicarlo, pero había algunos matices.

PGAdmin

Al actualizar su archivo postgresql.conf para cargar la biblioteca de depuración, estaba ejecutando PGAdmin en Windows para que el archivo estuviera aquí:

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

Y la ruta al plugin_debugger.dll era en realidad

$libdir/plugin_debugger.dll

no

$libdir/plugins/plugin_debugger.dll

como se especifica en el artículo. Entonces su postgresql.conf necesitaría una línea como esta

shared_preload_libraries = ''$libdir/plugin_debugger.dll''

Busque el .dll real si tiene dudas. Si estás en Linux, el archivo que vas a buscar es plugin_debugger.so . No olvide que cambiar el archivo postgresql.conf requerirá un reinicio para que el cambio surta efecto.

Base de datos PostgreSQL

Asumiendo que está ejecutando su base de datos PostgreSQL en un servidor Linux, esta esencia hace un excelente trabajo al explicar cómo descargar las dependencias para habilitar la depuración. Asegúrate de ejecutar como root cuando instales.

La parte que es fácil pasar por alto es emitir el comando contra la base de datos real que desea depurar. Para las versiones más nuevas en PostgreSQL todo lo que tendrá que hacer es esto:

CREATE EXTENSION IF NOT EXISTS pldbgapi;

Si eso no arroja un error, deberías ir bien.

Algunas cosas adicionales de la nota:

  • Como se mencionó anteriormente, solo puede depurar cuando se ejecuta como una cuenta de súper usuario
  • Desde sus documentos , solo puede depurar funciones pl / pgsql. Entonces, si su función dice algo como LANGUAGE c PGAdmin ni siquiera mostrará una opción de menú de depuración cuando seleccione la función. Busque algo que tenga LANGUAGE plpgsql y se LANGUAGE plpgsql el menú Debug.

Yo tuve el mismo problema. Asegúrese de que la única lib compartida que está cargando en el postgres.conf es el depurador. Nada más. Ni siquiera el generador de perfiles. Si obtiene un error de SSL al intentar depurar una función, vuelva a conectarse al servidor.