diff --git a/web/pgadmin/tools/debugger/__init__.py b/web/pgadmin/tools/debugger/__init__.py
index 22cbd05..f7d0e7b 100644
--- a/web/pgadmin/tools/debugger/__init__.py
+++ b/web/pgadmin/tools/debugger/__init__.py
@@ -1342,7 +1342,7 @@ def poll_end_execution_result(trans_id):
 
     if conn.connected():
         statusmsg = conn.status_message()
-        status, result, my_result = conn.poll()
+        status, result, col_info = conn.poll()
         if status == ASYNC_OK and session['functionData'][str(trans_id)]['language'] == 'edbspl':
             status = 'Success'
             return make_json_response(success=1, info=gettext("Execution Completed."),
@@ -1354,14 +1354,19 @@ def poll_end_execution_result(trans_id):
                                           data={'status': status, 'status_message': result})
             else:
                 status = 'Success'
-                data = {}
-                for i in result:
-                    for k, v in i.items():
-                        data["name"] = k
-                        data.setdefault("value", []).append(v)
+                columns = []
+                # Check column info is available or not
+                if col_info is not None and len(col_info) > 0:
+                    for col in col_info:
+                        items = list(col.items())
+                        column = dict()
+                        column['name'] = items[0][1]
+                        column['type_code'] = items[1][1]
+                        columns.append(column)
 
                 return make_json_response(success=1, info=gettext("Execution Completed."),
-                                          data={'status': status, 'result': data, 'status_message': statusmsg})
+                                          data={'status': status, 'result': result,
+                                                'col_info': columns, 'status_message': statusmsg})
         else:
             status = 'Busy'
     else:
diff --git a/web/pgadmin/tools/debugger/templates/debugger/js/direct.js b/web/pgadmin/tools/debugger/templates/debugger/js/direct.js
index bd1f87e..7ec5e95 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/js/direct.js
+++ b/web/pgadmin/tools/debugger/templates/debugger/js/direct.js
@@ -417,9 +417,9 @@ define(
               }
               else {
                 // Call function to create and update local variables ....
-                if (res.data.result.name != null) {
+                if (res.data.result != null) {
                   pgTools.DirectDebug.editor.removeLineClass(self.active_line_no, 'wrap', 'CodeMirror-activeline-background');
-                  self.AddResults(res.data.result);
+                  self.AddResults(res.data.col_info, res.data.result);
                   pgTools.DirectDebug.results_panel.focus();
                   pgTools.DirectDebug.direct_execution_completed = true;
                   pgTools.DirectDebug.polling_timeout_idle = true;
@@ -846,7 +846,7 @@ define(
 
       },
 
-      AddResults: function(result) {
+      AddResults: function(columns, result) {
         var self = this;
 
         // Remove the existing created grid and update the result values
@@ -866,22 +866,23 @@ define(
           model: DebuggerResultsModel
         });
 
-        resultGridCols = [
-          {name: 'value', label:result.name, type:'text', editable: false, cell:'string'}
-        ];
-
-        var my_obj = [];
-        if (result.value.length != 0)
-        {
-          for (i = 0; i < result.value.length; i++) {
-            my_obj.push({ "value": result.value[i]});
-          }
+        var resultGridCols = [];
+        if(_.size(columns)) {
+          _.each(columns, function(c) {
+            var column = {
+                            type:'text',
+                            editable: false,
+                            cell:'string'
+                         };
+            column['name'] = column['label'] = c.name;
+            resultGridCols.push(column);
+          });
         }
 
         // Initialize a new Grid instance
         var result_grid = this.result_grid = new Backgrid.Grid({
           columns: resultGridCols,
-          collection: new ResultsCollection(my_obj),
+          collection: new ResultsCollection(result),
           className: "backgrid table-bordered"
         });
 
