Spaces:
Runtime error
Runtime error
Download src/hash_index.cpp from rcgalbo/wayydb-api: direct link, hf CLI and curl.
- Browser
- Download file 1.58 kB
-
https://huggingface.co/spaces/rcgalbo/wayydb-api/resolve/main/src/hash_index.cpp
- Command line
-
hf download hf://spaces/rcgalbo/wayydb-api/src/hash_index.cpp
-
curl -L -o hash_index.cpp https://huggingface.co/spaces/rcgalbo/wayydb-api/resolve/main/src/hash_index.cpp
1.58 kB
| namespace wayy_db { | |
| void HashIndex::build_int(const Table& table, const std::string& col_name) { | |
| clear(); | |
| const Column& col = table.column(col_name); | |
| auto view = col.as<const int64_t>(); | |
| for (size_t i = 0; i < view.size(); ++i) { | |
| if (col.is_valid(i)) { | |
| int_map_[view[i]] = i; | |
| } | |
| } | |
| } | |
| void HashIndex::build_str(const Table& table, const std::string& col_name) { | |
| clear(); | |
| const StringColumn& col = table.string_column(col_name); | |
| for (size_t i = 0; i < col.size(); ++i) { | |
| if (col.is_valid(i)) { | |
| str_map_[std::string(col.get(i))] = i; | |
| } | |
| } | |
| } | |
| std::optional<size_t> HashIndex::find_int(int64_t key) const { | |
| auto it = int_map_.find(key); | |
| if (it != int_map_.end()) return it->second; | |
| return std::nullopt; | |
| } | |
| std::optional<size_t> HashIndex::find_str(std::string_view key) const { | |
| auto it = str_map_.find(std::string(key)); | |
| if (it != str_map_.end()) return it->second; | |
| return std::nullopt; | |
| } | |
| void HashIndex::insert_int(int64_t key, size_t row) { | |
| int_map_[key] = row; | |
| } | |
| void HashIndex::insert_str(std::string_view key, size_t row) { | |
| str_map_[std::string(key)] = row; | |
| } | |
| void HashIndex::remove_int(int64_t key) { | |
| int_map_.erase(key); | |
| } | |
| void HashIndex::remove_str(std::string_view key) { | |
| str_map_.erase(std::string(key)); | |
| } | |
| void HashIndex::clear() { | |
| int_map_.clear(); | |
| str_map_.clear(); | |
| } | |
| } // namespace wayy_db | |