null+****@clear*****
null+****@clear*****
2012年 8月 6日 (月) 13:53:36 JST
Kouhei Sutou 2012-08-06 13:53:36 +0900 (Mon, 06 Aug 2012) New Revision: 7407fc1f989f752e5bceb77fb29486c0e42cac81 https://github.com/groonga/gcs/commit/7407fc1f989f752e5bceb77fb29486c0e42cac81 Log: bq: throw exception for garbage after filter value Modified files: lib/bq-translator.js test/bq-translator.test.js Modified: lib/bq-translator.js (+4 -3) =================================================================== --- lib/bq-translator.js 2012-08-06 13:47:39 +0900 (a5cb3d1) +++ lib/bq-translator.js 2012-08-06 13:53:36 +0900 (00eb8f8) @@ -144,9 +144,10 @@ BooleanQueryTranslator.prototype = { this.skipSpaces(); var expression = this.translateExpressionValueUnsignedInteger(field); this.skipSpaces(); - if (this.query[this.offset] != ")") { - // TODO: report error: have garbage - return ""; + var character = this.query[this.offset]; + if (character != ")") { + this.throwTranslateError("a garbage character after value: " + + "<" + character + ">"); } this.offset++; return expression; Modified: test/bq-translator.test.js (+5 -0) =================================================================== --- test/bq-translator.test.js 2012-08-06 13:47:39 +0900 (3afa103) +++ test/bq-translator.test.js 2012-08-06 13:53:36 +0900 (24c9518) @@ -164,6 +164,11 @@ suite('BoolanQueryTranslator', function() { "(field ||", "close parenthesis is missing: operator:<field>"); + testGroupError("filter: garbage after value", + "(filter field1 29 'garbage')", + "(filter field1 29 |'|garbage')", + "a garbage character after value: <'>"); + // testGroupError("and: missing close parentheis", // "(and f1:'k1' f2:'k2'", // "(and f1:'k1' f2:'k2'||", -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...Download