使用pgAdmindebuggingPostgreSQL函数

我指的是在PostgreSQL服务器中启用debugging器,以便通过使用pgadmin逐步debugging代码来debuggingplpgsql函数。

我已经在postgresql.conf设置了shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll' ,运行pldbgapi.sql ,然后重新启动服务器。

这些步骤应该已经成功运行了, plugin_debugger.dll应该可以通过使用命令show shared_preload_libraries进行validation,并且可以通过右键单击pgAdmin中的函数来看到上下文菜单中的debugging选项。

在这里输入图像说明

当select“debugging” – >“debugging”时,会popup一个窗口,让我inputinput参数的值。 但在此之后,当我按OK ,它根本不响应。

在这里输入图像说明

任何想法或我错过了在服务器上的debugging器设置?

我使用PostgreSQL 8.3和pgAdmin 1.14

你必须在两个地方启用debugging。 在PGAdmin和数据库本身。 你所引用的那篇文章对解释这篇文章做了很好的工作,但是有一些细微之处。

pgAdmin的

当更新postgresql.conf文件来加载debugging库时,我在Windows上运行PGAdmin,所以文件在这里:

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

plugin_debugger.dll的path实际上是

 $libdir/plugin_debugger.dll 

 $libdir/plugins/plugin_debugger.dll 

如文章所述。 所以你的postgresql.conf需要这样的一行

 shared_preload_libraries = '$libdir/plugin_debugger.dll' 

如果您有疑问,请search实际的.dll文件。 如果你在Linux上,你要找的文件是plugin_debugger.so 。 不要忘记,更改postgresql.conf文件将需要重新启动才能使更改生效。

PostgreSQL数据库

假设您正在Linux服务器上运行PostgreSQL数据库, 这个要点在解释如何下载依赖关系以启用debugging方面做得非常出色。 确保在安装时以root身份运行。

容易丢失的部分是针对要debugging的实际数据库发出命令。 对于PostgreSQL上的新版本,你只需要这样做:

 CREATE EXTENSION IF NOT EXISTS pldbgapi; 

如果这不会返回一个错误,你应该很好去。

一些额外的注意事项:

  • 如上所述,只能以超级用户帐户运行时进行debugging
  • 从他们的文档中,您只能debuggingpl / pgsql函数。 所以如果你的函数说的是类似LANGUAGE c当你select函数的时候,PGAdmin甚至不会显示一个右击debugging菜单选项。 查找具有LANGUAGE plpgsql东西,并显示“debugging”菜单。

肯,

您是否尝试过使用pgAdmin 1.8来排除PgAdmin 1.14 / PostgreSQL 8.3交互的问题。 我已经使用了8.3,而且我写的这篇文章已经有一段时间了 – 你所说的是,我正在用1.14 / PostgreSQL 9.1进行testing,所以这可能是与旧版本交互的一个问题。 不幸的是我没有一个8.3testing。

我依稀记得曾经有过这个问题,但是当我在postgresql.conf中除了pldebugger之外还有一个共享库的时候。 不记得是哪一个,但删除其他共享库解决了我的问题。

希望这些build议有一些帮助,里贾纳

我有同样的问题。 确保您在postgres.conf中加载的唯一共享库是debugging器。 没有其他的。 甚至没有探查器。 如果在尝试debugging某个function时遇到SSL错误,请重新连接到服务器。