PostgreSQL:pgAdmin调试器中的变量范围

时间:2013-02-27 14:07:06

标签: debugging postgresql scope pgadmin

我正在尝试了解pgAdmin调试器,并且对PostgreSQL来说相当新。我不知道我所看到的行为是因为我正在犯的错误,还是因为调试器的限制。

在我的函数顶部,我已经声明了两个变量:

   declare tuple record;
   declare buffer text;

在我的函数体中,我试图迭代临时表TT_CALENDAR中的行,因此可以在Locals窗口中检查临时表的内容:

for tuple in
  select startdate, enddate from TT_CALENDAR
  loop
   buffer := concat(buffer, tuple.startdate::text, tuple.enddate::text,'|');
  end loop;

 buffer :='';

断点设置为buffer := concat(...和行buffer :='';,程序执行按预期停止,但只要我们退出循环并到达buffer :='';,字符串值就会从本地人窗口。

为什么在执行 buffer :='';之前退出循环时,缓冲区的显示值会从Locals窗口消失?就好像变量已超出范围。

P.S。是否有配置设置会导致长值包含在“本地”窗口单元格中?

谢谢

1 个答案:

答案 0 :(得分:0)

这听起来像是调试器的错误。我一般建议跟进pgadmin电子邮件列表,并提醒开发人员注意这个问题。

我没有理由知道变量超出范围所以听起来像是调试器本身的错误。