| 4639 | } |
| 4640 | |
| 4641 | void HandleClientSScan(const std::vector<std::string>& parts, |
| 4642 | ::fedb::client::TabletClient* client) { |
| 4643 | if (parts.size() < 7) { |
| 4644 | std::cout |
| 4645 | << "Bad scan format! eg.sscan tid pid key col_name start_time " |
| 4646 | "end_time [limit] | sscan table_name=xxx key=xxx index_name=xxx " |
| 4647 | "st=xxx et=xxx ts_name=xxx [limit=xxx]" |
| 4648 | << std::endl; |
| 4649 | return; |
| 4650 | } |
| 4651 | std::map<std::string, std::string> parameter_map; |
| 4652 | if (!GetParameterMap("tid", parts, "=", parameter_map)) { |
| 4653 | std::cout << "scan format erro! eg. sscan table_name=xxx key=xxx " |
| 4654 | "index_name=xxx st=xxx et=xxx ts_name=xxx [limit=xxx]" |
| 4655 | << std::endl; |
| 4656 | return; |
| 4657 | } |
| 4658 | bool is_pair_format = parameter_map.empty() ? false : true; |
| 4659 | uint32_t tid = 0; |
| 4660 | uint32_t pid = 0; |
| 4661 | std::string key; |
| 4662 | std::string index_name; |
| 4663 | uint64_t st = 0; |
| 4664 | uint64_t et = 0; |
| 4665 | std::string ts_name; |
| 4666 | uint32_t limit = 0; |
| 4667 | auto iter = parameter_map.begin(); |
| 4668 | try { |
| 4669 | if (is_pair_format) { |
| 4670 | iter = parameter_map.find("tid"); |
| 4671 | if (iter != parameter_map.end()) { |
| 4672 | tid = boost::lexical_cast<uint32_t>(iter->second); |
| 4673 | } else { |
| 4674 | std::cout << "sscan format error: tid does not exist!" |
| 4675 | << std::endl; |
| 4676 | return; |
| 4677 | } |
| 4678 | iter = parameter_map.find("pid"); |
| 4679 | if (iter != parameter_map.end()) { |
| 4680 | pid = boost::lexical_cast<uint32_t>(iter->second); |
| 4681 | } else { |
| 4682 | std::cout << "sscan format error: pid does not exist!" |
| 4683 | << std::endl; |
| 4684 | return; |
| 4685 | } |
| 4686 | iter = parameter_map.find("key"); |
| 4687 | if (iter != parameter_map.end()) { |
| 4688 | key = iter->second; |
| 4689 | } else { |
| 4690 | std::cout << "sscan format error: key does not exist!" |
| 4691 | << std::endl; |
| 4692 | return; |
| 4693 | } |
| 4694 | iter = parameter_map.find("index_name"); |
| 4695 | if (iter != parameter_map.end()) { |
| 4696 | index_name = iter->second; |
| 4697 | } |
| 4698 | iter = parameter_map.find("st"); |
no test coverage detected