Skip to content

Commit

Permalink
Enable Index. (#121)
Browse files Browse the repository at this point in the history
  • Loading branch information
s-yata committed Nov 28, 2014
1 parent d7cb336 commit caa4b3d
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 71 deletions.
34 changes: 17 additions & 17 deletions lib/grnxx/impl/column/scalar/float.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,24 @@ void Column<Float>::set(Int row_id, const Datum &datum) {
return;
}
if (!old_value.is_na()) {
// TODO: Remove the old value from indexes.
// for (size_t i = 0; i < num_indexes(); ++i) {
// indexes_[i]->remove(row_id, old_value);
// }
// Remove the old value from indexes.
for (size_t i = 0; i < num_indexes(); ++i) {
indexes_[i]->remove(row_id, old_value);
}
}
size_t value_id = row_id.raw();
if (value_id >= values_.size()) {
values_.resize(value_id + 1, Float::na());
}
// TODO: Insert the new value into indexes.
// for (size_t i = 0; i < num_indexes(); ++i) try {
// indexes_[i]->insert(row_id, datum)) {
// } catch (...) {
// for (size_t j = 0; j < i; ++i) {
// indexes_[j]->remove(row_id, datum);
// }
// throw;
// }
// Insert the new value into indexes.
for (size_t i = 0; i < num_indexes(); ++i) try {
indexes_[i]->insert(row_id, datum);
} catch (...) {
for (size_t j = 0; j < i; ++i) {
indexes_[j]->remove(row_id, datum);
}
throw;
}
values_[value_id] = new_value;
}

Expand Down Expand Up @@ -101,10 +101,10 @@ Int Column<Float>::find_one(const Datum &datum) const {
void Column<Float>::unset(Int row_id) {
Float value = get(row_id);
if (!value.is_na()) {
// TODO: Update indexes if exist.
// for (size_t i = 0; i < num_indexes(); ++i) {
// indexes_[i]->remove(row_id, value);
// }
// Update indexes if exist.
for (size_t i = 0; i < num_indexes(); ++i) {
indexes_[i]->remove(row_id, value);
}
values_[row_id.raw()] = Float::na();
}
}
Expand Down
53 changes: 26 additions & 27 deletions lib/grnxx/impl/column/scalar/int.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,24 +51,24 @@ void Column<Int>::set(Int row_id, const Datum &datum) {
throw "Key already exists"; // TODO
}
if (!old_value.is_na()) {
// TODO: Remove the old value from indexes.
// for (size_t i = 0; i < num_indexes(); ++i) {
// indexes_[i]->remove(row_id, old_value);
// }
// Remove the old value from indexes.
for (size_t i = 0; i < num_indexes(); ++i) {
indexes_[i]->remove(row_id, old_value);
}
}
size_t value_id = row_id.raw();
if (value_id >= values_.size()) {
values_.resize(value_id + 1, Int::na());
}
// TODO: Insert the new value into indexes.
// for (size_t i = 0; i < num_indexes(); ++i) try {
// indexes_[i]->insert(row_id, datum)) {
// } catch (...) {
// for (size_t j = 0; j < i; ++i) {
// indexes_[j]->remove(row_id, datum);
// }
// throw;
// }
// Insert the new value into indexes.
for (size_t i = 0; i < num_indexes(); ++i) try {
indexes_[i]->insert(row_id, datum);
} catch (...) {
for (size_t j = 0; j < i; ++i) {
indexes_[j]->remove(row_id, datum);
}
throw;
}
values_[value_id] = new_value;
}

Expand Down Expand Up @@ -193,27 +193,26 @@ void Column<Int>::set_key(Int row_id, const Datum &key) {
if (value_id >= values_.size()) {
values_.resize(value_id + 1, Int::na());
}
// TODO: N/A is not available.
Int value = parse_datum(key);
// TODO: Update indexes if exist.
// for (size_t i = 0; i < num_indexes(); ++i) try {
// indexes_[i]->insert(row_id, value);
// } catch (...) {
// for (size_t j = 0; j < i; ++j) {
// indexes_[j]->remove(row_id, value);
// }
// throw;
// }
// Update indexes if exist.
for (size_t i = 0; i < num_indexes(); ++i) try {
indexes_[i]->insert(row_id, value);
} catch (...) {
for (size_t j = 0; j < i; ++j) {
indexes_[j]->remove(row_id, value);
}
throw;
}
values_[value_id] = value;
}

