[Groonga-commit] groonga/grnxx at 033f33a [master] Reduce the scan range of Column<Int>::contains/find_one().

Back to archive index

susumu.yata null+****@clear*****
Thu Dec 4 12:52:42 JST 2014


susumu.yata	2014-12-04 12:52:42 +0900 (Thu, 04 Dec 2014)

  New Revision: 033f33a50fc9e6c33a57e2192ec304181020afee
  https://github.com/groonga/grnxx/commit/033f33a50fc9e6c33a57e2192ec304181020afee

  Message:
    Reduce the scan range of Column<Int>::contains/find_one().

  Modified files:
    lib/grnxx/impl/column/scalar/int.cpp

  Modified: lib/grnxx/impl/column/scalar/int.cpp (+6 -4)
===================================================================
--- lib/grnxx/impl/column/scalar/int.cpp    2014-12-04 12:26:20 +0900 (1d88056)
+++ lib/grnxx/impl/column/scalar/int.cpp    2014-12-04 12:52:42 +0900 (509dcac)
@@ -87,14 +87,15 @@ bool Column<Int>::contains(const Datum &datum) const {
     return indexes_[0]->contains(datum);
   }
   Int value = parse_datum(datum);
+  size_t valid_size = get_valid_size();
   if (value.is_na()) {
-    for (size_t i = 0; i < values_.size(); ++i) {
+    for (size_t i = 0; i < valid_size; ++i) {
       if (values_[i].is_na() && table_->_test_row(i)) {
         return true;
       }
     }
   } else {
-    for (size_t i = 0; i < values_.size(); ++i) {
+    for (size_t i = 0; i < valid_size; ++i) {
       if (values_[i].match(value)) {
         return true;
       }
@@ -109,14 +110,15 @@ Int Column<Int>::find_one(const Datum &datum) const {
     return indexes_[0]->find_one(datum);
   }
   Int value = parse_datum(datum);
+  size_t valid_size = get_valid_size();
   if (value.is_na()) {
-    for (size_t i = 0; i < values_.size(); ++i) {
+    for (size_t i = 0; i < valid_size; ++i) {
       if (values_[i].is_na() && table_->_test_row(i)) {
         return Int(i);
       }
     }
   } else {
-    for (size_t i = 0; i < values_.size(); ++i) {
+    for (size_t i = 0; i < valid_size; ++i) {
       if (values_[i].match(value)) {
         return Int(i);
       }
-------------- next part --------------
HTML����������������������������...
Télécharger 



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