Skip to content

Commit a300f98

Browse files
committed
Fix #452 handle StringValues in SQL parser
1 parent 0586630 commit a300f98

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

src/plugins/sql-support/plugin.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -418,26 +418,26 @@ QueryBuilder.extend({
418418
* @param {object} AST node
419419
* @returns {object} tree, rule or group
420420
*/
421-
query = self.change('parseSQLNode', parsed.where.conditions);
421+
var data = self.change('parseSQLNode', parsed.where.conditions);
422422

423423
// a plugin returned a group
424-
if ('rules' in query && 'condition' in query) {
425-
return query;
424+
if ('rules' in data && 'condition' in data) {
425+
return data;
426426
}
427427

428428
// a plugin returned a rule
429-
if ('id' in query && 'operator' in query && 'value' in query) {
429+
if ('id' in data && 'operator' in data && 'value' in data) {
430430
return {
431431
condition: this.settings.default_condition,
432-
rules: [query]
432+
rules: [data]
433433
};
434434
}
435435

436436
// create root group
437437
var out = self.change('sqlToGroup', {
438438
condition: this.settings.default_condition,
439439
rules: []
440-
}, query);
440+
}, data);
441441

442442
// keep track of current group
443443
var curr = out;
@@ -533,7 +533,18 @@ QueryBuilder.extend({
533533
}
534534

535535
var opVal = sqlrl.call(this, value, data.operation);
536-
var field = data.left.values.join('.');
536+
537+
// find field name
538+
var field;
539+
if ('values' in data.left) {
540+
field = data.left.values.join('.');
541+
}
542+
else if ('value' in data.left) {
543+
field = data.left.value;
544+
}
545+
else {
546+
Utils.error('SQLParse', 'Cannot find field name in {0}', JSON.stringify(data.left));
547+
}
537548

538549
/**
539550
* Returns a filter identifier from the SQL field
@@ -562,7 +573,7 @@ QueryBuilder.extend({
562573

563574
curr.rules.push(rule);
564575
}
565-
}(query, 0));
576+
}(data, 0));
566577

567578
return out;
568579
},

0 commit comments

Comments
 (0)