Returns alphabetically sorted list of window functions available in Bolt, excluding companion functions.
| 351 | /// Returns alphabetically sorted list of window functions available in Bolt, |
| 352 | /// excluding companion functions. |
| 353 | std::vector<std::string> getSortedWindowNames() { |
| 354 | const auto& functions = exec::windowFunctions(); |
| 355 | |
| 356 | std::vector<std::string> names; |
| 357 | names.reserve(functions.size()); |
| 358 | exec::aggregateFunctions().withRLock([&](const auto& aggregateFunctions) { |
| 359 | for (const auto& entry : functions) { |
| 360 | if (!isCompanionFunctionName(entry.first, aggregateFunctions) && |
| 361 | aggregateFunctions.count(entry.first) == 0) { |
| 362 | names.emplace_back(entry.first); |
| 363 | } |
| 364 | } |
| 365 | }); |
| 366 | std::sort(names.begin(), names.end()); |
| 367 | return names; |
| 368 | } |
| 369 | |
| 370 | /// Takes a super-set of simple, vector and aggregate function names and prints |
| 371 | /// coverage map showing which of these functions are available in Bolt. |
no test coverage detected