diff --git a/src/common.js b/src/common.js index 0f757fc979..8cd088937d 100644 --- a/src/common.js +++ b/src/common.js @@ -1447,6 +1447,9 @@ return domain; } else if (~['OR', 'AND'].indexOf(domain)) { return domain; + } else if ((domain instanceof Array) && (domain.length == 1) && + (~['OR', 'AND'].indexOf(domain[0]))) { + return []; } else if ((domain instanceof Array) && (domain.length == 1) && (!this.is_leaf(domain[0]))) { return this.simplify(domain[0]); diff --git a/tests/sao.js b/tests/sao.js index 65b61743ce..4554c72126 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -1710,7 +1710,9 @@ [['OR', [['x', '=', 3]], [['y', '=', 5]]], ['OR', [['x', '=', 3]], [['y', '=', 5]]]], [['OR', ['x', '=', 3], ['AND', ['y', '=', 5]]], - ['OR', ['x', '=', 3], [['y', '=', 5]]]] + ['OR', ['x', '=', 3], [['y', '=', 5]]]], + [['AND'], []], + [['OR'], []] ].forEach(function(test) { var domain = test[0]; var result = test[1];