[Groonga-commit] groonga/grnxx at b9dd4cd [new_data_types] Update Expression to support Vector<Text>. (#104, #106)

Back to archive index

susumu.yata null+****@clear*****
Tue Nov 18 16:49:42 JST 2014


susumu.yata	2014-11-18 16:49:42 +0900 (Tue, 18 Nov 2014)

  New Revision: b9dd4cd0fe2b6bfd83e18937af59ba78589a68ed
  https://github.com/groonga/grnxx/commit/b9dd4cd0fe2b6bfd83e18937af59ba78589a68ed

  Message:
    Update Expression to support Vector<Text>. (#104, #106)

  Modified files:
    include/grnxx/expression.hpp
    lib/grnxx/impl/expression.cpp
    lib/grnxx/impl/expression.hpp

  Modified: include/grnxx/expression.hpp (+4 -6)
===================================================================
--- include/grnxx/expression.hpp    2014-11-18 16:40:15 +0900 (f86b129)
+++ include/grnxx/expression.hpp    2014-11-18 16:49:42 +0900 (0fef7f8)
@@ -153,9 +153,8 @@ class Expression {
                         Array<Vector<Float>> *results) = 0;
   virtual void evaluate(ArrayCRef<Record> records,
                         Array<Vector<GeoPoint>> *results) = 0;
-  // TODO
-//  virtual void evaluate(ArrayCRef<Record> records,
-//                        Array<Vector<Text>> *results) = 0;
+  virtual void evaluate(ArrayCRef<Record> records,
+                        Array<Vector<Text>> *results) = 0;
 
   // Evaluate the expression.
   //
@@ -184,9 +183,8 @@ class Expression {
                         ArrayRef<Vector<Float>> results) = 0;
   virtual void evaluate(ArrayCRef<Record> records,
                         ArrayRef<Vector<GeoPoint>> results) = 0;
-  // TODO
-//  virtual void evaluate(ArrayCRef<Record> records,
-//                        ArrayRef<Vector<Text>> results) = 0;
+  virtual void evaluate(ArrayCRef<Record> records,
+                        ArrayRef<Vector<Text>> results) = 0;
 };
 
 class ExpressionBuilder {

  Modified: lib/grnxx/impl/expression.cpp (+25 -26)
===================================================================
--- lib/grnxx/impl/expression.cpp    2014-11-18 16:40:15 +0900 (f9b1275)
+++ lib/grnxx/impl/expression.cpp    2014-11-18 16:49:42 +0900 (50ec685)
@@ -1582,11 +1582,10 @@ void Expression::evaluate(ArrayCRef<Record> records,
   _evaluate(records, results);
 }
 
-// TODO
-//void Expression::evaluate(ArrayCRef<Record> records,
-//                          Array<Vector<Text>> *results) {
-//  _evaluate(records, results);
-//}
+void Expression::evaluate(ArrayCRef<Record> records,
+                          Array<Vector<Text>> *results) {
+  _evaluate(records, results);
+}
 
 void Expression::evaluate(ArrayCRef<Record> records,
                           ArrayRef<Bool> results) {
@@ -1633,10 +1632,10 @@ void Expression::evaluate(ArrayCRef<Record> records,
   _evaluate(records, results);
 }
 
-//void Expression::evaluate(ArrayCRef<Record> records,
-//                          ArrayRef<Vector<Text>> results) {
-//  _evaluate(records, results);
-//}
+void Expression::evaluate(ArrayCRef<Record> records,
+                          ArrayRef<Vector<Text>> results) {
+  _evaluate(records, results);
+}
 
 template <typename T>
 void Expression::_evaluate(ArrayCRef<Record> records, Array<T> *results) {
@@ -1866,9 +1865,9 @@ Node *ExpressionBuilder::create_constant_node(
     case GEO_POINT_VECTOR_DATA: {
       return new ConstantNode<Vector<GeoPoint>>(datum.as_geo_point_vector());
     }
-//    case TEXT_VECTOR_DATA: {
-//      return new ConstantNode<Vector<Text>>(datum.as_text_vector());
-//    }
+    case TEXT_VECTOR_DATA: {
+      return new ConstantNode<Vector<Text>>(datum.as_text_vector());
+    }
     default: {
       throw "Not supported yet";  // TODO
     }
@@ -1911,9 +1910,9 @@ Node *ExpressionBuilder::create_column_node(
     case GEO_POINT_VECTOR_DATA: {
       return new ColumnNode<Vector<GeoPoint>>(column);
     }
-//    case TEXT_VECTOR_DATA: {
-//      return new ColumnNode<Vector<Text>>(column);
-//    }
+    case TEXT_VECTOR_DATA: {
+      return new ColumnNode<Vector<Text>>(column);
+    }
     default: {
       throw "Not supported yet";  // TODO
     }
@@ -2060,10 +2059,10 @@ Node *ExpressionBuilder::create_binary_node(
           return create_equality_test_node<Vector<GeoPoint>>(
             operator_type, std::move(arg1), std::move(arg2));
         }
-//        case TEXT_VECTOR_DATA: {
-//          return create_equality_test_node<Vector<Text>>(
-//            operator_type, std::move(arg1), std::move(arg2));
-//        }
+        case TEXT_VECTOR_DATA: {
+          return create_equality_test_node<Vector<Text>>(
+            operator_type, std::move(arg1), std::move(arg2));
+        }
         default: {
           throw "Invalid data type";  // TODO
         }
@@ -2259,9 +2258,9 @@ Node *ExpressionBuilder::create_subscript_node(std::unique_ptr<Node> &&arg1,
     case GEO_POINT_VECTOR_DATA: {
       return new SubscriptNode<GeoPoint>(std::move(arg1), std::move(arg2));
     }
-//    case TEXT_VECTOR_DATA: {
-//      return new SubscriptNode<Text>(std::move(arg1), std::move(arg2));
-//    }
+    case TEXT_VECTOR_DATA: {
+      return new SubscriptNode<Text>(std::move(arg1), std::move(arg2));
+    }
     default: {
       throw "Invalid data type";  // TODO
     }
@@ -2311,10 +2310,10 @@ Node *ExpressionBuilder::create_dereference_node(
           return new DereferenceNode<Vector<GeoPoint>>(
               std::move(arg1), std::move(arg2));
         }
-//        case TEXT_VECTOR_DATA: {
-//          return new DereferenceNode<Vector<Text>>(
-//              std::move(arg1), std::move(arg2));
-//        }
+        case TEXT_VECTOR_DATA: {
+          return new DereferenceNode<Vector<Text>>(
+              std::move(arg1), std::move(arg2));
+        }
         default: {
           throw "Invalid data type";  // TODO
         }

  Modified: lib/grnxx/impl/expression.hpp (+2 -4)
===================================================================
--- lib/grnxx/impl/expression.hpp    2014-11-18 16:40:15 +0900 (f0953f1)
+++ lib/grnxx/impl/expression.hpp    2014-11-18 16:49:42 +0900 (e57dba2)
@@ -54,8 +54,7 @@ class Expression : public ExpressionInterface {
   void evaluate(ArrayCRef<Record> records, Array<Vector<Int>> *results);
   void evaluate(ArrayCRef<Record> records, Array<Vector<Float>> *results);
   void evaluate(ArrayCRef<Record> records, Array<Vector<GeoPoint>> *results);
-  // TODO
-//  void evaluate(ArrayCRef<Record> records, Array<Vector<Text>> *results);
+  void evaluate(ArrayCRef<Record> records, Array<Vector<Text>> *results);
 
   void evaluate(ArrayCRef<Record> records, ArrayRef<Bool> results);
   void evaluate(ArrayCRef<Record> records, ArrayRef<Int> results);
@@ -66,8 +65,7 @@ class Expression : public ExpressionInterface {
   void evaluate(ArrayCRef<Record> records, ArrayRef<Vector<Int>> results);
   void evaluate(ArrayCRef<Record> records, ArrayRef<Vector<Float>> results);
   void evaluate(ArrayCRef<Record> records, ArrayRef<Vector<GeoPoint>> results);
-  // TODO
-//  void evaluate(ArrayCRef<Record> records, ArrayRef<Vector<Text>> results);
+  void evaluate(ArrayCRef<Record> records, ArrayRef<Vector<Text>> results);
 
  private:
   const Table *table_;
-------------- next part --------------
HTML����������������������������...
下載 



More information about the Groonga-commit mailing list
Back to archive index