MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / loadFunctions

Method loadFunctions

src/Client/BuzzHouse/Generator/FuzzConfig.cpp:574–886  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

572}
573
574void FuzzConfig::loadFunctions()
575{
576 static const String query = R"sql(WITH
577args_by_function AS
578(
579 SELECT
580 name,
581 min(args_min) AS min_arguments,
582 if (max(args_variadic) = 1, NULL, max(args_max)) AS max_arguments,
583 max(lambda_syntax) AS lambda_syntax
584 FROM
585 (
586 SELECT
587 name,
588 syntax_line,
589 replaceRegexpOne(syntax_line, '^[^\\(]*\\((.*)\\)[^)]*$', '\\1') AS args_raw,
590 match(args_raw, '(\\.\\.\\.|…)') AS args_variadic,
591 multiIf(match(trim(args_raw), '^(func|λ)'), 2, 0) AS lambda_syntax,
592 replaceRegexpAll(args_raw, '\\[[^\\]]*\\]', '') AS args_required_raw,
593 replaceRegexpAll(args_raw, '[\\[\\]]', '') AS args_all_raw,
594 if (
595 trim(args_required_raw) = '',
596 0,
597 length(arrayFilter(
598 x -> trim(x) != '' AND NOT match(trim(x), '^(\\.\\.\\.|…)$') AND position(x, '->') = 0,
599 splitByChar(',', args_required_raw)))
600 ) AS args_min,
601 if (
602 args_variadic, NULL,
603 if (
604 trim(args_all_raw) = '',
605 0,
606 length(arrayFilter(
607 x -> trim(x) != '' AND NOT match(trim(x), '^(\\.\\.\\.|…)$') AND position(x, '->') = 0,
608 splitByChar(',', args_all_raw)))
609 )
610 ) AS args_max
611 FROM system.functions
612 ARRAY JOIN splitByRegexp('\\n+', syntax) AS syntax_line
613 WHERE syntax != '' AND match(syntax_line, '\\(.*\\)')
614 )
615 GROUP BY name
616),
617params_by_function AS
618(
619 SELECT
620 name,
621 min(params_min) AS min_parameters,
622 if (max(params_variadic) = 1, NULL, max(params_max)) AS max_parameters
623 FROM
624 (
625 SELECT
626 name,
627 parameter_line,
628 match(parameter_line, '(\\.\\.\\.|…)') AS params_variadic,
629 replaceRegexpAll(parameter_line, '\\[[^\\]]*\\]', '') AS params_required_raw,
630 replaceRegexpAll(parameter_line, '[\\[\\]]', '') AS params_all_raw,
631 if (

Callers 1

setUserScriptsPathMethod · 0.45

Calls 10

formatFunction · 0.50
clearMethod · 0.45
emptyMethod · 0.45
backMethod · 0.45
pop_backMethod · 0.45
findMethod · 0.45
containsMethod · 0.45
push_backMethod · 0.45
sizeMethod · 0.45
emplace_backMethod · 0.45

Tested by

no test coverage detected