Skip to content

Commit

Permalink
Fix #452 handle StringValues in SQL parser
Browse files Browse the repository at this point in the history
  • Loading branch information
mistic100 committed Mar 26, 2017
1 parent 0586630 commit a300f98
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions src/plugins/sql-support/plugin.js
Expand Up @@ -418,26 +418,26 @@ QueryBuilder.extend({
* @param {object} AST node
* @returns {object} tree, rule or group
*/
query = self.change('parseSQLNode', parsed.where.conditions);
var data = self.change('parseSQLNode', parsed.where.conditions);

// a plugin returned a group
if ('rules' in query && 'condition' in query) {
return query;
if ('rules' in data && 'condition' in data) {
return data;
}

// a plugin returned a rule
if ('id' in query && 'operator' in query && 'value' in query) {
if ('id' in data && 'operator' in data && 'value' in data) {
return {
condition: this.settings.default_condition,
rules: [query]
rules: [data]
};
}

// create root group
var out = self.change('sqlToGroup', {
condition: this.settings.default_condition,
rules: []
}, query);
}, data);

// keep track of current group
var curr = out;
Expand Down Expand Up @@ -533,7 +533,18 @@ QueryBuilder.extend({
}

var opVal = sqlrl.call(this, value, data.operation);
var field = data.left.values.join('.');

// find field name
var field;
if ('values' in data.left) {
field = data.left.values.join('.');
}
else if ('value' in data.left) {
field = data.left.value;
}
else {
Utils.error('SQLParse', 'Cannot find field name in {0}', JSON.stringify(data.left));
}

/**
* Returns a filter identifier from the SQL field
Expand Down Expand Up @@ -562,7 +573,7 @@ QueryBuilder.extend({

curr.rules.push(rule);
}
}(query, 0));
}(data, 0));

return out;
},
Expand Down

0 comments on commit a300f98

Please sign in to comment.