diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py
index 2665b62..98182fc 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py
@@ -668,7 +668,8 @@ AND relkind != 'c'))"""
             if not status:
                 return internal_server_error(errormsg=res)
 
-            foid, scid = res['rows'][0]
+            foid = res['rows'][0]['oid']
+            scid = res['rows'][0]['scid']
 
             return jsonify(
                 node=self.blueprint.generate_browser_node(
@@ -718,7 +719,8 @@ AND relkind != 'c'))"""
                     )
                 )
 
-            name, basensp = res['rows'][0]
+            name =  res['rows'][0]['name']
+            basensp = res['rows'][0]['basensp']
 
             SQL = render_template("/".join([self.template_path,
                                             'delete.sql']),
@@ -1103,13 +1105,6 @@ AND relkind != 'c'))"""
         if cols and 'rows' in cols:
             data['columns'] = cols['rows']
 
-        data['strcolumn'] = ''
-        str_cols = []
-        if 'columns' in data:
-            for c in data['columns']:
-                str_cols.append(c['strcolumn'])
-            data['strcolumn'] = ', '.join(str_cols)
-
         # Get Inherited table names from their OID
         if inherits:
             if 'inherits' in data and data['inherits']:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
index a4b5a27..230b6c2 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
@@ -241,22 +241,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
     toJSON: Backbone.Model.prototype.toJSON
   });
 
-  var formatNode = function(opt) {
-    if (!opt.id) {
-      return opt.text;
-    }
-
-    var optimage = $(opt.element).data('image');
-
-    if(!optimage){
-      return opt.text;
-    } else {
-      return $(
-          '<span><span class="wcTabIcon ' + optimage + '"/>' + opt.text + '</span>'
-          );
-    }
-  };
-
 
   /* NodeAjaxOptionsMultipleControl is for multiple selection of Combobox.
   *  This control is used to select Multiple Parent Tables to be inherited.
@@ -264,83 +248,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
   *  To populates the column, it calls the server and fetch the columns data
   *  for the selected table.
   */
-
-  var NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsControl.extend({
-    template: _.template([
-      '<label class="<%=Backform.controlLabelClassName%>"><%=label%></label>',
-      '<div class="<%=Backform.controlsClassName%> <%=extraClasses.join(\' \')%>">',
-      '  <select class="pgadmin-node-select form-control" name="<%=name%>" style="width:100%;" value=<%-value%> <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> >',
-      '  </select>',
-      '</div>'].join("\n")),
-    defaults: _.extend(
-      {}, Backform.NodeAjaxOptionsControl.prototype.defaults,
-      {
-        select2: {
-          allowClear: true,
-          placeholder: 'Select from the list',
-          width: 'style',
-          templateResult: formatNode,
-          templateSelection: formatNode
-        }
-      }),
-    render: function() {
-      var field = _.defaults(this.field.toJSON(), this.defaults),
-        attributes = this.model.toJSON(),
-        attrArr = field.name.split('.'),
-        name = attrArr.shift(),
-        path = attrArr.join('.'),
-        rawValue = this.keyPathAccessor(attributes[name], path),
-        data = _.extend(field, {
-          rawValue: rawValue,
-          value: this.formatter.fromRaw(rawValue, this.model),
-          attributes: attributes,
-          formatter: this.formatter
-        }),
-        evalF = function(f, d, m) {
-          return (_.isFunction(f) ? !!f.apply(d, [m]) : !!f);
-        };
-
-      // Evaluate the disabled, visible, and required option
-      _.extend(data, {
-        disabled: evalF(data.disabled, data, this.model),
-        visible:  evalF(data.visible, data, this.model),
-        required: evalF(data.required, data, this.model)
-      });
-
-      if (field.node_info.server.version < field.min_version) {
-        field.version_compatible = false
-        return this;
-      }
-      else {
-        // Evaluation the options
-        if (_.isFunction(data.options)) {
-        try {
-          data.options = data.options.apply(this)
-        } catch(e) {
-          // Do nothing
-          data.options = []
-          this.model.trigger('pgadmin-view:transform:error', self.model, self.field, e);
-        }
-        }
-
-        // Clean up first
-        this.$el.removeClass(Backform.hiddenClassname);
-        this.$el.html(this.template(data)).addClass(field.name);
-
-        if (!data.visible) {
-        this.$el.addClass(Backform.hiddenClassname);
-        } else {
-        var opts = _.extend(
-          {}, this.defaults.select2, data.select2,
-          {
-            'data': data.options
-          });
-        this.$el.find("select").select2(opts).val(data.rawValue).trigger("change");
-        this.updateInvalid();
-        }
-      }
-      return this;
-    },
+  var NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsControl.extend({
     onChange: function(e) {
       var model = this.model,
           $el = $(e.target),
@@ -370,7 +278,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
 
       // Remove Columns if inherit option is deselected from the combobox
       if(_.size(value) < _.size(inherits)) {
-        var dif =  _.difference(inherits, JSON.parse(value));
+        var dif =  _.difference(inherits, value);
         var rmv_columns = columns.where({inheritedid: parseInt(dif[0])});
         columns.remove(rmv_columns);
       }
@@ -600,7 +508,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
           basensp: undefined,
           description: undefined,
           ftsrvname: undefined,
-          strcolumn: undefined,
           strftoptions: undefined,
           inherits: [],
           columns: [],
@@ -632,7 +539,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
           type: 'text', group: 'Definition', url: 'get_foreign_servers', disabled: function(m) { return !m.isNew(); }
         },{
           id: 'inherits', label:'{{ _('Inherits') }}', group: 'Definition',
-          type: 'array', min_version: 90500, control: 'node-ajax-options-multiple',
+          type: 'array', min_version: 90500, control: NodeAjaxOptionsMultipleControl,
           url: 'get_tables', select2: {multiple: true},
           'cache_level': 'database',
           transform: function(d, self){
@@ -646,9 +553,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
             return d;
           }
         },{
-          id: 'strcolumn', label:'{{ _('Columns') }}', cell: 'string', group: 'Definition',
-          type: 'text', min_version: 90500, mode: ['properties']
-        },{
           id: 'columns', label:'{{ _('Columns') }}', cell: 'string',
           type: 'collection', group: 'Columns', visible: false, mode: ['edit', 'create'],
           model: ColumnsModel, canAdd: true, canDelete: true, canEdit: true,
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql
index 4bf5e17..0733a3c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql
@@ -1,13 +1,7 @@
 SELECT
     attname, attndims, atttypmod, format_type(t.oid,NULL) AS datatype,
     format_type(t.oid, att.atttypmod) AS fulltype, attnotnull, attnum,
-    (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup,
-    (
-        attname || ' ' || format_type(t.oid, att.atttypmod) || ' ' ||
-        (CASE WHEN attnotnull='true'
-        THEN 'NOT NULL' ELSE 'NULL'
-        END)
-    ) as strcolumn
+    (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup
 FROM
     pg_attribute att
 JOIN
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql
index 4270058..ab5ee75 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql
@@ -4,25 +4,7 @@ SELECT
     CASE WHEN length(cn.nspname) > 0 AND length(cl.collname) > 0 THEN
     concat(cn.nspname, '."', cl.collname,'"') ELSE '' END AS collname,
     (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup,
-    pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS typdefault,
-    (
-        attname || ' ' || format_type(t.oid, att.atttypmod) || ' ' ||
-        (
-            CASE WHEN array_length(attfdwoptions, 1)>0
-            THEN concat('OPTIONS (', array_to_string(attfdwoptions, ', '), ')') ELSE ''
-            END
-        ) || ' ' ||
-        (
-            CASE WHEN attnotnull='true'
-            THEN 'NOT NULL' ELSE 'NULL'
-            END
-        ) || ' ' ||
-        (
-            CASE WHEN pg_catalog.pg_get_expr(def.adbin, def.adrelid)<>''
-            THEN 'DEFAULT ' || pg_catalog.pg_get_expr(def.adbin, def.adrelid)
-            ELSE '' END
-        )
-    ) as strcolumn
+    pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS typdefault
 FROM
     pg_attribute att
 JOIN
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql
index 64d6d13..3417208 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql
@@ -20,25 +20,6 @@ SELECT INH.inheritedfrom, INH.inheritedid, att.attoptions, attfdwoptions,
     concat(cn.nspname, '."', cl.collname,'"')
     ELSE '' END AS collname,
     pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS typdefault,
-    (
-        att.attname || ' ' || format_type(t.oid, att.atttypmod) || ' ' ||
-        (
-            CASE WHEN array_length(attfdwoptions, 1)>0
-            THEN concat('OPTIONS (', array_to_string(attfdwoptions, ', '), ')') ELSE ''
-            END
-        ) || ' ' ||
-        (
-            CASE WHEN attnotnull='true'
-            THEN 'NOT NULL' ELSE 'NULL'
-            END
-        ) || ' ' ||
-        (
-            CASE WHEN pg_catalog.pg_get_expr(def.adbin, def.adrelid)<>''
-            THEN 'DEFAULT ' || pg_catalog.pg_get_expr(def.adbin, def.adrelid)
-            ELSE '' END
-        )
-    ) as strcolumn,
-
     (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup
 FROM
     pg_attribute att
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql
index 83445a2..38f9ce4 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql
@@ -9,7 +9,7 @@ WHERE
 
 {% else %}
 SELECT
-    c.oid AS id, quote_ident(n.nspname) || '.' || quote_ident(c.relname) as text
+    c.oid AS value, quote_ident(n.nspname) || '.' || quote_ident(c.relname) as label
 FROM
     pg_class c, pg_namespace n
 WHERE
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js
index 3ffa6ef..d7c947f 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js
@@ -21,6 +21,7 @@ function($, _, S, pgAdmin, pgBrowser, Alertify) {
       headerSelectControlTemplate =  _.template([
                               '<div class="<%=Backform.controlsClassName%> <%=extraClasses.join(\' \')%>">',
                               '  <select class="pgadmin-node-select form-control" name="<%=name%>" style="width:100%;" value="<%-value%>" <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> >',
+                              '    <%=select2.first_empty ? " <option></option>" : ""%>',
                               '    <% for (var i=0; i < options.length; i++) { %>',
                               '    <% var option = options[i]; %>',
                               '    <option <% if (option.image) { %> data-image=<%= option.image %> <% } %> value=<%= formatter.fromRaw(option.value) %> <%=option.value === rawValue ? "selected=\'selected\'" : "" %>><%-option.label%></option>',
@@ -134,8 +135,9 @@ function($, _, S, pgAdmin, pgBrowser, Alertify) {
           }),
           select2: {
             allowClear: false, width: 'style',
-            placeholder: 'Select column'
-          }, first_empty: !_.isUndefined(self.model.get('oid')),
+            placeholder: '{{ _('Select column') }}',
+            first_empty: !_.isUndefined(self.model.get('oid'))
+          },
           version_compatible: self.field.get('version_compatible'),
           disabled: function(m) {
             return !_.isUndefined(self.model.get('oid'));
@@ -234,10 +236,11 @@ function($, _, S, pgAdmin, pgBrowser, Alertify) {
               Backform.Select2Control.prototype.render.apply(this, arguments);
               return this;
             }
-          }), url: 'get_columns', first_empty: true,
+          }), url: 'get_columns',
           select2: {
+            allowClear: false,
             width: "style",
-            placeholder: 'Select column',
+            placeholder: '{{ _('Select column') }}',
             templateResult: formatNode,
             templateSelection: formatNode
           },
diff --git a/web/pgadmin/browser/static/js/datamodel.js b/web/pgadmin/browser/static/js/datamodel.js
index 8cb7034..7b379ce 100644
--- a/web/pgadmin/browser/static/js/datamodel.js
+++ b/web/pgadmin/browser/static/js/datamodel.js
@@ -124,7 +124,7 @@ function(_, pgAdmin, $, Backbone) {
         var self = this;
         self._previous_key_values = {};
 
-        if ('on_server' in options && options.on_server) {
+        if (!_.isUndefined(options) && 'on_server' in options && options.on_server) {
           self.on_server = true;
         }
 
diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js
index 2530db9..e27ea2d 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -1804,7 +1804,11 @@
       if (_.isArray(formattedData)) {
         return _.map(formattedData, decodeURIComponent);
       } else {
-        return decodeURIComponent(formattedData);
+        if(!_.isNull(formattedData) && !_.isUndefined(formattedData)) {
+          return decodeURIComponent(formattedData);
+        } else {
+          return null;
+        }
       }
     }
   });
@@ -1915,9 +1919,15 @@
       return this;
     },
     getValueFromDOM: function() {
-      return Backform.SelectControl.prototype.getValueFromDOM.apply(
-        this, arguments
-      );
+      var val = Backform.SelectControl.prototype.getValueFromDOM.apply(
+                  this, arguments
+                ),
+        select2Opts = _.extend({}, this.field.get("select2") || this.defaults.select2);
+
+      if (select2Opts.multiple && val == null) {
+        return [];
+      }
+      return val;
     }
   });
 
