@@ -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