| 46 | } |
| 47 | |
| 48 | SQLInsertRow::SQLInsertRow( |
| 49 | std::shared_ptr<::fedb::nameserver::TableInfo> table_info, |
| 50 | std::shared_ptr<hybridse::sdk::Schema> schema, DefaultValueMap default_map, |
| 51 | uint32_t default_string_length) |
| 52 | : table_info_(table_info), |
| 53 | schema_(schema), |
| 54 | default_map_(default_map), |
| 55 | default_string_length_(default_string_length), |
| 56 | rb_(table_info->column_desc()), |
| 57 | val_(), str_size_(0) { |
| 58 | std::map<std::string, uint32_t> column_name_map; |
| 59 | for (int idx = 0; idx < table_info_->column_desc_size(); idx++) { |
| 60 | column_name_map.emplace(table_info_->column_desc(idx).name(), idx); |
| 61 | } |
| 62 | if (table_info_->column_key_size() > 0) { |
| 63 | index_map_.clear(); |
| 64 | raw_dimensions_.clear(); |
| 65 | for (int idx = 0; idx < table_info_->column_key_size(); ++idx) { |
| 66 | for (const auto& column : table_info_->column_key(idx).col_name()) { |
| 67 | index_map_[idx].push_back(column_name_map[column]); |
| 68 | raw_dimensions_[column_name_map[column]] = |
| 69 | hybridse::codec::NONETOKEN; |
| 70 | } |
| 71 | if (!table_info_->column_key(idx).ts_name().empty()) { |
| 72 | ts_set_.insert(column_name_map[table_info_->column_key(idx).ts_name()]); |
| 73 | } |
| 74 | } |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | bool SQLInsertRow::Init(int str_length) { |
| 79 | str_size_ = str_length + default_string_length_; |