MCPcopy Create free account
hub / github.com/Restream/reindexer / queryResultParams

Method queryResultParams

cpp_src/server/httpserver.cc:1828–1864  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1826
1827template <typename Builder>
1828void HTTPServer::queryResultParams(Builder& builder, reindexer::QueryResults& res, std::vector<std::string>&& jsonData,
1829 const IQRSerializingOption& qrOption, bool withColumns, int width) {
1830 h_vector<std::string_view, 1> namespaces(res.GetNamespaces());
1831 auto namespacesArray = builder.Array(kParamNamespaces, namespaces.size());
1832 for (auto ns : namespaces) {
1833 namespacesArray.Put(TagName::Empty(), ns);
1834 }
1835 namespacesArray.End();
1836
1837 builder.Put(kParamCacheEnabled, res.IsCacheEnabled() && !res.IsWALQuery());
1838
1839 if (!res.GetExplainResults().empty()) {
1840 builder.Json(kParamExplain, res.GetExplainResults());
1841 }
1842
1843 if (auto totalCount = qrOption.TotalCount(); totalCount.has_value()) {
1844 builder.Put(kParamTotalItems, int64_t(*totalCount));
1845 }
1846 if (auto queryTotalCount = qrOption.QueryTotalCount(); queryTotalCount.has_value()) {
1847 builder.Put(kParamQueryTotalItems, int64_t(*queryTotalCount));
1848 }
1849
1850 if (withColumns) {
1851 reindexer::table_view::TableCalculator tableCalculator(std::move(jsonData), width, reindexer::table_view::kNoOpts);
1852 const auto& header = tableCalculator.GetHeader();
1853 auto& columnsSettings = tableCalculator.GetColumnsSettings();
1854 auto headerArray = builder.Array(kParamColumns, header.size());
1855 for (const auto& part : header) {
1856 auto& data = columnsSettings[part];
1857 auto parametersObj = headerArray.Object(TagName::Empty(), 4);
1858 parametersObj.Put(kParamName, part);
1859 parametersObj.Put(kParamWidthPercents, data.widthTerminalPercentage);
1860 parametersObj.Put(kParamMaxChars, data.maxWidthCh);
1861 parametersObj.Put(kParamWidthChars, data.widthCh);
1862 }
1863 }
1864}
1865
1866int HTTPServer::queryResults(http::Context& ctx, reindexer::QueryResults& res, const IQRSerializingOption& qrOption) {
1867 const std::string_view widthParam = ctx.request->params.Get("width"sv);

Callers

nothing calls this directly

Calls 14

EmptyClass · 0.50
GetNamespacesMethod · 0.45
ArrayMethod · 0.45
sizeMethod · 0.45
PutMethod · 0.45
EndMethod · 0.45
IsCacheEnabledMethod · 0.45
IsWALQueryMethod · 0.45
emptyMethod · 0.45
GetExplainResultsMethod · 0.45
JsonMethod · 0.45
TotalCountMethod · 0.45

Tested by

no test coverage detected