[Groonga-commit] groonga/grnxx at eadeecd [master] Update Expression to use RecordSubset.

Back to archive index

susumu.yata null+****@clear*****
Tue Jul 29 14:53:51 JST 2014


susumu.yata	2014-07-29 14:53:51 +0900 (Tue, 29 Jul 2014)

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

  Message:
    Update Expression to use RecordSubset.

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

  Modified: include/grnxx/expression.hpp (+5 -1)
===================================================================
--- include/grnxx/expression.hpp    2014-07-29 14:53:16 +0900 (db8b90f)
+++ include/grnxx/expression.hpp    2014-07-29 14:53:51 +0900 (992f869)
@@ -108,9 +108,13 @@ class Expression {
   // Returns true on success.
   // On failure, returns false and stores error information into "*error" if
   // "error" != nullptr.
+//  template <typename T>
+//  bool evaluate(Error *error,
+//                const RecordSet &record_set,
+//                Array<T> *result_set);
   template <typename T>
   bool evaluate(Error *error,
-                const RecordSet &record_set,
+                const RecordSubset &record_set,
                 Array<T> *result_set);
 
  private:

  Modified: lib/grnxx/expression.cpp (+23 -23)
===================================================================
--- lib/grnxx/expression.cpp    2014-07-29 14:53:16 +0900 (19ee9cf)
+++ lib/grnxx/expression.cpp    2014-07-29 14:53:51 +0900 (8cdf8e6)
@@ -58,7 +58,7 @@ class ExpressionNode {
   // Returns true on success.
   // On failure, returns false and stores error information into "*error" if
   // "error" != nullptr.
-  virtual bool evaluate(Error *error, const RecordSet &record_set) = 0;
+  virtual bool evaluate(Error *error, const RecordSubset &record_set) = 0;
 };
 
 namespace {
@@ -76,7 +76,7 @@ class Node : public ExpressionNode {
   virtual bool filter(Error *error, RecordSet *record_set);
   virtual bool adjust(Error *error, RecordSet *record_set);
 
-  virtual bool evaluate(Error *error, const RecordSet &record_set);
+  virtual bool evaluate(Error *error, const RecordSubset &record_set);
 
   T get(Int i) const {
     return values_[i];
@@ -127,7 +127,7 @@ bool Node<Float>::adjust(Error *error, RecordSet *record_set) {
 }
 
 template <typename T>
-bool Node<T>::evaluate(Error *error, const RecordSet &record_set) {
+bool Node<T>::evaluate(Error *error, const RecordSubset &record_set) {
   // TODO: This should be a pure virtual function.
   GRNXX_ERROR_SET(error, NOT_SUPPORTED_YET, "Not supported yet");
   return false;
@@ -145,14 +145,14 @@ class DatumNode : public Node<T> {
     return DATUM_NODE;
   }
 
-  bool evaluate(Error *error, const RecordSet &record_set);
+  bool evaluate(Error *error, const RecordSubset &record_set);
 
  private:
   T datum_;
 };
 
 template <typename T>
-bool DatumNode<T>::evaluate(Error *error, const RecordSet &record_set) {
+bool DatumNode<T>::evaluate(Error *error, const RecordSubset &record_set) {
   if (static_cast<size_t>(record_set.size()) <= this->values_.size()) {
     // The buffer is already filled and there is nothing to do.
     return true;
@@ -172,13 +172,13 @@ class DatumNode<Text> : public Node<Text> {
     return DATUM_NODE;
   }
 
-  bool evaluate(Error *error, const RecordSet &record_set);
+  bool evaluate(Error *error, const RecordSubset &record_set);
 
  private:
   std::string datum_;
 };
 
-bool DatumNode<Text>::evaluate(Error *error, const RecordSet &record_set) {
+bool DatumNode<Text>::evaluate(Error *error, const RecordSubset &record_set) {
   if (static_cast<size_t>(record_set.size()) <= this->values_.size()) {
     // The buffer is already filled and there is nothing to do.
     return true;
@@ -198,7 +198,7 @@ class RowIDNode : public Node<Int> {
     return ROW_ID_NODE;
   }
 
-  bool evaluate(Error *error, const RecordSet &record_set) {
+  bool evaluate(Error *error, const RecordSubset &record_set) {
     if (!this->values_.resize(error, record_set.size())) {
       return false;
     }
@@ -220,7 +220,7 @@ class ScoreNode : public Node<Float> {
     return SCORE_NODE;
   }
 
-  bool evaluate(Error *error, const RecordSet &record_set) {
+  bool evaluate(Error *error, const RecordSubset &record_set) {
     if (!this->values_.resize(error, record_set.size())) {
       return false;
     }
@@ -245,7 +245,7 @@ class ColumnNode : public Node<T> {
     return COLUMN_NODE;
   }
 
-  bool evaluate(Error *error, const RecordSet &record_set) {
+  bool evaluate(Error *error, const RecordSubset &record_set) {
     if (!this->values_.resize(error, record_set.size())) {
       return false;
     }
@@ -424,7 +424,7 @@ class BinaryNode : public Node<typename Op::Result> {
     return OPERATOR_NODE;
   }
 
-  bool evaluate(Error *error, const RecordSet &record_set);
+  bool evaluate(Error *error, const RecordSubset &record_set);
 
  private:
   Op operator_;
@@ -433,7 +433,7 @@ class BinaryNode : public Node<typename Op::Result> {
 };
 
 template <typename Op>
-bool BinaryNode<Op>::evaluate(Error *error, const RecordSet &record_set) {
+bool BinaryNode<Op>::evaluate(Error *error, const RecordSubset &record_set) {
   try {
     this->values_.resize(error, record_set.size());
   } catch (...) {
@@ -466,7 +466,7 @@ class LogicalAndNode : public Node<Bool> {
 
   bool filter(Error *error, RecordSet *record_set);
 
-  bool evaluate(Error *error, const RecordSet &record_set);
+  bool evaluate(Error *error, const RecordSubset &record_set);
 
  private:
   unique_ptr<Node<Bool>> lhs_;
@@ -478,7 +478,7 @@ bool LogicalAndNode::filter(Error *error, RecordSet *record_set) {
   return lhs_->filter(error, record_set) && rhs_->filter(error, record_set);
 }
 
-bool LogicalAndNode::evaluate(Error *error, const RecordSet &record_set) {
+bool LogicalAndNode::evaluate(Error *error, const RecordSubset &record_set) {
   if (!this->values_.resize(error, record_set.size())) {
     return false;
   }
@@ -521,7 +521,7 @@ class LogicalOrNode : public Node<Bool> {
 
   bool filter(Error *error, RecordSet *record_set);
 
-  bool evaluate(Error *error, const RecordSet &record_set);
+  bool evaluate(Error *error, const RecordSubset &record_set);
 
  private:
   unique_ptr<Node<Bool>> lhs_;
@@ -605,7 +605,7 @@ bool LogicalOrNode::filter(Error *error, RecordSet *record_set) {
   return record_set->resize(error, left_count + right_count);
 }
 
-bool LogicalOrNode::evaluate(Error *error, const RecordSet &record_set) {
+bool LogicalOrNode::evaluate(Error *error, const RecordSubset &record_set) {
   // TODO: This logic should be tested.
   if (!this->values_.resize(error, record_set.size())) {
     return false;
@@ -664,7 +664,7 @@ bool Expression::adjust(Error *error, RecordSet *record_set) {
 
 template <typename T>
 bool Expression::evaluate(Error *error,
-                          const RecordSet &record_set,
+                          const RecordSubset &record_set,
                           Array<T> *result_set) {
   Node<T> *node = static_cast<Node<T> *>(root_.get());
   if (!node->evaluate(error, record_set)) {
@@ -680,22 +680,22 @@ bool Expression::evaluate(Error *error,
 }
 
 template bool Expression::evaluate(Error *error,
-                                   const RecordSet &record_set,
+                                   const RecordSubset &record_set,
                                    Array<Bool> *result_set);
 template bool Expression::evaluate(Error *error,
-                                   const RecordSet &record_set,
+                                   const RecordSubset &record_set,
                                    Array<Int> *result_set);
 template bool Expression::evaluate(Error *error,
-                                   const RecordSet &record_set,
+                                   const RecordSubset &record_set,
                                    Array<Float> *result_set);
 template bool Expression::evaluate(Error *error,
-                                   const RecordSet &record_set,
+                                   const RecordSubset &record_set,
                                    Array<Time> *result_set);
 template bool Expression::evaluate(Error *error,
-                                   const RecordSet &record_set,
+                                   const RecordSubset &record_set,
                                    Array<GeoPoint> *result_set);
 template bool Expression::evaluate(Error *error,
-                                   const RecordSet &record_set,
+                                   const RecordSubset &record_set,
                                    Array<Text> *result_set);
 
 Expression::Expression(const Table *table, unique_ptr<ExpressionNode> &&root)
-------------- next part --------------
HTML����������������������������...
Download 



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