MCPcopy Create free account
hub / github.com/apache/arrow / query_items

Method query_items

cpp/src/arrow/util/uri.cc:217–243  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

215std::string Uri::query_string() const { return TextRangeToString(impl_->uri_.query); }
216
217Result<std::vector<std::pair<std::string, std::string>>> Uri::query_items() const {
218 const auto& query = impl_->uri_.query;
219 UriQueryListA* query_list;
220 int item_count;
221 std::vector<std::pair<std::string, std::string>> items;
222
223 if (query.first == nullptr) {
224 return items;
225 }
226 if (uriDissectQueryMallocA(&query_list, &item_count, query.first, query.afterLast) !=
227 URI_SUCCESS) {
228 return Status::Invalid("Cannot parse query string: '", query_string(), "'");
229 }
230 std::unique_ptr<UriQueryListA, decltype(&uriFreeQueryListA)> query_guard(
231 query_list, uriFreeQueryListA);
232
233 items.reserve(item_count);
234 while (query_list != nullptr) {
235 if (query_list->value != nullptr) {
236 items.emplace_back(query_list->key, query_list->value);
237 } else {
238 items.emplace_back(query_list->key, "");
239 }
240 query_list = query_list->next;
241 }
242 return items;
243}
244
245const std::string& Uri::ToString() const { return impl_->string_rep_; }
246

Callers 1

TESTFunction · 0.80

Calls 3

emplace_backMethod · 0.80
InvalidFunction · 0.50
reserveMethod · 0.45

Tested by 1

TESTFunction · 0.64