@@ -418,26 +418,26 @@ QueryBuilder.extend({
418
418
* @param {object } AST node
419
419
* @returns {object } tree, rule or group
420
420
*/
421
- query = self . change ( 'parseSQLNode' , parsed . where . conditions ) ;
421
+ var data = self . change ( 'parseSQLNode' , parsed . where . conditions ) ;
422
422
423
423
// 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 ;
426
426
}
427
427
428
428
// 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 ) {
430
430
return {
431
431
condition : this . settings . default_condition ,
432
- rules : [ query ]
432
+ rules : [ data ]
433
433
} ;
434
434
}
435
435
436
436
// create root group
437
437
var out = self . change ( 'sqlToGroup' , {
438
438
condition : this . settings . default_condition ,
439
439
rules : [ ]
440
- } , query ) ;
440
+ } , data ) ;
441
441
442
442
// keep track of current group
443
443
var curr = out ;
@@ -533,7 +533,18 @@ QueryBuilder.extend({
533
533
}
534
534
535
535
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
+ }
537
548
538
549
/**
539
550
* Returns a filter identifier from the SQL field
@@ -562,7 +573,7 @@ QueryBuilder.extend({
562
573
563
574
curr . rules . push ( rule ) ;
564
575
}
565
- } ( query , 0 ) ) ;
576
+ } ( data , 0 ) ) ;
566
577
567
578
return out ;
568
579
} ,
0 commit comments