[Groonga-commit] groonga/gcs [master] BqTranslator: support unsigned integer value

Back to archive index

null+****@clear***** null+****@clear*****
2012年 7月 27日 (金) 15:15:22 JST


Kouhei Sutou	2012-07-27 15:15:22 +0900 (Fri, 27 Jul 2012)

  New Revision: 52abdbcb8557b0c765e8d1fcfd284e93d40b1fc6
  https://github.com/groonga/gcs/commit/52abdbcb8557b0c765e8d1fcfd284e93d40b1fc6

  Log:
    BqTranslator: support unsigned integer value

  Modified files:
    lib/bq-translator.js
    test/bq-translator.test.js

  Modified: lib/bq-translator.js (+14 -0)
===================================================================
--- lib/bq-translator.js    2012-07-27 15:11:43 +0900 (4d4598f)
+++ lib/bq-translator.js    2012-07-27 15:15:22 +0900 (851146b)
@@ -21,6 +21,9 @@ BooleanQueryTranslator.prototype = {
     if (query[context.offset] == "'") {
       return this.translateExpressionValueString(query, context);
     }
+    if (/^[0-9]/.test(query[context.offset])) {
+      return this.translateExpressionValueUnsignedInteger(query, context);
+    }
     return "";
   },
   translateExpressionValueString: function(query, context) {
@@ -46,6 +49,17 @@ BooleanQueryTranslator.prototype = {
     }
     return value;
   },
+  translateExpressionValueUnsignedInteger: function(query, context) {
+    var value = "";
+    for (; context.offset < query.length; context.offset++) {
+      var character = query[context.offset];
+      if (!/^[0-9]$/.test(character)) {
+        break;
+      }
+      value += character;
+    }
+    return value;
+  },
   translateTinia: function(query) {
     var matched = null;
 

  Modified: test/bq-translator.test.js (+4 -0)
===================================================================
--- test/bq-translator.test.js    2012-07-27 15:11:43 +0900 (b45d375)
+++ test/bq-translator.test.js    2012-07-27 15:15:22 +0900 (9df5032)
@@ -47,4 +47,8 @@ suite('BoolanQueryTranslator', function() {
                  "keyword1 keyword2",
                  "'keyword1 keyword2'".length,
                  "'keyword1 keyword2' 'other keyword'");
+  testExpression("value only: unsigned integer",
+                 "29",
+                 "29".length,
+                 "29 29");
 })
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
下载 



Groonga-commit メーリングリストの案内
Back to archive index