[Groonga-commit] groonga/grnxx at 8639b9e [master] Skip test_row() if a table does not contain invalid rows. (#136)

Back to archive index

susumu.yata null+****@clear*****
Fri Dec 26 17:23:47 JST 2014


susumu.yata	2014-12-26 17:23:47 +0900 (Fri, 26 Dec 2014)

  New Revision: 8639b9e47495fd8bf135d04b9fb21aabd46b797b
  https://github.com/groonga/grnxx/commit/8639b9e47495fd8bf135d04b9fb21aabd46b797b

  Message:
    Skip test_row() if a table does not contain invalid rows. (#136)

  Modified files:
    lib/grnxx/impl/column/scalar/bool.cpp
    lib/grnxx/impl/column/scalar/float.cpp
    lib/grnxx/impl/column/scalar/geo_point.cpp
    lib/grnxx/impl/column/scalar/int.cpp
    lib/grnxx/impl/column/scalar/text.cpp
    lib/grnxx/impl/column/vector/bool.cpp
    lib/grnxx/impl/column/vector/float.cpp
    lib/grnxx/impl/column/vector/geo_point.cpp
    lib/grnxx/impl/column/vector/int.cpp
    lib/grnxx/impl/column/vector/text.cpp

  Modified: lib/grnxx/impl/column/scalar/bool.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/scalar/bool.cpp    2014-12-26 16:27:55 +0900 (06caf10)
+++ lib/grnxx/impl/column/scalar/bool.cpp    2014-12-26 17:23:47 +0900 (0e8155c)
@@ -96,8 +96,9 @@ Int Column<Bool>::scan(Bool value) const {
     if (values_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (values_[i].is_na() && table_->_test_row(i)) {
+      if (values_[i].is_na() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/scalar/float.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/scalar/float.cpp    2014-12-26 16:27:55 +0900 (653de66)
+++ lib/grnxx/impl/column/scalar/float.cpp    2014-12-26 17:23:47 +0900 (cb0a515)
@@ -111,8 +111,9 @@ Int Column<Float>::scan(Float value) const {
     if (values_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (values_[i].is_na() && table_->_test_row(i)) {
+      if (values_[i].is_na() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/scalar/geo_point.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/scalar/geo_point.cpp    2014-12-26 16:27:55 +0900 (498b138)
+++ lib/grnxx/impl/column/scalar/geo_point.cpp    2014-12-26 17:23:47 +0900 (c246711)
@@ -100,8 +100,9 @@ Int Column<GeoPoint>::scan(GeoPoint value) const {
     if (values_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (values_[i].is_na() && table_->_test_row(i)) {
+      if (values_[i].is_na() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/scalar/int.cpp (+8 -4)
===================================================================
--- lib/grnxx/impl/column/scalar/int.cpp    2014-12-26 16:27:55 +0900 (2fc1be0)
+++ lib/grnxx/impl/column/scalar/int.cpp    2014-12-26 17:23:47 +0900 (a0b4cdf)
@@ -329,10 +329,12 @@ Int Column<Int>::scan(Int value) const {
     if (size_ < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     switch (value_size_) {
       case 8: {
         for (size_t i = 0; i < valid_size; ++i) {
-          if ((values_8_[i] == na_value_8()) && table_->_test_row(i)) {
+          if ((values_8_[i] == na_value_8()) &&
+              (is_full || table_->_test_row(i))) {
             return Int(i);
           }
         }
@@ -340,7 +342,8 @@ Int Column<Int>::scan(Int value) const {
       }
       case 16: {
         for (size_t i = 0; i < valid_size; ++i) {
-          if ((values_16_[i] == na_value_16()) && table_->_test_row(i)) {
+          if ((values_16_[i] == na_value_16()) &&
+              (is_full || table_->_test_row(i))) {
             return Int(i);
           }
         }
@@ -348,7 +351,8 @@ Int Column<Int>::scan(Int value) const {
       }
       case 32: {
         for (size_t i = 0; i < valid_size; ++i) {
-          if ((values_32_[i] == na_value_32()) && table_->_test_row(i)) {
+          if ((values_32_[i] == na_value_32()) &&
+              (is_full || table_->_test_row(i))) {
             return Int(i);
           }
         }
@@ -356,7 +360,7 @@ Int Column<Int>::scan(Int value) const {
       }
       default: {
         for (size_t i = 0; i < valid_size; ++i) {
-          if (values_64_[i].is_na() && table_->_test_row(i)) {
+          if (values_64_[i].is_na() && (is_full || table_->_test_row(i))) {
             return Int(i);
           }
         }

  Modified: lib/grnxx/impl/column/scalar/text.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/scalar/text.cpp    2014-12-26 16:27:55 +0900 (062b332)
+++ lib/grnxx/impl/column/scalar/text.cpp    2014-12-26 17:23:47 +0900 (636015e)
@@ -328,8 +328,9 @@ Int Column<Text>::scan(const Text &value) const {
     if (headers_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (headers_[i] == na_header() && table_->_test_row(i)) {
+      if (headers_[i] == na_header() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/vector/bool.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/vector/bool.cpp    2014-12-26 16:27:55 +0900 (75ba880)
+++ lib/grnxx/impl/column/vector/bool.cpp    2014-12-26 17:23:47 +0900 (09eed45)
@@ -114,8 +114,9 @@ Int Column<Vector<Bool>>::scan(const Vector<Bool> &value) const {
     if (headers_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (headers_[i] == na_header() && table_->_test_row(i)) {
+      if (headers_[i] == na_header() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/vector/float.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/vector/float.cpp    2014-12-26 16:27:55 +0900 (8f2488b)
+++ lib/grnxx/impl/column/vector/float.cpp    2014-12-26 17:23:47 +0900 (c9dded3)
@@ -124,8 +124,9 @@ Int Column<Vector<Float>>::scan(const Vector<Float> &value) const {
     if (headers_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (headers_[i] == na_header() && table_->_test_row(i)) {
+      if (headers_[i] == na_header() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/vector/geo_point.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/vector/geo_point.cpp    2014-12-26 16:27:55 +0900 (c8190fd)
+++ lib/grnxx/impl/column/vector/geo_point.cpp    2014-12-26 17:23:47 +0900 (14cefef)
@@ -125,8 +125,9 @@ Int Column<Vector<GeoPoint>>::scan(const Vector<GeoPoint> &value) const {
     if (headers_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (headers_[i] == na_header() && table_->_test_row(i)) {
+      if (headers_[i] == na_header() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/vector/int.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/vector/int.cpp    2014-12-26 16:27:55 +0900 (a529efa)
+++ lib/grnxx/impl/column/vector/int.cpp    2014-12-26 17:23:47 +0900 (14b76c0)
@@ -139,8 +139,9 @@ Int Column<Vector<Int>>::scan(const Vector<Int> &value) const {
     if (headers_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (headers_[i] == na_header() && table_->_test_row(i)) {
+      if (headers_[i] == na_header() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }

  Modified: lib/grnxx/impl/column/vector/text.cpp (+2 -1)
===================================================================
--- lib/grnxx/impl/column/vector/text.cpp    2014-12-26 16:27:55 +0900 (facc8c7)
+++ lib/grnxx/impl/column/vector/text.cpp    2014-12-26 17:23:47 +0900 (3f986cf)
@@ -126,8 +126,9 @@ Int Column<Vector<Text>>::scan(const Vector<Text> &value) const {
     if (headers_.size() < table_size) {
       return table_->max_row_id();
     }
+    bool is_full = table_->is_full();
     for (size_t i = 0; i < valid_size; ++i) {
-      if (headers_[i].size.is_na() && table_->_test_row(i)) {
+      if (headers_[i].size.is_na() && (is_full || table_->_test_row(i))) {
         return Int(i);
       }
     }
-------------- next part --------------
HTML����������������������������...
Download 



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