void Column<Int>::unset(Int row_id) {
Int value = get(row_id);
if (!value.is_na()) {
// TODO: Update indexes if exist.
// for (size_t i = 0; i < num_indexes(); ++i) {
// indexes_[i]->remove(row_id, value);
// }
// Update indexes if exist.
for (size_t i = 0; i < num_indexes(); ++i) {
indexes_[i]->remove(row_id, value);
}
values_[row_id.raw()] = Int::na();
}
}
Expand Down
53 changes: 26 additions & 27 deletions lib/grnxx/impl/column/scalar/text.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,24 +41,24 @@ void Column<Text>::set(Int row_id, const Datum &datum) {
throw "Key already exists"; // TODO
}
if (!old_value.is_na()) {
// TODO: Remove the old value from indexes.
// for (size_t i = 0; i < num_indexes(); ++i) {
// indexes_[i]->remove(row_id, old_value);
// }
// Remove the old value from indexes.
for (size_t i = 0; i < num_indexes(); ++i) {
indexes_[i]->remove(row_id, old_value);
}
}
size_t value_id = row_id.raw();
if (value_id >= headers_.size()) {
headers_.resize(value_id + 1, na_header());
}
// TODO: Insert the new value into indexes.
// for (size_t i = 0; i < num_indexes(); ++i) try {
// indexes_[i]->insert(row_id, datum)) {
// } catch (...) {
// for (size_t j = 0; j < i; ++i) {
// indexes_[j]->remove(row_id, datum);
// }
// throw;
// }
// Insert the new value into indexes.
for (size_t i = 0; i < num_indexes(); ++i) try {
indexes_[i]->insert(row_id, datum);
} catch (...) {
for (size_t j = 0; j < i; ++i) {
indexes_[j]->remove(row_id, datum);
}
throw;
}
// TODO: Error handling.
size_t offset = bodies_.size();
size_t size = new_value.raw_size();
Expand Down Expand Up @@ -303,17 +303,16 @@ void Column<Text>::set_key(Int row_id, const Datum &key) {
if (value_id >= headers_.size()) {
headers_.resize(value_id + 1, na_header());
}
// TODO: N/A is not available.
Text value = parse_datum(key);
// TODO: Update indexes if exist.
// for (size_t i = 0; i < num_indexes(); ++i) try {
// indexes_[i]->insert(row_id, value);
// } catch (...) {
// for (size_t j = 0; j < i; ++j) {
// indexes_[j]->remove(row_id, value);
// }
// throw;
// }
// Update indexes if exist.
for (size_t i = 0; i < num_indexes(); ++i) try {
indexes_[i]->insert(row_id, value);
} catch (...) {
for (size_t j = 0; j < i; ++j) {
indexes_[j]->remove(row_id, value);
}
throw;
}
// TODO: Error handling.
size_t offset = bodies_.size();
size_t size = value.raw_size();
Expand Down Expand Up @@ -388,10 +387,10 @@ void Column<Text>::set_key(Int row_id, const Datum &key) {
void Column<Text>::unset(Int row_id) {
Text value = get(row_id);
if (!value.is_na()) {
// TODO: Update indexes if exist.
// for (size_t i = 0; i < num_indexes(); ++i) {
// indexes_[i]->remove(row_id, value);
// }
// Update indexes if exist.
for (size_t i = 0; i < num_indexes(); ++i) {
indexes_[i]->remove(row_id, value);
}
headers_[row_id.raw()] = na_header();
}
}
Expand Down

0 comments on commit caa4b3d

Please sign in to comment.