Kouhei Sutou
null+****@clear*****
Tue Aug 14 18:55:04 JST 2012
Kouhei Sutou 2012-08-14 18:55:04 +0900 (Tue, 14 Aug 2012) New Revision: a62050f90830d8de044eed3109f408fb520c1672 https://github.com/groonga/gcs/commit/a62050f90830d8de044eed3109f408fb520c1672 Log: bq: support label operator for q Modified files: lib/bq-translator.js test/bq-translator.test.js Modified: lib/bq-translator.js (+9 -0) =================================================================== --- lib/bq-translator.js 2012-08-14 18:53:45 +0900 (d8f92cc) +++ lib/bq-translator.js 2012-08-14 18:55:04 +0900 (02d9e79) @@ -72,6 +72,15 @@ BooleanQueryTranslator.prototype = { this.skipSpaces(); var expression; switch (operator) { + case "label": + expression = this.translateExpression(); + this.skipSpaces(); + if (this.query[this.offset] != ")") { + this.throwTranslateError("close parenthesis is missing: " + + "operator:<label>"); + } + this.offset++; + break; case "field": expression = this.translateGroupField(); break; Modified: test/bq-translator.test.js (+9 -0) =================================================================== --- test/bq-translator.test.js 2012-08-14 18:53:45 +0900 (806671a) +++ test/bq-translator.test.js 2012-08-14 18:55:04 +0900 (9b4b5fd) @@ -161,11 +161,20 @@ suite('BoolanQueryTranslator', function() { "(and 'keyword1 keyword2' type:'ModelName')", '(field @ "keyword1" && field @ "keyword2" && type @ "ModelName")'); + testQuery("label", + "(label 'keyword1 keyword2')", + 'field @ "keyword1" && field @ "keyword2"'); + testQueryError("garbage", "(and 'keyword' type:'ModelName') garbage1 garbage2", "(and 'keyword' type:'ModelName')| |garbage1 garbage2", "garbages exist after valid boolean query"); + testQueryError("label: missing close parentheis", + "(label 'keyword1 keyword2'", + "(label 'keyword1 keyword2'||", + "close parenthesis is missing: operator:<label>"); + testGroup("field", "(field field1 'keyword1') (other group)", "(field field1 'keyword1')".length, -------------- next part -------------- HTML����������������������������...Download