Hi,

PFA patch to fix the issue where debugger failed to run when user tries to
debug the function which call itself recursively.
RM#2524

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/continue.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/continue.sql
index ff51aa9..6eaac13 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/continue.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/continue.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
     FROM pldbg_get_stack({{session_id}}::INTEGER) s
-    WHERE s.func = p.func AND s.pkg = p.pkg) AS args
+    WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_continue({{session_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git 
a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/select_frame.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/select_frame.sql
index c70def7..f887417 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/select_frame.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/select_frame.sql
@@ -7,6 +7,6 @@ SELECT
     (SELECT
         s.args
      FROM pldbg_get_stack({{session_id}}::INTEGER) s
-     WHERE s.func = p.func AND s.pkg = p.pkg) AS args
+     WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_select_frame({{session_id}}::INTEGER, {{frame_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_into.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_into.sql
index 676bbe0..dfbf19c 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_into.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_into.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
      FROM pldbg_get_stack({{session_id}}::INTEGER) s
-     WHERE s.func = p.func AND s.pkg = p.pkg) AS args
+     WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_step_into({{session_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_over.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_over.sql
index 572aa80..4b9848b 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_over.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/step_over.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
     FROM pldbg_get_stack({{session_id}}::INTEGER) s
-    WHERE s.func = p.func AND s.pkg = p.pkg) AS args
+    WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_step_over({{session_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git 
a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/wait_for_breakpoint.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/wait_for_breakpoint.sql
index eb98625..a1eb1fd 100644
--- 
a/web/pgadmin/tools/debugger/templates/debugger/sql/v1/wait_for_breakpoint.sql
+++ 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v1/wait_for_breakpoint.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
      FROM pldbg_get_stack({{session_id}}::INTEGER) s
-     WHERE s.func = p.func AND s.pkg = p.pkg) AS args
+     WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_wait_for_breakpoint({{session_id}}::INTEGER) p;
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/continue.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/continue.sql
index 3cbeeab..67fd863 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/continue.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/continue.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
     FROM pldbg_get_stack({{session_id}}::INTEGER) s
-    WHERE s.func = p.func) AS args
+    WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_continue({{session_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git 
a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/select_frame.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/select_frame.sql
index ac2bc77..4ae0356 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/select_frame.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/select_frame.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
      FROM pldbg_get_stack({{session_id}}::INTEGER) s
-     WHERE s.func = p.func) AS args
+     WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_select_frame({{session_id}}::INTEGER, {{frame_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_into.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_into.sql
index 2645a69..dcccbde 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_into.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_into.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
      FROM pldbg_get_stack({{session_id}}::INTEGER) s
-     WHERE s.func = p.func) AS args
+     WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_step_into({{session_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_over.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_over.sql
index d77a0ae..4ee9dab 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_over.sql
+++ b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/step_over.sql
@@ -6,6 +6,6 @@ SELECT
     (SELECT
         s.args
      FROM pldbg_get_stack({{session_id}}::INTEGER) s
-     WHERE s.func = p.func) AS args
+     WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_step_over({{session_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git 
a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/wait_for_breakpoint.sql 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/wait_for_breakpoint.sql
index befca11..3d78103 100644
--- 
a/web/pgadmin/tools/debugger/templates/debugger/sql/v2/wait_for_breakpoint.sql
+++ 
b/web/pgadmin/tools/debugger/templates/debugger/sql/v2/wait_for_breakpoint.sql
@@ -7,6 +7,6 @@ SELECT
     (SELECT
         s.args
      FROM pldbg_get_stack({{session_id}}::INTEGER) s
-     WHERE s.func = p.func) AS args
+     WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
 FROM pldbg_wait_for_breakpoint({{session_id}}::INTEGER) p
-{% endif %}
\ No newline at end of file
+{% endif %}

Reply via email to