diff --git a/web/pgadmin/browser/templates/browser/js/messages.js b/web/pgadmin/browser/templates/browser/js/messages.js
index 4d4462d3a..f3e60df67 100644
--- a/web/pgadmin/browser/templates/browser/js/messages.js
+++ b/web/pgadmin/browser/templates/browser/js/messages.js
@@ -12,6 +12,7 @@ function(_, S, pgAdmin) {
'CLICK_FOR_DETAILED_MSG': '%s
' + '{{ _('Click here for details.')|safe }}',
'GENERAL_CATEGORY': '{{ _("General")|safe }}',
'SQL_TAB': '{{ _('SQL') }}',
+ 'SQL_INCOMPLETE': '{{ _('Incomplete definition') }}',
'SQL_NO_CHANGE': '-- ' + '{{ _('Nothing changed')|safe }}',
'MUST_BE_INT' : "{{ _("'%%s' must be an integer.")|safe }}",
'MUST_BE_NUM' : "{{ _("'%%s' must be a numeric.")|safe }}",
diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js
index dc8cde4fb..201ecc18f 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -1394,38 +1394,43 @@
// Fetch the information only if the SQL tab is visible at the moment.
if (this.dialog && obj.shown == this.tabIndex) {
- // We will send request to sever only if something is changed in model
+ // We will send a request to the sever only if something has changed
+ // in a model and also it does not contain any error.
if(this.model.sessChanged()) {
+ if (_.size(this.model.errorModel.attributes) == 0) {
+ var self = this,
+ node = self.field.get('schema_node'),
+ msql_url = node.generate_url.apply(
+ node, [
+ null, 'msql', this.field.get('node_data'), !self.model.isNew(),
+ this.field.get('node_info')
+ ]);
- var self = this,
- node = self.field.get('schema_node'),
- msql_url = node.generate_url.apply(
- node, [
- null, 'msql', this.field.get('node_data'), !self.model.isNew(),
- this.field.get('node_info')
- ]);
+ // Fetching the modified SQL
+ self.model.trigger('pgadmin-view:msql:fetching', self.method, node);
- // Fetching the modified SQL
- self.model.trigger('pgadmin-view:msql:fetching', self.method, node);
-
- $.ajax({
- url: msql_url,
- type: 'GET',
- cache: false,
- data: self.model.toJSON(true, 'GET'),
- dataType: "json",
- contentType: "application/json"
- }).done(function(res) {
- self.sqlCtrl.clearHistory();
- self.sqlCtrl.setValue(res.data);
- }).fail(function() {
- self.model.trigger('pgadmin-view:msql:error', self.method, node, arguments);
- }).always(function() {
- self.model.trigger('pgadmin-view:msql:fetched', self.method, node, arguments);
- });
+ $.ajax({
+ url: msql_url,
+ type: 'GET',
+ cache: false,
+ data: self.model.toJSON(true, 'GET'),
+ dataType: "json",
+ contentType: "application/json"
+ }).done(function(res) {
+ self.sqlCtrl.clearHistory();
+ self.sqlCtrl.setValue(res.data);
+ }).fail(function() {
+ self.model.trigger('pgadmin-view:msql:error', self.method, node, arguments);
+ }).always(function() {
+ self.model.trigger('pgadmin-view:msql:fetched', self.method, node, arguments);
+ });
+ } else {
+ this.sqlCtrl.clearHistory();
+ this.sqlCtrl.setValue('-- ' + window.pgAdmin.Browser.messages.SQL_INCOMPLETE);
+ }
} else {
this.sqlCtrl.clearHistory();
- this.sqlCtrl.setValue(window.pgAdmin.Browser.messages.SQL_NO_CHANGE);
+ this.sqlCtrl.setValue('-- ' + window.pgAdmin.Browser.messages.SQL_NO_CHANGE);
}
this.sqlCtrl.refresh.apply(this.sqlCtrl);
}